• Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или о том, что забыли выпустить производители

      Приветствую всех читателей Habr! В своей очередной статье снова поведу речь о ARDUINO. Хочу поделиться с вами очередным своим проектом, реализованном на микроконтролере nRF52832. Это датчик температуры и влажности на sht20 | (даташит) c монохромным дисплеем на электронных чернилах(E-INK|E-PAPER), который является частью экосистемы MySensors.

      Читать дальше →
    • Outline: Делаем свой личный VPN от Google за 5$ в месяц (и за 1€ для продвинутых)

      • Tutorial
      image

      В последнее время использовать VPN стало популярно с чего бы это?, но все инструкции которые мне попадались — могут «осилить» только пользователи хотя бы чуть-чуть знакомые с тем что такое Linux. Компания Google всех порадовала, выпустив прекрасное приложение, которое позволяет вам установить VPN в два клика (правда в два!) на своем личном сервере без каких либо знаний.
      (Если у вас нет сервера — не беда, появится)
      Читать дальше →
    • Алгоритм машинного обучения Flappy Bird

      • Translation
      Я познакомлю вас с полным туториалом на HTML5 с демо по алгоритму машинного обучения видеоигре Flappy Bird. Цель этого эксперимента — написать игровой контроллер искусственного интеллекта на основе нейросетей и генетического алгоритма.

      То есть мы хотим создать ИИ-робота, который сможет учиться оптимальной игре во Flappy Bird. В результате наша маленькая птица сможет спокойно пролетать через препятствия. В наилучшем сценарии она не умрёт никогда.

      Прочитав теорию, лежащую в основе этого проекта, можно скачать исходный код в конце этого туториала. Весь код написан на HTML5 с использованием фреймворка Phaser. Кроме того, мы использовали библиотеку Synaptic Neural Network для реализации нейросети, чтобы не создавать её с нуля.

      Демо


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



      Запустить в полноэкранном режиме
      Читать дальше →
    • Графика для инди игр. Что делать если кругляшки и палочки вас не устраивают

        И снова добрый день. Вчера я опубликовал статью по разработке игры на Kotlin и вполне ожидаемо первый блин вышел комом. Ну да ничего страшного, любая ошибка это опыт. Главное сделать правильные выводы и двигаться дальше. Что было неправильно вчера и что я рассчитываю исправить сегодня. Не стоит мешать в кучу разные материалы, это первое. И второе — имеет смысл сдобрить статью иллюстрациями и ссылками на внешние источники. Итак, погнали.

        Графика, это первое что бросается в глаза пользователю, запустившему ваше приложение. И хотя в Google Play есть несколько игр чисто текстовых, это исключение из правил. И в разработке подобных игр без сомнения полно своих подводных камней. Что же следует сделать инди-разработчику, чтобы не провалить то самое первое впечатление? В первую очередь следует на первых этапах разработки определиться с основным интерфейсом. Есть несколько практик как сделать это быстро и дешево:
        Читать дальше →
      • Очередные умные часы своими руками


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


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


          Подбор компонентов, разводка платы, пайка в суровых условиях, 3D-печатный корпус и JavaScript на часах — под катом. Welcome!

          Читать дальше →
        • Использование сверточных сетей для поиска, выделения и классификации

            Недавно ZlodeiBaal опубликовал статью «Нейрореволюция в головах и сёлах», в которой привел обзор возможностей современных нейронных сетей. Самым интересным, на мой взгляд, является подход с использованием сверточных сетей для сегментации изображений, про этот подход и пойдет речь в статье.

            segnet.png


            Уже давно появилось желание изучить сверточные сети и узнать что-то новое, к тому же под рукой есть несколько последних Tesla K40 с 12Гб памяти, Tesla c2050, обычные видеокарты, Jetson TK1 и ноутбук с мобильной GT525M, интереснее всего конечно попробовать на TK1, так как его можно использовать практически везде, хоть на столб фонарный повесить. Самое первое с чего начал, это распознавание цифр, тут конечно удивить нечем, цифры уже давно неплохо распознаются сетями, но при этом постоянно возникает потребность в новых приложениях, которые должны что-то распознавать: номера домов, номера автомобилей, номера вагонов и т.д. Все бы хорошо, но задача распознавания цифр является лишь частью более общих задач.
            Читать дальше →
          • Распознавание образов в R с использованием сверточных нейронных сетей из пакета MXNet

            • Translation
            • Tutorial
            Это подробная инструкция по распознаванию образов в R с использованием глубокой сверточной нейронной сети, предоставляемой пакетом MXNet. В этой статье приведен воспроизводимый пример, как получить 97,5% точность в задаче распознавания лиц на R.

            image

            Читать дальше →
            • +33
            • 12.7k
            • 2
          • Представление движений в 3D моделировании: интерполяция, аппроксимация и алгебры Ли

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

              Сколько существует разных способов представить обыкновенный поворот в трехмерном пространстве? Большинство людей, когда-либо занимавшихся 3D-графикой или 3D-моделированием, сходу назовут три основных широко распространенных варианта:

              • Матрица поворота 3x3;
              • Задание поворота через углы Эйлера;
              • Кватернионы.

              Люди с богатым опытом добавят сюда почему-то не пользующийся популярностью четвертый пункт:
              • Ось поворота и угол.

              Мне бы хотелось рассказать о пятом способе представления вращений, который симпатичен тем, что удобен для параметризации, позволяет эффективно строить полиномиальные аппроксимации этих параметризаций, проводить сферическую интерполяцию, и главное, универсален — с минимальными изменениями он работает для любых видов движений. Если вам когда-либо был нужен метод, который позволял бы легко сделать «аналог slerp, но не для чистых вращений, а для произвольных движений, да еще и с масштабированием», то читайте эту статью.
              Читать дальше →
            • Бутстрэппинг — бизнес с нуля. Часть 1


                В данной серии статей я расскажу о нашем опыте поднятия бизнеса только своими силами с полного нуля до оборота 350 тыс. евро в год, или, как еще называют такое явление, — бутстрэппинг.
                Читать дальше →
              • Добавление потока от IP-камеры на свой сайт


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

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

                  Пользователь, желающий внедрить в свой сайт поток с IP-видеокамеры, должен выбрать способ организации онлайн-трансляции. При написании данной статьи для демонстрации я использовала IP-камеру Axis. Аналогичным образом можно использовать камеры других производителей.
                  Первый способ организации онлайн-трансляции
                  • +8
                  • 81.4k
                  • 5
                • Свой облачный хостинг за 5 минут. Часть 3: Consul, Registrator, Consul-Template

                    Docker friends

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

                    Как и прежде, всю работу может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.

                    Несмотря на то, что наше облако стало сложнее и теперь в нём используется бо́льшее число инструментов, построить его стало проще. Я полностью переписал набор сценариев из прошлых статей, удалил всё лишнее, остальное упростил настолько, насколько это вообще возможно.
                    Читать дальше →
                  • Повышаем отказоустойчивость системы на nodejs

                      Отказоустойчивость системы на nodejs
                      3 года назад я поверил в будущее nodejs и начал кампанию по имплементации этого языка в самые “проблемные” сервисы нашего проекта. У нас все получалось — нагрузка падала, стабильность повышалась. Но все же были грабли, о которых захотелось рассказать.

                      Это не исчерпывающее руководство к действию, просто я делюсь своим опытом, если вы профи в nodejs можете дописать в коментах свои рекомендации, на которые я с удовольствием сошлюсь в статье.
                      Читать дальше →
                    • Node.js в бою (создание кластера)

                      • Translation
                      • Tutorial
                      Когда вы используете приложения на node.js в продакшене, вам приходится задумываться о стабильности, производительности, безопасности и удобстве поддержки. Данная статья описывает мои мысли о лучших практиках использования node.js в бою.

                      К окончанию данного руководства вы получите систему из 3 серверов: балансировщик (lb) и 2 сервера приложений (app1 и app2). Балансировщик будет следить за доступностью серверов и распределять между ними траффик. Серверы приложений будут использовать комбинацию systemd и кластеризации node.js для балансировки траффика между несколькими процессами ноды на сервере. Вы сможете выкатывать код с помощью одной команды со своей машины, и при этом не будет перерывов в обслуживании или необработанных запросов.
                      Все это можно представить в виде схемы:


                      Читать дальше →
                    • Подборка бесплатных инструментов для разработчиков

                      • Translation
                      Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

                      Читать дальше →
                    • Создание канала с автопостингом в Телеграме без единой строчки кода

                      • Tutorial

                      Вступление


                      Предупреждаю сразу: технического в статье очень мало. Это практически пошаговая инструкция для не очень сведующих в техническом плане пользователей. Для людей сведущих (и тех, кому лень читать много текста), приведу две ссылки: Telegram Bots API + IFTTT Maker Channel.

                      Теперь подробнее. Думаю, все слышали про мессенджер Telegram. Вероятно, многие даже знают про нехитрый API для создания ботов в этом мессенджере. Кроме того, не так давно в T появилась возможность создавать так называемые «каналы» (channels), упрощающие мгновенную рассылку сообщений практически любому количеству подписавшихся на канал лиц. Наконец, самая свежая новость: ботов стало можно добавлять в качестве администраторов в каналы, то есть такие рассылки стало можно делать автоматизированно.

                      Думаю, не надо объяснять, что это открывает довольно широкие возможности для различных сервисов. Например, у меня довольно быстро получилось сделать следующее:
                      • три канала (@RedditTop, @r_pics, @gone_wild — осторожно, последний с «взрослым» контентом), которые ежечасно импортируют топовые посты с Реддита (и двух его сабреддитов);
                      • ещё канал, делающий то же с постами с 9GAG;
                      • и, наконец, завел хитрого бота @JamesBot, который анонимно пересылает все сообщения, написанные ему, в общий канал (@secret_ru, @secret_en, @secret_es, @secret_ar или @secret_fa — в зависимости от языка). Получился анонимный чат средней степени трэшовости.

                      Уже после создания всех этих ботов и каналов мне пришло в голову, что простейший автоимпорт постов откуда-то «снаружи» можно наладить вообще без всякого кода и хостинга — буквально минут за 5. На помощь нам придет прекрасный сервис IFTTT — If This Then That, имеющий множество интеграций с социальными сетями и прочими сервисами. Правда, к сожалению, прямой интеграции с Телеграмом у него (пока?) нет — зато есть т.н. IFTTT Maker Channel, позволяющий делать простые HTTP(S)-запросы при срабатывании триггера. К сожалению, мы не сможем принимать сообщения, отправленные боту (входящие запросы IFTTT Maker принимать может, но, увы, только в строго определенном формате) — интерактива не выйдет. Зато сможем по срабатывании любого события (например, новый твит или пост в FB):
                      • публиковать сообщение в канале,
                      • отправлять сообщение в заранее выбранный чат (куда добавлен наш бот),
                      • отправлять сообщение заранее указанному пользователю (который добавил себе бота).
                      Читать дальше →
                    • Consul: Service Discovery это просто, или прощаемся с конфиг-файлами

                      • Tutorial
                      Что здесь интересного:

                      image

                      Обзорная статья о Consul (http://consul.io) — системе для поддержания обнаружения сервисов и распределенного хранилища ключ-значение. Кроме самого Consul, рассмотрим Consul-Template — средство для управления конфигурациями сервисов автоматически отражающее изменения в топологии. Статья будет интересна DevOps инженерам, системным архитекторам, тим-лидам проектов и прочим интересующимся микросервисными архитектурами.
                      Читать дальше →
                    • Микросервисы без серверов (облачный вариант)

                      • Translation
                      Здравствуйте, дорогие читатели!

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

                      Много Java, JavaScript, схем, рассуждений и очень много текста
                      Читать дальше →
                      • +5
                      • 21.5k
                      • 8
                    • Реверс-инжиниринг протокола парктроника. Танец маленьких бит

                      • Tutorial
                      Привет, хабр!

                      В попытках свести все жизненные рабочие показатели своего автомобиля на один экран головного устройства дошла очередь и до подключения парктроника. Многие возразят — ведь даже у дешевых парктроников есть свой экранчик, зачем выводить данные куда-то ещё? Да просто лишний экранчик в салоне ставить не хочется, и покопаться в железе повод есть…

                      В статье постараюсь описать приёмы и инструменты для реверс-инжиниринга недокументированного протокола обмена двух железок между собой.
                      Читать дальше →
                    • Свой облачный хостинг за 5 минут. Часть 2: Service Discovery

                        Cloud hosting

                        Привет Хабр! В предыдущей статье я рассказал как построить свой облачный хостинг за 5 минут, используя Ansible, Docker и Docker Swarm. В этой части я расскажу о том, как сервисы, запущенные в облаке, находят друг друга, как происходит балансировка нагрузки между ними и обеспечивается их отказоустойчивость.

                        Это вводная статья, здесь мы сосредоточимся на обзоре инструментов, которые будут решать проблему «обнаружения сервисов» в нашем облаке. В следующей части мы приступим к практике, поэтому я решил дать вам время поближе ознакомиться с ними.
                        Читать дальше →
                        • +20
                        • 38.7k
                        • 1
                      • Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

                          Cloud hosting

                          Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
                          Читать дальше →