4gophers

Стриминг и распознавание лиц через веб-камеру

Перевод статьи “Stream and recognise people from a webcam with Go and Facebox”. От видеонаблюдения для предотвращения вторжения до распознавания личности человека за дверью и автоматического открытия дверей. Все это можно сделать с помощью нескольких строк на pyton, Go и используя Facebox. Для начала нам нужно научиться получать видео с веб-камеры. Есть множество вариантов, как это можно сделать с Go. К сожалению, большинство из них тянут за собой CGO биндинги к OpenCV, при этом поддержка функциональности очень ограничена, а сами проекты довольно монструозны.

Анонимизация изображений с помощью Go

Перевод статьи “Anonymising images with Go and Machine Box“ В стандартной библиотеке Go есть достаточное количество мощных инструментов для работы с изображениями. Это пакеты image, image/* и draw. В этом руководстве мы будем использовать эти инструменты совместно с Machine Box Go SDK для цензурирования изображений. В рамках этой статьи мы напишем простую консольную утилиту. Но тот же самый код можно будет использовать, например, для написания веб-приложений. Запускаем Facebox Facebox это один из образов Machine Box который позволяет распознавать лица с помощью алгоритмов машинного обучения.

Сетевые протоколы: Ethernet и Go

Перевод статьи “Network Protocol Breakdown: Ethernet and Go”. Если вы читаете эту статью, то есть очень большая вероятность, что прямо сейчас вы пользуетесь Ethernet (IEEE 802.3) соединением где-то между вашими устройствами и хостингом, на котором размещен этот блог. Семейство Ethernet технологий - это строительные блоки для современных компьютерных сетей. Было бы не плохо разобраться как именно Ethernet работает на физическом уровне, но в этой статье я сфокусируюсь на фреймах Ethernet канального уровня (“Ethernet frames”).

Распределенный поиск Трампа

Перевод статьи “Building a distributed Trump finder”. В этой статье мы будем работать с инструментом для машинного обучения “Machine Box”. Это очень классная штука, и вам обязательно нужно ее попробовать. По своей сути, это набор заранее подготовленных docker контейнеров, готовых к использованию и предоставляющих интерфейс для различных операций связанных с машинным обучением. К примеру, вы можете воспользоваться контейнером “facebox” для распознавания лиц. После запуска этого контейнера, у вас появится доступ к JSON api, которое позволит обучить этот “facebox” на определенных изображениях лиц людей, распознать эти лица на различных изображениях и сохранить “состояние” обученной модели для дальнейшего использования.

Глубинное обучение с нуля в Go - Часть 1: графы

Перевод статьи “Deep Learning from Scratch in Go - Part 1: Equations Are Graphs“ Это первая статья из целого цикла про алгоритмы глубинного обучение. Я постараюсь начать с самых азов и постепенно двигаться к объяснению современных разработкам в этой области. Глубинное обучение, на самом деле, совсем не новомодное изобретение. Сама идея появилась еще в начале 1980х. Но в наше время компьютеры стали значительно мощнее. В этой статье мы начнем разбираться с этой темой, начиная со знакомых вещей, со временем вникая в принципы работы глубинного обучения.

go tool trace

Перевод статьи “go tool trace“ Знаете ли вы как на самом деле работает ваша Go программа? go tool trace может это показать. Этот инструмент при запуске вашей программы визуализирует все события рантайма в довольно удобной форме. Этот инструмент один из самых лучших помощников при поиске проблем с производительностью, параллелизмом и несогласованностью. К сожалению, документации по нему не так много. В своей прошлой статье я упомянул, что мы использовали go tool trace в Pusher для поиска долгих пауз GC.

Пишем модульную Go программу с плагинами

Перевод статьи “Writing Modular Go Programs with Plugins“ Среди всех фич, которые появились в Go 1.8 есть система плагинов. С ее помощью можно создавать модульные программы используя пакеты как динамически загружаемые в рантайме библиотеки. Это открывает большие возможности. Наверняка вы замечали, что разработчикам больших систем на Go неизбежно приходится структурировать по модулям свое приложение. Мы можем использовать различные инструменты для мудуляризации нашего приложения, такие как системные вызовы, сокеты, RPC/gRPC и т.

Семантический анализ веб-страниц

Перевод статьи “Semantic analysis of webpages with machine learning in Go”. Я трачу довольно много времени на чтение статей в интернете. И подумал, что было бы неплохо написать небольшую программу, которая будет автоматически рекомендовать статьи, подходящие под мои интересы. Конечно, это очень обширная тема, но для начала я решил сконцентрироваться на основной проблеме: аналитики и классификации статей. Для примера воспользуемся очень коротким текстом, будем считать его нашей статьей. "the cunning creature ran around the canine" Мы попытаемся использовать эту супер маленькую “статью” в качестве запроса для поиска аналогичных “статей” из набора других строк.

VPN это просто

В статье использован материал из “Using TUN/TAP in go or how to write VPN“ Сейчас очень много говорят о VPN, мешсетях и других технологиях для анонимизации или создания защищенных соединений. К сожалению, я довольно далек от этой темы, но иногда нужно окунаться в неизвестную область - хорошая разминка для мозгов. Наверное, многие пользовались VPN(виртуальная приватная сеть), но не очень часто задумывались, как они реализованы изнутри. Если верить википедиии, то VPN это:

Классификация текста

Перевод статьи "Text classification" Я всегда пытаюсь автоматизировать действия, которые мне приходится делать более двух раз. Недавно я заметил, что когда я хочу добавить закладку в браузер, то мне приходится выбирать в какую папку ее нужно поместить. Я подумал, что это вполне можно делать автоматически. И в итоге я решил погрузится в эту тему. Мне пришлось начать разбираться в теме обработки естественного языка, суть которой заключается в попытке научить компьютер понимать обычный человеческий язык.