• Предсказание красоты заката

      TL;DR: Из чего состоит красивый закат? Как предсказать эти элементы заката? Откуда взять данные для предсказаний?

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

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

      Элементы заката


      1. Небо в том месте, где солнце заходит за горизонт.

      Если небо в этом месте чистое — это красиво.
      Если чистая полоска неба, а над этим облака — еще красивее.
      Если есть небольшая облачность и Солнце заходит посреди облаков — тоже неплохо.
      Если всё небо возле горизонта в облаках — плохо.

      Примеры:


      Солнце заходит без облаков на горизонте
      Читать дальше →
    • Создание stateful навыка для Алисы на serverless функциях Яндекс.Облака и Питоне

      • Tutorial

      Начнём с новостей. Вчера Яндекс.Облако анонсировало запуск сервиса бессерверных вычислений Yandex Cloud Functions. Это значит: ты пишешь только код своего сервиса (например, веб-приложения или чатбота), а Облако само создаёт и обслуживает виртуальные машины, где он запускается, и даже реплицирует их, если возрастает нагрузка. Думать вообще не надо, очень удобно. И плата идёт только за время вычислений.


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


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


      image
      Читать дальше →
      • +10
      • 2.6k
      • 3
    • Как наладить поиск адреса по координатам (и где взять нужный справочник)



        Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе.

        Солидный продукт с той же функциональностью предлагает «Яндекс» — он называется «Геокодер». Но сервис «Яндекса» бесплатен только для открытых некоммерческих проектов. Стандартный же тариф — от 120 000 ₽ в год — подходит не всем.

        Мы подумали — если сделать бесплатную или недорогую альтернативу «Геокодеру», разработчики наверняка скажут спасибо. И сделали. В статье расскажу, как устроен «Адрес по координатам»: как мы наладили поиск, собрали справочник и упаковали в готовый метод.
        Читать дальше →
      • Картриджи консолей как модемы

        • Translation
        image

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

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

        Предыдущие статьи серии: «История о трёх картриджах», «Системы внутри картриджей: как инженеры расширяли возможности игровых консолей», «Универсальность картриджей: датчики в играх для Game Boy».
        Читать дальше →
      • Черное Зеркало своими руками — обучаем бота на базе своей истории чатов

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


          image


          Идея была простая — взять историю своих чатов из Telegram и на их основе обучить seq2seq сеть, способную по началу диалога предсказывать его завершение. Такая сеть может работать в трех режимах:


          • Предсказывать завершение фразы пользователя с учетом истории разговора
          • Работать в режиме чат-бота
          • Синтезировать логи разговоров целиком

          Вот что получилось у меня


          Бот предлагает завершение фразы


          image


          Бот предлагает завершение диалога


          image


          Бот общается с живым человеком


          User: привет
          Bot: привет
          User: как ты?
          Bot: собираюсь
          User: баг пофиксил?
          Bot: нет
          User: почему?
          Bot: да не получается
          User: ты сегодня когда дома будешь?
          Bot: не знаю пока
          User: ты занят?
          Bot: в магазин еду 

          Дальше я расскажу, как подготовить данные и обучить такого бота самому.

          Читать дальше →
        • Музыка для ваших проектов: 12 тематических ресурсов с треками по лицензии Creative Commons

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

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

            Читать дальше →
            • +55
            • 22k
            • 9
          • Micropython на GSM+GPS модуле A9G

              В этот раз я задумался о том, чтобы спрятать в велосипед GPS-трэкер в качестве меры предосторожности. На рынке есть масса автономных устройств для слежения за автомобилями, грузом, велосипедами, багажом, детьми и животными. Подавляющее большинство из них взаимодействуют с пользователем с помощью СМС. Более дорогие варианты предоставляют функциональность Find my phone, но привязаны к конкретному онлайн-сервису.
              В идеале хотелось бы иметь полный контроль над трекером: использовать его в удобном режиме без СМС и регистрации. Поверхностное гугление вывело меня на пару модулей из поднебесной, один из которых, A9G pudding board, я и заказал (~15$).


              Модуль


              Эта статья о том, как я заставил работать python на этом модуле.

              Читать дальше →
              • +31
              • 13k
              • 3
            • LockerGoga: что именно произошло с Norsk Hydro



                Фото, источник — www.msspalert.com


                В ночь с понедельника на вторник (примерно в 23:00 UTC 18.03.2019) специалисты Norsk Hydro заметили сбои в функционировании сети и ряда систем. Вскоре стало понятно, что сбои вызваны массовым заражением систем шифровальщиком, которое очень быстро распространялось по объектам инфраструктуры. После идентификации угрозы служба безопасности начала процесс изоляции, однако вредонос настолько глубоко успел распространиться по инфраструктуре, что пришлось перевести часть производства в ручной режим управления ("откат" к процедурам, принятым до компьютеризации производственных процессов). Расследование атаки потребовало привлечения местных властей и органов правопорядка (National Security Authority / NorCERT, Norwegian Police Security Service, National Criminal Investigation Service), а также ряда коммерческих компаний. Восстановление инфраструктуры еще не завершено и отдельные производства (например, по прессованию алюминиевых профилей) до сих пор функционируют на половину мощности.


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

                Читать дальше →
              • Данные пользователей Windows на ПК с поддержкой сенсорного ввода пишутся в отдельный файл

                  image

                  Большое количество моделей ноутбуков и all-in-one рабочих станций в наше время имеют поддержку сенсорного ввода. Это сделано для удобства пользователя и ускорения процесса его работы. Но, как оказалось, у компьютерных систем с активированной поддержкой тач-ввода есть одна малоизвестная функция, которая ставит под угрозу данные пользователей таких систем.

                  Речь идет об устройствах под управлением операционной системы от Microsoft. Дело в том, что если компьютер с активированным тач-вводом управляется при помощи ОС Windows, то данные пользователя этой системы, включая логины и пароли, собираются в отдельный файл, причем практически в открытом виде. Эта функция работает не на всех подряд Windows-ПК с тач-вводом, а только о тех из них, где включено распознавание рукописного текста.
                  Читать дальше →
                  • +25
                  • 11.1k
                  • 9
                • Трехмерные презентации товаров на Three.js для самых маленьких

                  • Tutorial


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

                  Читать дальше →
                  • +17
                  • 14k
                  • 7
                • Создание собственной цветовой палитры

                  • Translation
                  • Tutorial
                  Адаптировано из нашей будущей книги «Рефакторинг UI»

                  Видели эти модные генераторы цветовой палитры? Когда выбираешь цвет, настраиваешь несколько параметров с музыкальными словечками типа «триада» или «четвёртый мажор» — и получаете пять идеальных цветов для своего веб-сайта?



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

                  • Translation
                  Автор электронной книги — Эдди Османи, один из руководителей разработки Google Chrome

                  tl;dr


                  Cжатие изображений всегда должно быть автоматизировано


                  Оптимизацию графики обязательно надо автоматизировать. О ней легко забыть, рекомендации меняются, да и сам контент может легко проскользнуть мимо конвейера сборки. Для автоматизации при сборке используйте imagemin или libvips. Есть и много других.

                  Большинство CDN (например, Akamai) и сторонних решений вроде Cloudinary, imgix, Fastly Image Optimizer, Instart Logic SmartVision и ImageOptim API предлагают комплексные автоматизированные решения для оптимизации изображений.

                  На чтение статей и настройку конфигурации вы потратите время, которое дороже оплаты их услуг (у Cloudinary есть бесплатный тариф). Но если всё-таки не хотите отдавать работу на аутсорсинг по соображениям стоимости или из-за дополнительной latency, то выбирайте приведённые выше варианты с открытым исходным кодом. Проекты Imageflow или Thumbor предлагают альтернативу на собственном хостинге.
                  Читать дальше →
                • Интересности и полезности python

                  Я уже несколько лет программирую на python, однако, недавно осознал, что множество полезных приёмов и интересных моментов прошли мимо меня, возможно, я не один такой, поэтому решил перечислить их здесь, надеюсь, данные приёмы пригодятся кому-то в работе или побудят познакомиться с этим языком поближе.
                  Читать дальше →
                • Как звучит сердцебиение: перевод бумажной кардиограммы в WAV-формат


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

                    Возникла идея преобразовать данный график в звуковой формат, воспроизвести результат и послушать, как это будет звучать.
                    Читать дальше →
                  • Правдоподобная реконструкция Инстаграм-подобных фильтров

                    • Translation

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


                    https://github.com/homm/color-filters-reconstruction


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


                    Для примера, одно из следующих изображений было получено с применением фильтра Clarendon на оригинальном изображении в самом Инстаграме, а другое с помощью наложения восстановленного фильтра. Попробуйте угадать, какое восстановлено.



                    Для сравнения, это результат применения того же фильтра из коммерческого набора «Инстаграм-подобных фильтров», который вы без труда сможете нагуглить:


                    Читать дальше →
                  • Алиса, Google Assistant, Siri, Alexa. Как писать приложения для голосовых ассистентов

                      image

                      Рынок голосовых ассистентов расширяется, особенно для русскоязычных пользователей. 2 недели назад Яндекс рассказала впервые про платформу Яндекс.Диалоги, 2 месяца назад Google представила возможность писать диалоги для Google Assistant на русском языке, 2 года назад со сцены Bill Graham Civic Auditorium Apple выпустила в открытое плавание SiriKit. Фактически, появляется новая отрасль разработки, где должны быть свои проектировщики, архитекторы и разработчики. Идеальный момент, чтобы поговорить про голосовые помощники и api для них.

                      В этой статье не будет подробных туториалов. Это статья об идеях и интересных технических деталях, на которых построены инструменты для сторонних разработчиков основных игроков рынка: Apple Siri, Google Assistant и Алисы от Яндекса.
                      Читать дальше →
                    • Запускаем GSM-сеть у себя дома

                      • Tutorial


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

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

                      В результате мы запустим экспериментальную 2G сотовую сеть в пределах комнаты с поддержкой СМС и голосовых вызовов, без GPRS. Ее можно будет использовать для изучения работы и взаимодействия устройств и компонентов GSM сети, не вмешиваясь в коммерческие сотовые сети.
                      Читать дальше →
                    • Аутентификация OAuth2 в приложении посредством Google Sign-In. Непрерывный доступ к API Google

                      «С 20 апреля 2017 года отправка запросов на авторизацию из встроенных браузеров будет блокироваться».
                      Такое сообщение с 1 марта можно увидеть в некоторых приложениях, где необходима авторизация. Об этом Google написали в своём блоге еще в августе 2016, и это значит, что скоро во многих приложениях придется переписывать реализацию регистрации. Приятного мало, однако выход есть – использовать рекомендуемый способ авторизации Google Sign-in.

                      Об этом способе и будет идти речь в уроке, а также как получить токены, необходимые для работы с API Google.
                      Читать дальше →
                      • +24
                      • 49k
                      • 3
                    • Как я сделал самый быстрый ресайз изображений. Часть 0

                        Здравствуйте, меня зовут Саша, я написал самый быстрый ресайз изображений для современных х86 процессоров. Я так утверждаю, поскольку все остальные библиотеки, которые я сумел найти и протестировать, оказались медленнее. Я занялся этой задачей, когда работал над оптимизацией ресайза картинок на лету в Uploadcare. Мы решили открыть код и в результате появился проект Pillow-SIMD. Любой желающий с легкостью может использовать его в приложении на языке Python.


                        Любой код выполняется на конкретном железе и хорошей оптимизации можно добиться, только понимая его архитектуру. Всего я планирую выпустить 4 или 5 статей, в которых расскажу как применять знание архитектуры железа для оптимизации реальной задачи. Своим примером я хочу побудить вас оптимизировать другие прикладные задачи. Первые две статьи выйдут в течение недели, остальные — по мере готовности.

                        Читать дальше →
                      • Делаем Liquid Resize своими руками

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


                          (НЛО прилетело и растянуло этот рисунок здесь)
                          Читать дальше →