• Умная кормушка: Machine Learning, Raspberry Pi, Telegram, немножко магии обучения + инструкция по сборке

    • Tutorial
    Всё началось с того, что жена захотела повесить кормушку для птиц. Идея мне понравилась, но сразу захотелось оптимизировать. Световой день зимой короткий — сидеть днём и смотреть на кормушку времени нет. Значит нужно больше Computer Vision!



    Идея была простой: прилетает птичка — вжуууух — она оказывается на телефоне. Осталось придумать как это сделать и реализовать.
    В статье:
    • Запуск Caffe на Raspberry Pi B+ (давно хотел это сделать)
    • Построение системы сбора данных
    • Выбор нейронной сети, оптимизация архитектуры, обучение
    • Оборачивание, выбор и приделывание интерфейса

    Все исходники открыты + описан полный порядок развёртывания получившейся конструкции.
    Читать дальше →
  • Распознаем лица на фото с помощью Python и OpenCV


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

      Что нам понадобится:
      • Установленный Python 2.7 с библиотеками NumPy и PIL
      • OpenCV 2-й версии

      Здесь ссылка на материал по установке всех необходимых компонентов. Установка всего необходимого не составит труда.
      Читать дальше →
    • В macOS High Sierra обнаружились «Черные дыры»



        Живешь себе живешь, репу не чешешь, в ус не дуешь. И тут внезапно тебе нужно переезжать с обветшавшего iPhone 6 на новенький iPhone X. А поскольку вся твоя жизнь за минувшие семь лет хранится в фоточках и видосиках старого смартфона, терять это добро тебе очень не хочется. И вот ты бэкапишь свое хозяйство через iTunes на Mac, пытаешься переехать на новую «балалайку» и вдруг оказывается, что места для бэкапа нового телефона на жестком диске твоего компьютера уже нет. Ты начинаешь судорожно расчищать авгиевы конюшни дисковое пространство, но результата «нема». Причем удаление «левых файлов» и очистка корзины ни к чему не приводит. Вот такой триллер разыгрался недавно с вице-президентом Parallels Николаем Добровольским. Под катом детективная история про обнаружение им «черной дыры» в macOS High Sierra, поиски истины и счастливый конец, которому могли бы позавидовать главные герои кинофильма «Титаник».
        Читать дальше →
      • Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

        • Tutorial

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




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

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

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

        В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

        image

        Что такое Kubernetes?


        Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
        Читать дальше →
      • Руководство по магическим методам в Питоне

        • Translation
        • Tutorial
        Это перевод 1.17 версии руководства от Rafe Kettler.


        Содержание


        1. Вступление
        2. Конструирование и инициализация
        3. Переопределение операторов на произвольных классах
        4. Представление своих классов
        5. Контроль доступа к атрибутам
        6. Создание произвольных последовательностей
        7. Отражение
        8. Вызываемые объекты
        9. Менеджеры контекста
        10. Абстрактные базовые классы
        11. Построение дескрипторов
        12. Копирование
        13. Использование модуля pickle на своих объектах
        14. Заключение
        15. Приложение 1: Как вызывать магические методы
        16. Приложение 2: Изменения в Питоне 3


        Вступление


        Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, __init__ или __lt__). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.
        Читать дальше
      • Работа с Java в командной строке

        Сейчас уже никто не создает программы в консоли. Используя любимую IDE, разработчик чувствует себя неуютно за чужим компьютером, где её нет.
        Решив разобраться в работе Ant и Maven, я поймал себя на том, что не смогу собрать приложение без них в консоли.
        В данной статье я постарался уместить все этапы проектирования демонстрационного приложения, чтобы не искать справку по каждой команде на просторах Интернета.
        Читать дальше →