• Опыт создания облачного решения по мониторингу цифрового киоска на Azure IoT Central

      О задаче


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


      Обычное желание владельца инфокиосков – понимать, что именно происходит в данный момент, работает киоск или нет, в каком состоянии он находится. Например, есть ли вода в кофе-машине? Если есть, какой ее запас?


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


      Читать дальше →
    • SonarTermen v2.0



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

        У меня ушло порядка 3х дней. Имея все необходимое + мои наработки вы справитесь за пару часов.
        Читать дальше →
      • Игра на WebAssembly, часть 2: уровни и опыт, админка

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

          Demo
          Читать дальше →
        • Текстовая игра на Blazor с нуля (+сорсы +демо)

          • Tutorial
          Идея о том, что можно писать веб приложение без JavaScript интересна многим, а особенно тем кто начинал свой путь в программирование с серверного языка. Внедрение Web Assembly может (наконец-то) позволить это полноценно реализовать. Писать всю логику приложения на одном языке — звучит довольно заманчиво. Тем более, если этот код компилируется в бинарник, а не в промежуточный язык.

          Эту технологию хотелось бы увидеть в не типичных веб-приложениях. Например, как это — писать что-то более интерактивное на Web Assembly (Blazor). Предлагаю попробовать создать простую текстовую интерактивную игру. В игре есть возможность создать свой вопрос и отвечать на вопросы других игроков, набирая очки за правильные ответы. Всё на одной странице и с помощью Blazor.



          Результат:

          Github
          Demo
          Читать дальше →
        • Синхронизация времени без интернета



            Помимо tcp/ip, существует множество способов синхронизация времени. Некоторые из них требуют лишь наличие обычного телефона, в то время, как другие требуют дорогостоящего, редкого и чувствительного электронного оборудования. Обширная инфраструктура систем синхронизации времени включает в себя обсерватории, государственные институты, радиостанции, спутниковые группировки и многое другое.

            Сегодня я расскажу, как устроена синхронизация времени без интернета и как сделать “спутниковый” NTP сервер своими руками.
            Читать дальше →
          • Как я использую AirDrop вместо Тиндера



              В устройствах Apple есть прекрасная функция Airdrop — она сделана для пересылки данных между устройствами. При этом никакой настройки и предварительного сопряжения устройств не требуется, все работает из коробки в два клика. Для передачи данных используется надстройка над Wi-Fi, и поэтому данные передаются с огромными скоростями. При этом используя некоторые трюки, можно не просто пересылать файлы, но и узнать телефонный номер человека, находящегося с тобой в одном вагоне метро.

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

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



              Хочешь знать, как и откуда добывают нефть, и зачем для этого нужны математики, инженеры и программисты? Это первая часть из серии статей, представляющих собой очень быстрое обзорное введение в предметную область для будущих математиков-программистов, которым предстоит решать задачи, связанные с моделированием нефтедобычи и разработкой инженерного ПО в области сопровождения нефтедобычи. Для того, чтобы понять всё, что здесь написано, не требуется каких-то специальных знаний: достаточно только здравого смысла и школьного “арсенала” математики и физики. Зато работа в этой области, в отличие от какого-нибудь документооборота, происходит на стыке математических, естественно-научных и технических дисциплин и полна интересных кросс-дисциплинарных задач.
              Читать дальше →
            • Самомотивация технаря: уравнение прокрастинации, эффект шредера и трюки с едой

                Привет! Меня зовут Игорь, я занимаюсь машинным обучением в Lamoda. До этого я несколько лет работал в науке, что сильно сформировало мое мышление в технарскую сторону.

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

                Этими находками я решил поделиться в этой статье.

                • Поговорим про мотивацию самого себя, а не кого-то другого;
                • Узнаем, что такое мотивационное уравнение и как его использовать;
                • Разберём, как влиять на факторы мотивации;
                • И какие есть сервисы и инструменты для этого.

                Это статья не про мотивацию сотрудников Lamoda, а про мотивацию, которую я нашел для себя.

                image
                Читать дальше →
              • 60+ игр для гиков

                  Приветствую всех брутальных Хабрачан и чувственных Хабрачаночек!

                  Благодаря вашей поддержке я смог написать статьи про сериалы в мире IT. Вместе мы прошли через многое. В последней статье я попросил вас рассказать своё мнение о том, стоит ли мне писать статью про гиковские игры и вы снова поддержали меня. Спасибо за это!

                  Что же, как я и обещал — подборка 60+ игр для гиков перед вами. Сразу хочу оговорить один момент. Все мы гики. У кого-то есть любимые игры, которые могли сюда не попасть. Напишите о них в комментариях. Все ваши комментарии очень ценны и добавляют интереса в наш диалог. Часть из игр моей подборки непосредственно про IT и вокруг нас с вами, часть — не про IT, но гику эти игры наверняка понравятся. Часть игр чему-то учат, часть — просто веселят и развлекают.

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

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

                  Что же. Давайте не будем тянуть время и поговорим о подобранных мною для вас играх!


                  Читать дальше →
                • Пишем операционную систему. Часть 1. Загрузчик

                  Всем привет! Сегодня мы напишем загрузчик, который будет выводить «Hello World» и запустим его на VirtualBox. Писать будем на ассемблере FASM. Скачать его можно отсюда. Также нам понадобится собственно VirtualBox и UltraISO. Перед тем как писать код, разберемся как загружаются операционные системы.

                  Итак, когда мы нажимаем большую кнопку включения на нашем компьютере запускается система, которая есть на любом компьютере — BIOS (Basic Input/Output System или базовая система ввода/вывода). Задача BIOS это:

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

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

                  Например, к таким зданиям относится наша Инженерно-технологическая школа №777 г. Санкт-Петербург. Мы столкнулись с такой проблемой, что когда нашу школу посещают гости и родители, то им сложно найти нужный кабинет или другое необходимое место. Каждый находит свой выход из данной ситуации, кто-то бесконечно спрашивает работников здания, а кто-то просто блуждает по бескрайним коридорам. Проанализировав данную проблему, мы решили сделать для таких посетителей навигатор по нашей школе. Но простой навигатор с картой внутри здания не актуален, что не скажешь об одной из новых и быстроразвивающихся технологий дополненной реальности (AR). Наш навигатор разрабатывался с технологией AR, методами компьютерного зрения и машинного обучения. Он поможет сориентироваться и найти точное место, куда необходимо пройти посетителям нашей школы.

                  Цель


                  Цель — создание универсального помощника в ориентировании по зданию.

                  Основные задачи:

                  • Упростить ориентирование по школе новых учеников, родителей и гостей;
                  • Сделать приложение универсальным, чтобы в последствии оно поддерживало навигацию не только по нашей школе, но и по любым другим зданиям во всем мире;
                  • User-friendly интерфейс, понятный каждому;
                  Читать дальше →
                • Коронавирус: мы все умрём?

                  Что мы говорим Богу смерти? — Не сегодня.
                  Сирио Форель, сериал «Игра престолов».


                  Насколько действительно опасен коронавирус COVID-19? Сколько людей умрёт от коронавируса в мире? А сколько – в России? Так ли необходимы жесткие меры, принимаемые для борьбы с коронавирусом в большинстве стран мира? Что принесет больше ущерба: смерть людей от коронавируса или падение экономики, вызванное ограничительными мерами?

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

                  Чтобы сделать материал доступным для всех читателей, в начале статьи мы сконцентрируемся на качественном анализе, и красивых картинках. А в самом конце для интересующихся приведем исходный код для расчетов, выполненных на языке Python.
                  Читать дальше →
                • Отображение 3D-графики на STM32F407

                    Как известно, старшие STM'ки имеют приличные частоты и объёмы ОЗУ. Ну а раз так, то почему бы не запустить 3D-графику на таких контроллерах? Да нет ничего проще!

                    Демонстрационная картинка
                    Читать дальше →
                  • Ловушки для хакера. Обнаруживаем взлом на раннем этапе с помощью Canarytokens

                      Honey Tokens (англ. — «медовые приметы/признаки/идентификаторы») одна из разновидностей идеи Honeypot, приманки для злоумышленников, позволяющей обнаружить факт взлома или опознать его источник. Когда атакующий уже проник в систему, он, скорее всего, выполнит действия, несвойственные обычному пользователю. Это можно использовать как способ обнаружения взлома. В статье мы рассмотрим, как легко сделать собственные триггеры для обнаружения взлома на раннем этапе. Такие ловушки полезно использовать системному администратору и даже обычному пользователю, переживающему о приватности своих данных.


                      До изобретения газоанализаторов шахтеры брали c собой в шахту канарейку. Из-за маленького организма и быстрого обмена веществ, птицы намного раньше реагировали на опасные газы в воздухе и предупреждали шахтеров.
                      Читать дальше →
                    • Мой опыт стажировки в Microsoft Redmond и получения офера


                        перепечатка статьи "«Каждый год Microsoft получает 2 млн резюме». Разработчик из Минска — о 7-летнем пути в компанию (+Рекомендации и список книг)" с сайта dev.by.

                        Андрей Артемьев — Software Development Engineer в американском офисе Microsoft в Сиэтле, работает над операционной системой Windows. Его путь в компанию занял 7 лет, за плечами — пять подач резюме, одно проваленное интервью и летняя стажировка в Microsoft Redmond. Андрей делится своим опытом с читателями dev.by.

                        «Мой опыт говорит, что на большом интервале побеждает упорство, а не талант»


                        Попасть в Microsoft достаточно трудно, так как приём на работу неправильного человека может стоить компании дорого. Сюда входят не только затраты на релокейт, но и потенциальный ущерб компании от ошибок сотрудников, которые приводят к неприятным последствиям, будь то кража российскими хакерами письма кандидата в президенты Хиллари Клинтон, распространение вируса-вымогателя Petya, падение сервера базы данных о пациентах в японском госпитале или срыв контракта на $19 млн с производителем ноутбуков.

                        Microsoft ежегодно получает порядка 2 миллионов резюме, поэтому любое сомнение в кандидате влечёт отказ. Отказ во время финального собеседования означает, что следующая попытка будет только через 6 месяцев, но фактически — лишь через год. Мой опыт говорит, что на большом интервале побеждает упорство, а не талант.
                        Читать дальше →
                      • Всё о ключевом слове auto в CSS

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

                        Ключевое слово auto имеет особый смысл при использовании его с различными CSS-свойствами. Мы разберём особенности auto, касающиеся применения этого значения к различным свойствам.



                        Здесь, в первую очередь, нас будут интересовать технические детали работы auto. Поговорим мы и о том, как извлечь максимум пользы из применения этого свойства. Тут вы найдёте и заметки о сценариях использования auto, и примеры.
                        Читать дальше →
                        • +46
                        • 13.2k
                        • 4
                      • Как перейти на gRPC, сохранив REST

                        • Tutorial

                        Многие знакомы с gRPC — открытым RPC-фреймворком от Google, который поддерживает 10 языков и активно используется внутри Google, Netflix, Kubernetes, Docker и многими другими. Если вы пишете микросервисы, gRPC предоставляет массу преимуществ перед традиционным подходом REST+JSON, но на существующих проектах часто переход не так просто осуществить из-за наличия уже использующихся REST-клиентов, которые невозможно обновить за раз. Нередко общаясь на тему gRPC можно услышать "да, мы у нас в компании тоже смотрим на gRPC, но всё никак не попробуем".


                        Что ж, этой проблеме есть хорошее решение под названием grpc-rest-gateway, которое занимается именно этим — автогенерацией REST-gRPC прокси с поддержкой всех основных преимуществ gRPC плюс поддержка Swagger. В этой статье я покажу на примере как это выглядит и работает, и, надеюсь, это поможет и вам перейти на gRPC, не теряя существующие REST-клиенты.


                        Читать дальше →
                      • CSS Grid: Верстаем адаптивный журнальный макет в 20 строк

                        • Translation

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

                        Самая простая часть задачи — получение списка постов и их эксцерптов (эксцерпт — вступительный текст до ката) с наших любимых RSS–фидов. Для этого мы воспользовались WordPress-плагином Feedzy lite, который умеет агрегировать несколько фидов в один список, отсортированный по времени — идеальное решение в нашем случае. Трудная же часть в том, чтобы сделать всё красиво.
                        Читать дальше →
                        • +47
                        • 17.1k
                        • 9
                      • CSS: полное руководство по функции calc()

                        • Translation
                        В CSS есть особая функция calc(), применяемая для выполнения простых вычислений. Вот пример её использования:

                        .main-content {
                          /* Вычесть 80px из 100vh */
                          height: calc(100vh - 80px);
                        }
                        

                        Здесь с CSS-кодом, в котором используется calc(), можно поэкспериментировать.



                        Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать обо всём, что стоит знать об этой весьма полезной функции.
                        Читать дальше →
                        • +39
                        • 13.9k
                        • 6
                      • Мониторинг в ЦОДе: как мы меняли старую BMS на новую. Часть 1



                          Что такое BMS


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

                          Системы мониторинга BMS (Building Monitoring System) предлагают многие глобальные вендоры оборудования для ЦОДов. За время работы Linxdatacenter в России нам довелось познакомиться с разными системами и столкнуться с диаметрально противоположными подходами вендоров к эксплуатации этих систем. 

                          Рассказываем, как мы полностью обновили нашу систему BMS за последний год и почему.  
                          Читать дальше →