• Список ресурсов по машинному обучению. Часть 1

    • Translation


    Ранее мы говорили о разработке системы квантовой связи и о том, как из простых студентов готовят продвинутых программистов. Сегодня мы решилие еще раз (1, 2) взглянуть в сторону темы машинного обучения и привести адаптированную (источник) подборку полезных материалов, обсуждавшихся на Stack Overflow и Stack Exchange.
    Читать дальше →
  • Делаем вебсокеты на PHP с нуля

    Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

    Я изучал библиотеки phpdaemon и ratchet, они достаточно монструозны (причём используя ratchet для отправки сообщения конкретному пользователю рекомендовано дополнительно использовать wamp). Мне не совсем было понятно для чего использовать таких монстров, которые требуют установку других монстров. Почитав исходники этих, а также других библиотек, я разобрался как всё устроено и мне захотелось написать простой вебсокет-сервер на php самостоятельно. Это помогло мне закрепить изученный материал и наткнуться на некоторые подводные камни, о которых я не имел представления.

    Так я решил написать необходимый для меня функционал с нуля.

    Получившийся код и ссылка на демонстрационный чат в конце статьи.
    Читать дальше →
  • sin 1° на калькуляторе

      Важное уточнение — калькулятор обычный, без кнопки sin. Как в бухгалтерии или на рынке.

      Калькулятор Casio

      Под катом три разных варианта решения из разных эпох, от древнего Самарканда до США времён холодной войны.
      Читать дальше →
    • Обучаем компьютер чувствам (sentiment analysis по-русски)



        Sentiment analysis (по-русски, анализ тональности) — это область компьютерной лингвистики, которая занимается изучением мнений и эмоций в текстовых документах. Недавно на хабре появилась статья про использование машинного обучения для анализа тональности, однако, она была настолько плохо составлена, что я решил написать свою версию. Итак, в этой статье я постараюсь доступно объяснить, что такое анализ тональности, и как реализовать подобную систему для русского языка.
        Читать дальше →
      • Прокладка трубопровода со spark.ml

        • Tutorial
        Сегодня я бы хотел рассказать о появившемся в версии 1.2 новом пакете, получившем название spark.ml. Он создан, чтобы обеспечить единый высокоуровневый API для алгоритмов машинного обучения, который поможет упростить создание и настройку, а также объединение нескольких алгоритмов в один конвейер или рабочий процесс. Сейчас на дворе у нас версия 1.4.1, и разработчики заявляют, что пакет вышел из альфы, хотя многие компоненты до сих пор помечены как Experimental или DeveloperApi.

        Ну что же, давайте проверим, что может новый пакет и насколько он хорош.
        Читать дальше →
      • Virtual Trading: первый шаг на фондовом рынке

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

          Для минимизации риска подобных «скоростных потерь» и обнуления депозитов за считанные дни, были придуманы специальные симуляторы биржевой торговли, которые позволяют новичку окунуться в мир онлайн-трейдинга без риска потерять реальные деньги. Сегодня мы чуть подробнее взглянем на зарубежные и отечественные проекты в области виртуального трейдинга на фондовом рынке.
          Читать дальше →
        • Автоматическое определение тональности текста (Sentiment Analysis)

          За недолгое время моего процесса обучения я понял одну вещь – знаниями нужно делиться. Осознал я это давно, но лень перебороть и найти время не всегда получается.

          Речь в этой статье пойдет про использование различных методов машинного обучения для решения проблем, связанных с обработкой естественного языка (NLP). Одной из таких проблем является автоматическое определение эмоциональной окраски (позитивный, негативный, нейтральный) текстовых данных, то есть анализа тональности (sentiment analysis). Цель этой задачи состоит в определении, является ли данный текст (допустим обзор фильма или комментарии) положительным, отрицательным или нейтральным по своему влиянию на репутацию конкретного объекта. Трудность анализа тональности заключается в присутствии эмоционально обогащенного языка — сленг, многозначность, неопределенность, сарказм, все эти факторы вводят в заблуждение не только людей, но и компьютеров.



          На хабре уже не раз появлялись статьи связанные с определением тональности 1, 2, 3. Да и вообще, эта тема является одной из самых обсуждаемых во всем мире в последнее время [1, 2, 3, 4].

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

          Итак, в чем же состоит проблема и как ее решить?
          Читать дальше →
        • Первый опыт участия в kaggle-конкурсе и работа над ошибками

            Хочу поделиться опытом своего первого участия в kaggle конкурсе (учебный Bag of Words). И хотя мне не удалось достичь поражающих воображение результатов, я расскажу о том, как искала и находила способы улучшить примеры “учебника” (для этого сами примеры тоже кратко опишу), а также остановлю внимание на разборе своих просчетов. Должна предупредить, что статья будет интересна прежде всего новичкам в области text mining. Тем не менее, большинство методов я описываю кратко и упрощенно, давая при этом ссылки на более точные определения, поскольку цель моя — обзор практики, а не теории. К сожалению, конкурс уже завершился, но прочитать материалы к нему все равно может быть полезно. Ссылка на код к статье тут.
            Читать дальше →
            • +21
            • 13.6k
            • 5
          • 300 потрясающих бесплатных сервисов

            • Translation


            Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



            A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

            • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
            • Bootswatch: Бесплатные темы для Bootstrap.
            • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
            • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
            • Strikingly.com Domain: Конструктор веб-сайтов.
            • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
            • Withoomph: Мгновенное создание логотипов (англ.).
            • Hipster Logo Generator: Генератор хипстерских логотипов.
            • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
            • Invoice to me: Бесплатный генератор счета.
            • Free Invoice Generator: Альтернативный бесплатный генератор счета.
            • Slimvoice: Невероятно простой счет.

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

            • Tutorial
            image

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

            На написание этого поста меня сподвиг замечательный пост «За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил». Сразу хочу извиниться за возможные опечатки — пишу с планшета, сидя в микроавтобусе и вытягивая сеть телефоном. Hacker's keyboard очень удобен для ssh-доступа, но большие тексты писать им не очень удобно.

            IT- специалисты — народ любопытный. То соберут на базе микроконтроллеров автоматическую систему полива и освещения для любимого фикуса, то пропатчат прошивку мультиварки для раздачи торрентов. Но, по непонятной и загадочной причине, когда дело доходит до еды, пресловутый принцип DIY дает сбой. И наш герой, способный часами переделывать кинескоп старого телевизора в Луч Смерти, идет на кухню утолить голод соевым текстуратом пополам с гидроцеллюлозой и «коллагеновым сырьем».

            В этом посте я хочу разрушить миф о том, что еда может быть либо быстрой и удобной, либо съедобной. Не секрет, что многим из нас приходится работать по 12 часов в сутки, что не способствует кулинарным подвигам с участием 28 приправ и перьев с зада дракона, омытых слезами единорога. Вы получите замечательную возможность посмотреть в глаза своей половинки на 8 марта после того, как она получит не контроллер для дистанционного управления шторой, а свежевыпеченный хлеб ручной работы рано утром. Если вам надоело есть синтетику — добро пожаловать под hubracut.
            Читать дальше →
          • Второе дыхание бюджетного Android-смартфона

              Android smartphoneОбладатели неновых смартфонов со скромным объемом оперативной памяти (160 в моем случае) очень скоро начинают ощущать тормоза при работе. Поставил буквально несколько программ, а переключение между ними уже сопровождается ощутимыми задержками, и вызов Quick Settings становится уже совсем не «quick».

              После ребута всё летает, а уже после 15 минут работы, вроде набор активных программ тот же, а ощущение такое, будто железка умирает:
              — замедленная реакция на команды;
              — не плавный скроллинг;
              — долгий запуск даже маленьких приложений;
              — длинная пауза после подключение к интернету до его появления;
              — а в самые нагруженные моменты, когда нужна наибольшая продуктивность и быстрое переключение между задачами, смартфон просто перестает реагировать на Вас, уходит в себя и делает вид, будто он очень серьезно думает о чём-то своём, личном.

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

                В статье описаны основные трудности создания приложений под Android.
                Рассматриваются базовые понятия программирования Android.
                Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
                Осторожно много скриншотов.

                Читать дальше →
              • Делаем многопользовательскую игрy на Go и WebSocket'ах

                • Tutorial
                golang gopher
                Продолжаем знакомство с языком программирования Go (golang). В прошлый раз мы посмотрели основные конструкции языка. В этой статье я хочу показать использование горутин и каналов. И, конечно, продемонстрировать все это на реальном приложении, в данноcм случае многопользовательской игре. Рассматривать будем не всю игру, а только ту часть бэкэнда, которая отвечает за сетевое взаимодействие между игроками посредством WebSoket.

                Игра пошаговая, для двух игроков. Однако, описанные ниже приемы можно применять для создания других игр, от покера до стратегий.
                Читать дальше →
                • +26
                • 39.7k
                • 9
              • Использование generic wildcards для повышения удобства Java API

                  Доброго времени суток!

                  Этот пост для тех, кто работает над очередным API на языке Java, либо пытается усовершенствовать уже существующий. Здесь будет дан простой совет, как с помощью конструкций ? extends T и ? super T можно значительно повысить удобство вашего интерфейса.
                  Читать дальше →
                  • +33
                  • 102k
                  • 5
                • Dependency injection в Java EE 6

                    В рамках JSR-299 “Contexts and Dependency Injection for the Java EE platform” (ранее WebBeans) была разработана спецификация описывающая реализацию паттерна внедрения зависимости, включенная в состав Java EE 6. Эталонной реализацией является фреймворк Weld, о котором и пойдет речь в данной статье.

                    К сожалению в сети не так много русскоязычной информации о нем. Скорее всего это связано с тем, что Spring IOC является синонимом dependency injection в Java Enterprise приложениях. Есть конечно еще Google Guice, но он тоже не так популярен.

                    В статье хотелось бы рассказать об основных преимуществах и недостатках Weld.
                    Читать дальше →
                    • +18
                    • 89k
                    • 6
                  • Умный дом, как я до такого докатился. Часть 1-я


                      Пару лет назад, когда стоял вопрос отделки новой квартиры, возникла тривиальная, казалось бы, задача.
                      Дано:
                      • Кухня-студия (кухня совмещенная с холлом/коридором), три точки освещения.
                      • Необходимо управлять освещением из двух точек. У входа в квартиру и на кухне.

                      Варианты решения:
                      • Покупаем, так называемые, проходные выключатели, ставим три штуки на кухню, три в коридоре — вот оно счастье. Вот только получилось, что от коридора на кухню нужно вести 9 жил кабеля, некрасиво, спрятать некуда.
                      • Покупаем готовые решения по управлению одним источником с нескольких точек.
                        Точных чисел не помню, но получалось что-то около 10000р за точку освещения + 1000р за каждый выключатель, итого 36000р. Жаба.
                      • Как это ни странно, но эту идею высказала жена, в общем-то далекая от IT: “ А помнишь, ты светофор в Яндексе делал? Может тут тоже что-то сам сообразишь?”
                        В самом деле, а почему бы и нет, подумал я?

                      Но я не электронщик, я программист, причем контроллеры никогда не программировал, только полноценные сервера. Значит мозгом должен быть сервер. А раз ставить сервер, то управлять тремя лампочками — это из пушки по воробьям (даже, ядерным зарядом по мухам). Значит можно еще функций навешать.
                      Тут Остапа понесло (с), столица перемещается в Васюки. Три лампочки с выключателями превращаются в систему управления, мониторинга, видеонаблюдения и т. д.
                      Читать дальше →
                    • Быстрая десериализация действительно больших JSON-ответов

                      Под катом находится небольшое, но полезное описание того, как быстро и просто превратить пришедший JSON-ответ в набор объектов. Никакого ручного парсинга. А если вы сталкивались с OutOfMemory проблемой на старых смартфонах – и для этого есть решение, поддерживающее Android 2.X версий.

                      Кроме того, под катом будет ссылка на репозиторий на гитхабе с примером кода. А вот картинок не будет, зато найдётся место для небольшой таблички.
                      Читать дальше →
                      • +13
                      • 19.4k
                      • 8
                    • Первая программа для OS X своими руками — менеджер буфера обмена

                      • Tutorial
                      Больше года прошло с тех пор, как я увлекся программированием под платформу iOS. Наконец-то я нашел свободное время попробовать свои силы на платформе OS X. Если вы давно испытываете интерес к платформе OS X, но никак не соберетесь начать, эта статья для вас! Под катом подробное описание процесса создания приложения — менеджера буфера обмена. Все исходники можно найти на github.com/k06a/Clipshare


                      Читать дальше →
                    • JetBrains — разработка под Android для лентяев

                        Хотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:

                        * Getting Started
                        * UI Designer
                        * Minimally Interactive
                        * Lifecycle
                        * More Activities
                        * List Views
                        * HTTP
                        * Storage
                        * Menus
                        * Dialogs
                        * Preferences
                        * Publishing
                        Читать дальше →
                      • Python Tips, Tricks, and Hacks (часть 2)

                        • Translation
                        Содержание

                        Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
                        Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
                        Читать дальше →