• Распознаём дату и время в естественной речи


      Задача


      Привет, Хабр! Увлёкся я навыками для Алисы и стал думать, какую пользу они бы могли принести. На площадке много разных прикольных игр (в том числе мои), но вот захотелось сделать рабочий инструмент, который действительно нужен в голосовом исполнении, а не просто копирует существующего чат-бота с кнопками.


      Голос актуален тогда, когда либо руки заняты, либо нужно выполнять много последовательных операций, особенно на экране телефона. Так возникла идея навыка, который по одной команде выделяет из текста указание на дату и время и добавляет событие с этим текстом в Google Calendar. Например, если пользователь скажет Послезавтра в 11 вечера будет красивый закат, то в календарь на послезавтра в 23:00 уходит строка Будет красивый закат.


      Под катом описание алгоритма работы библиотеки Hors: распознавателя даты и времени в естественной русской речи. Хорс — это славянский бог солнца.


      Github | NuGet

      Читать дальше →
    • Удаленная работа в режиме full-time: с чего начать, если ты не senior

      На сегодняшний день множество IT-компаний сталкиваются с проблемой поиска сотрудников в своем регионе. Все больше предложений на рынке труда связаны с возможностью работы вне офиса – удаленно.

      Работа в режиме full-time remote предполагает, что работодатель и работник связаны четкими трудовыми обязательствами: контрактом или трудовым договором; чаще всего, определенным нормированным графиком работы, стабильной зарплатой, отпусками и прочими особенностями, которые зачастую присущи тем, кто проводит свой рабочий день в офисе.
      Преимущества постоянной удаленной работы для каждого, кто решил оставить офис, свои. Возможность работать на крупные зарубежные компании без переезда в другой географический регион, стабильность, в сравнении с freelance – это, наверное, основное, что может привлечь нашего соотечественника. Высокий уровень конкуренции – вот основная сложность, с которой сталкивается соискатель, выходя на поиски работы на международном рынке труда.
      Читать дальше →
    • Как создать крутой экшен для Google Ассистента. Лайфхаки от Just AI

        image

        Экосистема вокруг Google Ассистента развивается невероятно быстро. В апреле 2017 года пользователям были доступны всего 165 экшенов, а сегодня только на английском их – более 4500. Насколько разнообразным и интересным станет русскоязычный уголок вселенной Google Ассистента, зависит от разработчиков. Есть ли формула «идеального экшена»? Зачем отделять код и контент от сценария? О чем нужно помнить, работая над разговорным интерфейсом? Мы попросили команду Just AI, разработчиков технологий разговорного AI, поделиться лайфхаками по созданию приложений для Google Ассистента. На платформе Aimylogic от Just AI созданы несколько сотен экшенов, среди которых есть весьма популярные – в игру «Да, милорд» сыграли уже более 140 тысяч человек. Как правильно построить работу над экшеном мечты, рассказывает Дмитрий Чечёткин, руководитель стратегических проектов Just AI.

        Взболтать, но не смешивать: роль сценария, контента и кода


        Читать дальше →
        • +13
        • 5.4k
        • 5
      • Основа геймплея игры на C++ для Unreal Engine

        • Translation
        image

        Основа геймплея для Unreal Engine 4 предоставляет разработчику мощный набор классов для создания игры. Ваш проект может быть шутером, симулятором фермы, глубокой RPG — это неважно, основа очень универсальна, делает за вас часть тяжёлой работы и задаёт некоторые стандарты. Она довольно сильно интегрирована в движок, поэтому рекомендую вам придерживаться этих классов, а не пытаться изобретать собственную основу игры, как это часто бывает в движках наподобие Unity3D. Понимание этой основы очень важно для успешной и эффективной работы над проектами.

        Для кого эта статья?


        Для всех, кого интересует создание игр в UE4, а конкретно на C++, и кто хочет больше узнать о основе геймплея Unreal. В этом посте рассматриваются базовые классы, которые вы будете использовать в основе геймплея, и объясняется их применение, процесс создания их экземпляров движком и способ получения доступа к этим классам из других частей кода игры. Бо́льшая часть информации справедлива также и для блюпринтов.
        Читать дальше →
        • +23
        • 31.6k
        • 3
      • Беспроводные устройства Xiaomi в умном доме ioBroker

        Приветствую всех любителей домашней автоматизации. Решил поделиться опытом использования беспроводных Xiaomi устройств с интерфейсом ZigBee. Я, честно говоря, против применения любых беспроводных устройств в любой автоматизации, от серьезных АСУТП больших объектов до малой автоматики типа охранно-пожарной сигнализации или умного дома, но… Решения Xiaomi подкупили дешевизной, доступностью, отличным дизайном и множеством положительных отзывов от пользователей, решил попробовать.

        Этот пост следует воспринимать, как пошаговую инструкцию для интеграции ZigBee устройств в инфраструктуру умного дома. Описанное здесь ни в коем случае не является аксиомой и можно найти много других способов подключения ZigBee устройств. Если всё же пропускать детальное описание, то можно составить впечатление о сложности или легкости объединения устройств от разных производителей в одну локальную платформу на примере ZigBee и ioBroker (о нём чуть позже). Я расскажу в этой статье, как подключить устройства к умному дому, отобразить информацию с них на планшете или просто в браузере и отправить сообщения через телеграм о смене состояния устройств. Если я вас заинтересовал, то прошу под кат.
        Читать дальше →
      • Обучение и тестирование нейронных сетей на PyTorch с помощью Ignite

        • Tutorial

        Привет, Хабр, в этой статье я расскажу про библиотеку ignite, с помощью которой можно легко обучать и тестировать нейронные сети, используя фреймворк PyTorch.


        С помощью ignite можно писать циклы для обучения сети буквально в несколько строк, добавлять из коробки расчет стандартных метрик, сохранять модель и т.д. Ну, а для тех кто переехал с TF на PyTorch, можно сказать, что библиотека ignite — Keras для PyTorch.


        В статье будет детально разобран пример обучения нейронной сети для задачи классификации, используя ignite


        Читать дальше →
        • +36
        • 19.3k
        • 4
      • Конструкция async/await в JavaScript: сильные стороны, подводные камни и особенности использования

        • Translation
        Конструкция async/await появилась в стандарте ES7. Её можно считать замечательным улучшением в сфере асинхронного программирования на JavaScript. Она позволяет писать код, который выглядит как синхронный, но используется для решения асинхронных задач и не блокирует главный поток. Несмотря на то, что async/await — это отличная новая возможность языка, пользоваться ей правильно не так уж и просто. Материал, перевод которого мы публикуем сегодня, посвящён разностороннему исследованию async/await и рассказу о том, как использовать этот механизм правильно и эффективно.

        image
        Читать дальше →
      • Курс о Deep Learning на пальцах

          Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

          Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

          Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


          Читать дальше →
        • UI-компоненты на пиксельных шейдерах: пишем ваш первый шейдер

            Кого можно назвать «пиксельных шейдеров начальник и пикселов командир»? Дениса Радина, работающего в Evolution Gaming над фотореалистичными веб-играми с использованием React и WebGL: он известен многим как раз под именем Pixels Commander.

            В декабре на нашей конференции HolyJS он выступил с докладом о том, как использование GLSL может улучшить работу с UI-компонентами по сравнению с «обычным джаваскриптом». А теперь для Хабра мы подготовили текстовую версию этого доклада — добро пожаловать под кат! Заодно прикладываем видеозапись выступления:


            Читать дальше →
          • 20+ ресурсов, чтобы начать фрилансить

              Чувствуете, что готовы уйти с работы, самостоятельно контролировать свой день, биться за клиента и работать только над интересными задачами? Пришло время попробовать себя во фрилансе. Это совсем нелегко, а чаще труднее, чем офисная рутина. Чтобы не разочароваться в выборе формата работы, устройте себе тест-драйв — на праздниках или в выходные. Собрали площадки, где найдете задачи по душе.


              Читать дальше →
            • Siemens заменила менеджеров компьютерной программой


                ИИ на фабрике Siemens будет раздавать задания роботам и людям, программируя их совместную работу

                Если вам когда-то приходила мысль, что менеджер проекта — практически бесполезная должность, и её можно автоматизировать, то вы были правы. Компания Siemens сделала это.

                На многих современных заводах используются промышленные роботы. Часто на конвейере роботов гораздо больше, чем людей. Главная проблема этой автоматизации в том, что роботов нужно перепрограммировать для каждого задания. Нужно ещё чинить неисправные механизмы, а сделать это может только человек, пусть даже с риском для жизни. В любом случае, людям и роботам суждено работать вместе. Так вот, Siemens испытывает новую конфигурацию такого сотрудничества: на её «фабрике будущего» люди и роботы трудятся вместе под управлением компьютерной программы (можно назвать её слабой формой Искусственного Интеллекта).
                Читать дальше →
              • Шифрование в EXT4. How It Works?

                image Паранойя не лечится! Но и не преследуется по закону. Поэтому в Linux Kernel 4.1 добавлена поддержка шифрования файловой системы ext4 на уровне отдельных файлов и директорий. Зашифровать можно только пустую директорию. Все файлы, которые будут созданы в такой директории, также будут зашифрованы. Шифруются только имена файлов и содержимое, метаданные не шифруются, inline data (когда данные файла, не превышающие по размеру 60 байт, хранятся в айноде) в файлах не поддерживается. Поскольку расшифровка содержимого файла выполняется непосредственно в памяти, шифрование доступно только в том случае, когда размер кластера совпадает с PAGE_SIZE, т.е. равен 4К.
                Читать дальше →
              • 20 полезных Node.js фреймворков

                  За последние годы Node.js значительно повысил свой статус от экспериментальной технологии до основы для серьезных проектов. Node.js дает возможность построить достаточно сложные, высоконагруженные приложения на простом, элегантном и, самое главное, легковесном механизме. Но прежде всего Node.js – это совершенно увлекательная и захватывающая вещь, с которой по-настоящему интересно работать!

                  Читать дальше →
                • Статистика для математика


                    В современных условиях интерес к анализу данных постоянно и интенсивно растет в совершенно различных областях, таких как биология, лингвистика, экономика, и, разумеется, IT. Основу этого анализа составляют статистические методы, и разбираться в них необходимо каждому уважающему себя специалисту в data mining.

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

                    Вкратце, лекции вот о чем:
                    Читать дальше →
                    • +36
                    • 19.9k
                    • 7
                  • Квантовая телепортация



                      Квантовая телепортация — это телепортирование не физических объектов, не энергии, а состояния. Но в данном случае состояния передаются таким образом, каким в классическом представлении это сделать невозможно. Как правило, для передачи информации о каком-то объекте требуется большое количество всесторонних измерений. Но они разрушают квантовое состояние, и у нас нет возможности повторно его измерить. Квантовая телепортация используется для того, чтобы передать, перенести некое состояние, обладая минимальной информацией о нем, не «заглядывая» в него, не измеряя и тем самым не нарушая.
                      Читать дальше →
                    • Действительно ли искусственный интеллект непостижим?

                      • Translation


                      Дмитрий Малютов мало что может рассказать о своём творении.

                      Он работает в исследовательском отделе IBM, и часть своего времени посвящает созданию систем машинного обучения, решающих задачи корпоративных клиентов компании. Одна такая программа разрабатывалась для большой страховой компании. Задание было непростым, требовался сложный алгоритм. Когда пришло время объяснять результаты клиенту, возникла заминка. «Мы не могли объяснить им эту модель, потому что они не разбирались в машинном обучении».

                      А даже если бы и разбирались, это могло им не помочь. Потому что моделью была искусственная нейросеть, программа, принимающая данные нужного типа – в нашем случае, дела клиентов страховой компании – и находившая в них шаблоны. Подобные сети используются на практике уже полстолетия, но недавно они испытали возрождение, и помогают совершать прорывы везде, от распознавания речи и переводов до игры в Go и робомобилей.
                      Читать дальше →
                    • Визуальный мониторинг серверной инфраструктуры на базе Nagios + Grafana

                      nagios + grafana

                      Мы в Атласе любим, когда все находится под контролем. Это касается и всей серверной инфраструктуры, которая, с годами, превратилась в живой организм из многочисленных виртуальных машин, сервисов и служб. Появилась потребность наблюдать за жизненно важными аспектами IT-составляющей нашей деятельности: мониторить боевой сервер, отслеживать изменения системных ресурсов на виртуалках баз данных, следить за ходом бизнес-процессов и тд. Встал вопрос — как же этого добиться и главное какими инструментами? Стали искать какие-то готовые решения. Перепробовали кучу платных/бесплатных сервисов, которые, якобы, предоставляли бы нам "самую ценную" информацию о состоянии нашей системы. Но, в конечном итоге, все сводилось к каким-то непонятных диаграммам, схемам и цифрам, которые, по сути, для нас не имели никакой ценности.


                      Так мы пришли к пониманию, что надо собирать что-то самостоятельно. За основу решили взять самую гибкую и продвинутую систему, которую можно настроить для мониторинга чего и как угодно — Nagios. Настроили, поставили, работает — круто! Жаль только интерфейс сего чуда застрял где-то в середине 90-х, а нам хотелось, чтобы еще и визуальная составляющая была на уровне.


                      Недолгий поиск показал, что лидером среди решений по созданию красивых дашбордов является Grafana. Так и решили выводить весь наш мониторинг из Nagios на мониторах в виде красивых графиков в Grafana. Вопрос остался только в том — как их подружить друг с другом?

                      Я расскажу как!
                    • 8 советов для более эффективной работы с Git

                      • Translation

                      Привет, мне показалось хорошей идеей начать переводить не только релизные посты из блога ГитЛаба. Для разминки я взял этот пост почти наугад, так что не судите строго. Буду рад, если поможете определиться с выбором статьи для перевода, выбрав один из вариантов в опроснике




                      Git – это система контроля версий с огромным количеством возможностей. Пытаться изучить их все довольно утомительно, поэтому большинство пользователей ограничивается использованием лишь базового набора команд. В этой статье представлены несколько советов по работе с Git, о которых вы, возможно, не знали. Эти советы помогут вам оптимизировать ваш процесс разработки.


                      Читать дальше →
                    • Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST

                        Koa v2

                        Это продожение статьи Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность. Постараюсь угодить начинающему разработчику, который хочет расстаться с express, но не знает как. Кода будет много, текста мало — я ленивый но отзывчивый.
                        Читать дальше →
                      • systemd: getty-подобный сервис для htop

                        • Tutorial

                        htop — это интерактивная программа для наблюдения за процессами; она — альтернатива программы top. Каждый, кто работает за машиной с линуксом на борту, хоть раз использовал её: будь то поиск процесса (и его последующее убийство) или тщательный мониторинг используемых ресурсов.


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