• Сборка тонкого клиента RDP на базе Raspberry Pi

    С ростом популярности мини-ПК типа Raspberry Pi, и подобных ему клонов, возникла масса кейсов по их использованию в ИТ-инфраструктуре предприятия, умном доме / даче / гараже, и в других применениях.

    Одним из удобных и желаемых кейсов является использование RPi как тонкого клиента, подключаемого по протоколу RDP к Windows-системам.

    Если Вам интересно, как настроить такое место на базе Raspberry Pi, причем так, чтобы «настроить и забыть» — добро пожаловать под кат.

    Картинка для привлечения внимания

    Читать дальше →
  • Что общего между револьвером, шайбами и автономным роботом

      Мы любим роботов. Мы студенты технических ВУЗов, конструкторы, электронщики, программисты, и мы все любим создавать роботов. Два года назад на базе лаборатории робототехники Сбербанка появилась наша команда setUP и тогда же впервые приняла участие в соревнованиях по созданию мобильных автономных роботов Eurobot Open для молодых любителей робототехники. На данный момент команда отыграла 2 сезона, дважды стала вице-чемпионом, выходила на международный этап. Мы не спали сутками, программировали, паяли, собирали и разбирали наших роботов, находили серьезные проблемы за час до соревнований, а затем всё-таки их запускали. А еще получили незабываемый опыт и наработали ряд интересных решений, о чем и хотим рассказать в серии статей (со множеством гифок, осторожно, трафик).


      Читать дальше →
      • +18
      • 3.1k
      • 7
    • Создаём нейронную сеть InceptionV3 для распознавания изображений



      Привет, Хабр! Под катом пойдёт речь о реализации свёрточной нейронной сети архитектуры InceptionV3 с использованием фреймворка Keras. Статью я решил написать после ознакомления с туториалом "Построение мощных моделей классификации с использованием небольшого количества данных". С одобрения автора туториала я немного изменил содержание своей статьи. В отличие от предложенной автором нейронной сети VGG16, мы будем обучать гугловскую глубокую нейронную сеть Inception V3, которая уже предустановлена в Keras.

      Вы научитесь:

      1. Импортировать нейронную сеть Inception V3 из библиотеки Keras;
      2. Настраивать сеть: загружать веса, изменять верхнюю часть модели (fc-layers), таким образом, приспосабливая модель под бинарную классификацию;
      3. Проводить тонкую настройку нижнего свёрточного слоя нейронной сети;
      4. Применять аугментацию данных при помощи ImageDataGenerator;
      5. Обучать сеть по частям для экономии ресурсов и времени;
      6. Оценивать работу модели.

      При написании статьи я ставил перед собой задачу представить максимально практичный материал, который раскроет некоторые интересные возможности фреймворка Keras.
      Читать дальше →
    • Эффективные и не эффективные методы кодинга на Python

      Привет, Хабр! Предлагаю Вашему вниманию перевод статьи Good and Bad Practices of Coding in Python автора Duomly.

      Python – высокоуровневый язык программирования, акцентирующий внимание на удобочитаемости. Он разрабатывается, поддерживается и часто используется в соответствии с The Zen of Python или PEP 20.

      В этой статье показано несколько примеров хороших и плохих методов кодинга в Python, с которыми вы, вероятно, столкнетесь.
      Читать дальше →
    • 56 проектов на Python с открытым исходным кодом

      • Translation
      image

      1. Flask


      Это микро-фреймворк, написанный на Python. Он не имеет валидаций для форм и уровня абстракции базы данных, но позволяет вам использовать сторонние библиотеки для общих функций. И именно поэтому это микро-фреймворк. Flask предназначен для простого и быстрого создания приложений, а также является масштабируемым и легким. Он основан на проектах Werkzeug и Jinja2. Вы можете узнать больше о нем в последней статье DataFlair о Python Flask.

      2. Keras


      Keras — нейросетевая библиотека с открытым исходным кодом, написанная на Python. Она удобна для пользователя, модульная и расширяемая, а так же может работать поверх TensorFlow, Theano, PlaidML или Microsoft Cognitive Toolkit (CNTK). В Keras есть все: шаблоны, целевые и передаточные функции, оптимизаторы и многое другое. Он также поддерживает сверточные и рекуррентные нейронные сети.

      Работа над последним проектом с открытым исходным кодом на основе Keras — Классификация рака молочной железы.
      Читать дальше →
    • Как запустить email-рассылки и не попасть в спам?



        Изображение: Pixabay

        Email-маркетинг – эффективный инструмент взаимодействия с аудиторией, если работать с ним правильно. Ведь он теряет смысл, если ваши письма сразу летят в папку «Спам». Существует множество причин, почему они могут туда попадать. Сегодня мы поговорим о превентивных мерах, которые помогут избежать этой проблемы.
        Читать дальше →
      • Флеш-ускорители PCI-E от 800GB до 6.4TB: от рассвета до жизни в обычном ПК/сервере



          Были времена, когда накопители на основе флэш-памяти стоили настолько дорого, что как накопители их даже никто и не рассматривал. Десятки тысяч долларов. Они позиционировались как нечто революционное, способное придать космическую скорость системам хранения данных. Прямо как Intel Optane в последнее время, но о нём пока не будем, пока ещё слишком дорог.

          Наверное, тогда маркетологи и придумали такое название как Flash Accelerator (флеш-акселератор или флеш-ускоритель).

          Хитрость в том, что устройства изначально позиционировавшиеся как ускорители, сейчас трудно продать как SSD, поэтому иногда их можно купить очень выгодно.

          Мотивация


          • Хотелось ли вам за разумные деньги купить SSD размером в несколько терабайт?
          • Чтобы ресурс был на десятки петабайт?
          • Такой, что что бы вы ни делали, вы бы не смогли его исчерпать?
          • При этом с защитой по питанию и сделанный из самых качественных деталей и самой стойкой памяти?

          Поехали!
        • Обнаружение DDoS-атак «на коленке»

          Приветствую, Хабр! Я работаю в небольшом интернет провайдере масштаба области. У нас транзитная сеть (это значит, что мы покупаем интернет у богатых провайдеров и продаем его бедным). Несмотря на небольшое количество клиентов и такое же небольшое количество трафика протекающего по нашей сети, довольно часто приходится иметь дело с весьма внушительными DDoS-атаками по 10-20Гбит/с. (чаще всего конечно это атаки гораздо меньшего калибра). И хотя некоторые из наших клиентов обзавелись уже системами обнаружения таких атак и могут самостоятельно отправить жертву в блек-холл, гораздо чаще обнаружение атаки и бан конкретного IP жертвы ложится на наши плечи (тем более, если атака способна забить наши внешние каналы).



          О решении, которое помогает обнаруживать эти самые атаки и которое принято у нас в сети, я и хотел бы рассказать. Оно бесплатно, основывается на анализе данных NetFlow, поэтому просто и весьма эффективно.
          Читать дальше →
          • +22
          • 8.8k
          • 9
        • MicroPyServer простой HTTP сервер для ESP8266 и ESP32

          Промо


          Всем привет!


          Хочу рассказать о библиотеке MicroPyServer написанной на Python, которая позволяет взаимодействовать с устройствами ESP8266 и ESP32 посредством простого HTTP сервера.


          Что такое MicroPyServer?


          MicroPyServer это простой HTTP сервер предназначенный для проектов написанных на Micropython.


          Основная концепция работы с библиотекой — это перехватывание запросов к устройству при помощи создания роутов (route) и функций обработчиков (handler).

          Читать дальше →
        • Асинхронное программирование в Python: краткий обзор

          • Translation
          Когда говорят о выполнении программ, то под «асинхронным выполнением» понимают такую ситуацию, когда программа не ждёт завершения некоего процесса, а продолжает работу независимо от него. В качестве примера асинхронного программирования можно привести утилиту, которая, работая асинхронно, делает записи в лог-файл. Хотя такая утилита и может дать сбой (например, из-за нехватки свободного места на диске), в большинстве случаев она будет работать правильно и ей можно будет пользоваться в различных программах. Они смогут её вызывать, передавая ей данные для записи, а после этого смогут продолжать заниматься своими делами.



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

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

          Если вы читаете книгу, а кто-то даёт вам ещё одну книгу, вы можете взять эту вторую книгу и приступить к её чтению. Но первую придётся отложить. По такому же принципу устроено и многопоточное выполнение кода. А если бы несколько ваших копий читало бы сразу несколько книг, то это было бы похоже на то, как работают многопроцессорные системы.
          Читать дальше →
        • Доклады с первого в России митапа разработчиков роботов на Robot Operating System



            В рамках форума Skolkovo Robotics & AI 16 апреля 2019 года в Москве прошел первый в России митап по Robot Operating System — популярному во всем мире программному фреймворку, реализующему основные алгоритмы для построения сложных роботов. Мероприятие дало такой мощный импульс развитию всех команд. Мы погрузились в то, что мы больше всего любим — разработку! Поэтому только сейчас мы нашли время для консолидации уникальных материалов нашей встречи, переданных спикерами для публикации.

            Среди посетителей крупнейшего форума по робототехнике в России нашлось более 150 инженеров, которые либо уже используют ROS или только планируют его использование в своих проектах. Это неплохой результат для первой встречи небольшого сообщества российских разработчиков ROS. Мы стремимся к тому, чтобы стать частью мирового движения — а за рубежом аналогичные мероприятия собирают уже сотни участников. Второй российский ROS Meetup пройдет уже 30 ноября 2019 года.
            Читать дальше →
            • +11
            • 2.7k
            • 1
          • Визуальное представление выборов в Санкт-Петербурге — магия накрутки голосов

            Привет!

            В сентябре этого (2019) года прошли выборы Губернатора Санкт-Петербурга. Все данные о голосовании находятся в открытом доступе на сайте избирательной комиссии, мы не будем ничего ломать, а просто визуализируем информацию с этого сайта www.st-petersburg.vybory.izbirkom.ru в нужном для нас виде, проведем совсем несложный анализ и определим некоторые «волшебные» закономерности.

            Обычно для подобных задач я использую Google Colab. Это сервис, который позволяет запускать Jupyter Notebook'и, имея доступ к GPU (NVidia Tesla K80) бесплатно, это заметно ускорит парсинг данных и их дальнейшую обработку. Мне понадобились некоторые подготовительные работы перед импортом.

            %%time 
            !apt update
            !apt upgrade
            !apt install gdal-bin python-gdal python3-gdal 
            # Install rtree - Geopandas requirment
            !apt install python3-rtree 
            # Install Geopandas
            !pip install git+git://github.com/geopandas/geopandas.git
            # Install descartes - Geopandas requirment
            !pip install descartes

            Далее импорты.

            import requests 
            from bs4 import BeautifulSoup 
            import numpy as np
            import pandas as pd
            import matplotlib.pyplot as plt
            import geopandas as gpd
            import xlrd

            Описание используемых библиотек


            • requests — модуль для запроса на подключение к сайту

            • BeautifulSoup — модуль для парсинга html и xml документов; позволяет получить доступ напрямую к содержимому любых тегов в html

            • numpy — математический модуль с базовым и необходимым набором математических функций

            • pandas — библиотека для анализа данных

            • matplotlib.pyplot — модуль-набор методов построения

            • geopandas — модуль для построения карты выборов

            • xlrd — модуль для чтения табличных файлов

            Настал момент собирать сами данные, парсим. Избирком позаботился о нашем времени и предоставил отчетность в таблицах, это удобно.
            Читать дальше →
          • Транслируем видеопоток с веб-страницы по WebRTC на Facebook и YouTube одновременно

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

                WebRTC

                WebRTC позволяет реализовать real-time аудио/видео связь через браузер (firefox и chrome).

                В этом топике я расскажу как реализовать простейшее WebRTC приложение.
                Читать дальше →
              • 5 способов сделать Python-сервер на Raspberry Pi. Часть 2

                • Tutorial
                Привет, Хабр.

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



                Статья рассчитана для начинающих.
                Читать дальше →
              • 5 способов сделать Python-сервер на Raspberry Pi. Часть 1

                • Tutorial
                Привет, Хабр.

                Сегодня в большом числе проектов домашней (и не только) автоматизации используется Raspberry Pi. При этом достаточно удобно иметь не только прямой доступ к устройству, но и использовать браузер — это позволяет выполнять необходимые действия и с компьютера, и с мобильного телефона, и даже удаленно из любой точки мира.



                Допустим, у нас уже есть супер Python-программа, делающая что-то очень важное, от мигания светодиодом до управления «умным домом» или хотя бы кормушкой для кота. Я покажу разные способы, от простого к сложному, как сделать web-доступ к такому приложению, добавив немного кода.

                Статья расчитана для начинающих, профи вряд ли найдут здесь что-то кардинально новое, ну а новичкам в Linux надеюсь, будет полезно. Для тех кому интересно, продолжение под катом.
                Читать дальше →
              • Беспроводной программируемый по Wi-Fi комнатный термостат с монитором качества воздуха и другими полезными функциями

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


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


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

                Читать дальше →
              • Hexapod-робот под управлением ROS



                Робот гексапод — это платформа, использующая для передвижения шесть ног. После просмотра множества видео в интернете, стало ясно, что очень интересно наблюдать за передвижением подобных роботов. И тут возникло желание сделать что-то похожее, но с одноплатным компьютером BeagleBone Black (далее BBB) на борту, потому что подобных проектов еще не было. Информацию о таких роботах было найти непросто, особенно, что касается программной составляющей. Некоторое время было непонятно с чего начинать, но вскоре было решено начать с изготовления конструктива робота — шасси и электронной составляющей, а затем заняться программированием того, что получилось.
                Читать дальше →
              • Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

                • Tutorial

                Регулярные выражения в Python от простого к сложному




                Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
                Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

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

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

                  Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид.
                  Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид.

                  Я начал работать в Deutsche Bank программистом на Java в 2009-м году (последствия кризиса, чудо на Гудзоне, «Миллионер из трущоб», свиной грипп, поражение сборной в Мариборе). На собеседовании мне сообщили, что я буду работать в проекте AutobahnFX.

                  FX? Foreign eXchange? Мои знания о валютном рынке не отличались от знаний среднестатистического обывателя. На углу возле дома есть обменник, но от разницы курсов покупки и продажи дёргается глаз. В вагонах метро висит реклама форекс-контор «Чувствуешь разницу? На этом можно заработать!» Газеты описывают инвестиционные банки то как всезнающих спекулянтов, предсказывающих курсы валют на годы вперёд, то как сборище бездарных рвачей, обрушивших мировую экономику. «Ну ладно, — подумал я, — разберёмся в процессе».

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