• Универсальные ссылки: дворец из подводных камней

      При том, как много мобильные приложения дали человечеству, они в то же время «сломали» интернет. Вместо понятных ссылок на сайты, которые можно скопировать и поделиться, стало нужно объяснять «поставь такое-то приложение и зайди там туда-то».

      К счастью, разработчики мобильных платформ осознали эту проблему и предложили концепцию «универсальных ссылок», которые одним кликом открывают нужное на любой платформе. Но то, что для пользователя «одним кликом», для программиста — «потом и кровью». На пути к успеху стоит целый ворох неожиданных нюансов, и Константин Якушев познакомился с ними на личном опыте при внедрении универсальных ссылок в Badoo. А затем на нашей конференции Mobius рассказал, как сделать всё правильно и обойти проблемы. Зрителям доклад понравился, и мы решили, что негоже полезному материалу оставаться только видеозаписью, поэтому под катом — его текстовая версия.

      В докладе ситуация рассмотрена со стороны iOS, но универсальные ссылки на то и универсальные, чтобы объединять разные платформы, так что извлечь пользу могут не только iOS-разработчики.

      Читать дальше →
    • Создаём голосовое приложение на примере Google Assistant

        Каждый пятый житель США владеет умной колонкой, а это 47 000 000 человек. Помощник может создать напоминание, список дел, будильник, таймер, прочитать новости, включить музыку, подкаст, заказать доставку, купить билеты в кино и вызвать такси. Все это «навыки» или «skills» помощников. Еще их называют голосовыми приложениями. Для Alexa и Google Assistant таких приложений на 2018 год разработано 70 000.

        В 2017 году Starbucks запустил функцию по заказу кофе домой для Amazon Alexa. Кроме того, что выросли заказы на доставку, об этом написали все возможные СМИ, создав классный PR. Примеру Starbucks последовали Uber, Domino’s, MacDonald’s, и даже у стирального порошка Tide появился свой skill для Alexa.

        Как у Starbucks, голосовое приложение выполняет одну-две функции: заказывает кофе, ставит будильник или вызывает курьера. Чтобы спроектировать нечто подобное, не обязательно быть межконтинентальной корпорацией. Идея, проектирование, тестирование, разработка и релиз похожи на аналогичные этапы в мире мобильной разработки, но с особенностями для голоса. Подробно о процессе рассказал Павел Гвай: от идеи до публикации, с примерами реальной игры, с историческими вставками и разбором мира голосовой разработки.


        Читать дальше →
        • +27
        • 3,6k
        • 2
      • Концепция голосового интерфейса управления вычислительной системой для помощи людям с нарушениями речи

          image

          Введение


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

          Целью научно-исследовательской работы является проектирование дикторозависимого голосового интерфейса управления вычислительной системой на основе методов машинного обучения.

          Задачи, решаемые в работе:

          1. Провести обзор голосовых интерфейсов и способы их применения для управления вычислительными системами;
          2. Изучить подходы к персонализации голосового управления вычислительной системой;
          3. Разработать математическую модель голосового интерфейса управления вычислительной системой;
          4. Разработать алгоритм программной реализации.

          Методы решения. Для решения поставленных задач используются методы системного анализа, математического моделирования, машинного обучения.
          Читать дальше →
        • 10 трюков для продвинутого дашбординга в Splunk. Часть 1



            Добрый день!

            Сегодня мы хотим поделиться с вами инсайдом с ежегодного масштабного мероприятия Splunk .conf18, которое проходило в начале октября. Splunk .conf – это то место, где эксперты и разработчики Splunk делятся своим опытом, разными фишками и полезными инструментами для работы.

            В двух статьях мы расскажем о 10 лайфхаках для разработчиков дашбордов, которые были предложены на конференции. Почему говорим именно про это? Потому что чем лучше выглядит приложение, тем лучше воспринимается информация в нем. Для того, чтобы сделать действительно хорошие дашборды уже существует множество встроенных или легко интегрируемых инструментов, правда далеко не все знают, где и как их найти. Подробнее про них и как их использовать, смотрите под катом.
            Читать дальше →
          • Что происходит при создании контейнера Flexbox?

            • Перевод

            Это перевод статьи Rachel Andrew, являющейся одним из разработчиков спецификаций CSS.


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


            В этой статье мы подробно рассмотрим, что на самом деле происходит при добавлении display: flex в вашу таблицу стилей.

            Читать дальше →
          • Курс MIT «Безопасность компьютерных систем». Лекция 10: «Символьное выполнение», часть 2

            • Перевод
            • Tutorial

            Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


            Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

            Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
            Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
            Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
            Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
            Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
            Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
            Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
            Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
            Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
            Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
            Читать дальше →
          • Zabbix на стероидах: как устроена единая платформа мониторинга Сбертеха

              Привет, Хабр! Меня зовут Сергей Прутских, я руковожу направлением мониторинга компании «Сбербанк-Технологии». Основная задача нашей организации — разработка и тестирование программных продуктов для Сбербанка. Для этого в компании сосредоточена крупная ИТ-инфраструктура — 15 тысяч серверов разделены примерно на 1500 тестовых сред, которые относятся к более чем 500 автоматизированным системам. Всего с ними работает около 10 тысяч специалистов.

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


              Читать дальше →
            • Рисование с помощью Render Targets в Unreal Engine

              • Перевод
              • Tutorial

              Render target — это, по сути, текстура, в которую можно выполнять запись во время выполнения приложения. С точки зрения движка они хранят такую информацию, как базовый цвет, нормали и ambient occlusion.

              С точки зрения пользователя render target в основном используются в качестве своего рода дополнительной камеры. Можно задать захват сцены (scene capture) в какой-то точке и сохранять изображение в render target. Затем можно отобразить render target на меше, например, для симуляции камеры наблюдения.

              После выпуска версии движка 4.13 компания Epic добавила возможность отрисовки материалов непосредственно на render target с помощью блюпринтов. Эта функция позволяет создавать сложные эффекты, например, симуляцию жидкости и деформацию снега. Звучит потрясающе, правда? Но прежде чем переходить к таким сложным эффектам, лучше всего освоиться с чем-то простым. Что может быть проще, чем рисование на render target?

              В этом туториале вы научитесь следующему:

              • Динамически создавать render target с помощью блюпринтов
              • Отображать render target на меше
              • Рисовать текстуру на render target
              • Менять размер кисти и текстуру во время игрового процесса
              Читать дальше →
            • Какие видеокодеки (не) используют браузеры для видеозвонков

              • Перевод

              Типичный запрос в техподдержку Voximplant: «Почему видеозвонок между двумя Chrome выглядит лучше, чем видеозвонок между MS Edge и нативным iOS-приложением»? Коллеги обычно отвечают нейтральное — «потому что кодеки». Но мы, айтишники, любопытны. Даже если я не разрабатываю новый Skype-for-web, чтение «какой браузер что может» и как они разбивают одно видео на несколько потоков разного качества обогащает картину мира и дает свежую тему для обсуждения в курилке. Удачно подвернувшаяся статья от широко известного в узких кругах Dr Alex (с лучшим объяснением термина «media engine» из всех, что я видел), немного нашего опыта, пара вечеров в «Циферблате» — и адаптированный для Хабра перевод ждет под катом!
              Читать дальше →
              • +37
              • 5,4k
              • 6
            • Большой портальный фрезерный станок с ЧПУ своими руками

                Здравствуй дорогой читатель, в этой статье хочу поделиться своим опытом постройки фрезерного портального станка с числовым программным управлением.


                Читать дальше →
              • Видеонаблюдение с использованием смартфона — плюсы и минусы

                  image

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

                  Естественно что такой подход не заменяет полноценные системы видеонаблюдения, однако во многих случаях именно такое решение может быть более предпочтительнее других.
                  Читать дальше →
                • Реализация нового транспортного протокола NTCP2 сети I2P

                    Транспортные протоколы I2P были разработаны почти 15 лет назад, когда основной задачей было сокрытие содержимого трафика, а не факт использования того или иного протокола. DPI(deep packets inspection) и блокировку трафика в то время никто не принимал в расчет. Однако времена меняются и хотя существующие протоколы I2P по прежнему защищены довольно хорошо, возникла необходимость в новом транспортном протоколе, отвечающему на существующие и будущие угрозы, и, в первую очередь, DPI, анализирующий длину пакетов. Помимо этого, новый протокол использует самые современные достижения криптографии. Полное описание протокола здесь. За основу взят Noise, в котором в качестве хэш-функции используется SHA256, а в качестве DH (в терминологии Noise) — x25519.

                    image
                    Читать дальше →
                    • +32
                    • 5,7k
                    • 9
                  • Делаем «умный» контроллер для кондиционера на ESP8266

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

                      Задача


                      В квартире стоят четыре кондиционера, ими нужно научиться управлять:

                      • Из веб-интерфейса (у меня это Home Assistant, крутящийся на отдельном Raspberry Pi, но в идеале хочется простого подключения к любой системе);
                      • Голосом (Google Assistant подойдёт, потом подумаем об Алисе);
                      • Скриптами;
                      • Дёшево...

                      Читать дальше →
                    • Опыт использования WebRTC. Лекция Яндекса

                        Что лучше использовать при разработке софта — нативные или веб-технологии? Холивар по этому поводу закончится ещё не скоро, но мало кто станет спорить, что нативные функции полезно продублировать для использования в браузерах или WebView. И если когда-то приложения для звонков существовали исключительно отдельно от браузера, то теперь их легко реализовать и в вебе. Разработчик Григорий Кузнецов объяснил, как пользоваться технологией WebRTC для P2P-соединений.


                        — Как вы все знаете, в последнее время появляется довольно много приложений, в основу которых заложен прямой обмен данными между двумя браузерами, то есть P2P. Это всевозможные мессенджеры, чаты, звонилки, видеоконференции. Также это могут быть приложения, которые производят какие-то распределенные вычисления. Пределы фантазии никак не ограничиваются.
                        Читать дальше →
                      • 11 способов (не) стать жертвой взлома в Kubernetes

                        • Перевод
                        Прим. перев.: Оригинал этой статьи был опубликован в официальном блоге Kubernetes и написан Andrew Martin — одним из основателей молодой британской компании Control Plane, специализирующейся на безопасности для cloud native-приложений, запускаемых в K8s.



                        Безопасность в Kubernetes прошла длинный путь с момента появления проекта, однако в ней по-прежнему встречаются подводные камни. Предлагаем список полезных рекомендаций по тому, как защитить кластеры и повысить их устойчивость в случае взлома: начнём с control plane, продолжим с рабочими нагрузками и сетевой безопасностью, а закончим оценкой будущего безопасности.
                        Читать дальше →
                        • +26
                        • 9,2k
                        • 1
                      • Создание мультяшного шейдера воды для веба. Часть 2

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

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

                        • Добавил модели маяка и осьминога.
                        • Добавил модель земли с цветом #FFA457.
                        • Добавил камере цвет неба #6CC8FF.
                        • Добавил в сцену цвет подсветки #FFC480 (эти параметры можно найти в настройках сцены).

                        Моя исходная сцена теперь выглядит так.

                        Читать дальше →
                      • Где и как изучать машинное обучение?

                        • Tutorial

                        Всем привет!


                        Ни для кого не секрет, что интерес к машинному обучению и искусственному интеллекту растет в лучшем случае по экспоненте. Тем временем мой Яндекс Диск превратился в огромную свалку пейперс, а закладки в Google Chrome превратились в список, длина которого стремится к бесконечности с каждым днем. Таким образом, дабы упростить жизнь себе и вам, решил структурировать информацию и дать множество ссылок на интересные ресурсы, которые изучал я и которые рекомендую изучать вам, если вы только вначале пути (буду пополнять список постоянно).

                        Путь для развития новичка я вижу примерно так:

                        Untitled_presentation
                        Читать дальше →
                      • Универсальный API для получения информации по чекам

                          Привет жителям Хабра.

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

                          Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде

                          t=20180518T220500&s=975.88&fn=8710000101125654&i=99456&fp=1250448795&n=1

                          Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.
                          Читать дальше →
                        • Cжатие и улучшение рукописных конспектов

                          • Перевод
                          Я написал программу для очистки отсканированных конспектов с одновременным уменьшением размера файла.

                          Исходное изображение и результат:


                          Слева: исходный скан на 300 DPI, 7,2 МБ PNG / 790 КБ JPG. Справа: результат с тем же разрешением, 121 КБ PNG [1]

                          Примечание: описанный здесь процесс более-менее совпадает с работой приложения Office Lens. Есть другие аналогичные программы. Я не утверждаю, что придумал нечто радикальное новое — это просто моя реализация полезного инструмента.

                          Если торопитесь, просто посмотрите репозиторий GitHub или перейдите в раздел результатов, где можно поиграться с интерактивными 3D-диаграммами цветовых кластеров.
                          Читать дальше →