4gophers

Инструменты, которые помогут улучшить ваш код

Перевод статьи “Simple tools to improve your go code

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

Strace в 60 строчек код

Перевод статьи Liz Rice “Strace in 60 lines of Go”.

Эта статья написана по мотивам моего доклада “A Go Programmer’s Guide to Syscalls”. Вы можете посмотреть код тут.

Чтобы объяснить некоторые моменты работы линуксовского ptrace я решила написать свою базовую реализацию strace. И в этой статье я расскажу, как этот самодельный strace работает. Если у вас есть время, то можете посмотреть видео того самого доклада:

Разработка твиттер ботнета на основе цепей Маркова

Перевод “Developing a Twitter botnet based on Markov chains in Go

Основная идея этой статьи - рассказать как написать твиттер ботнет с автономными ботами которые смогут отвечать на другие твиты текстом сгенерированным с помощью алгоритма цепей Маркова. Так как это обучающий минипроект, то мы будем делать все сами и с самого нуля.

HTTP(S) прокси на Go в 100 строчек кода

Перевод “HTTP(S) Proxy in Golang in less than 100 lines of code

В этой статье я опишу реализацию HTTP и HTTPS прокси сервера. С HTTP все просто: сначала парсим запрос от клиента, передаем этот запрос дальше на сервер, получаем ответ от сервера и передаем его обратно клиенту. Нам достаточно использовать HTTP сервер и клиент из пакета net/http. С HTTPS все несколько сложнее. Технически это будет туннелирование HTTP с использованием метода CONNECT. Клиент отправляет запрос, указав метод CONNECT, с помощью которого устанавливается соединение между клиентом и удаленным сервером. Как только наш туннель из 2х TCP соединений готов, клиент обменивается TLS рукопожатием с сервером, посылает запрос и ждет ответ.

TCP сервер работающий как часы

Перевод статьи “TCP servers that run like clockwork

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

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

Перевод статьи “Stream and recognise people from a webcam with Go and Facebox”.

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

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

Перевод статьи “Anonymising images with Go and Machine Box

В стандартной библиотеке Go есть достаточное количество мощных инструментов для работы с изображениями. Это пакеты image, image/* и draw. В этом руководстве мы будем использовать эти инструменты совместно с Machine Box Go SDK для цензурирования изображений.

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

Перевод статьи “Network Protocol Breakdown: Ethernet and Go”.

Если вы читаете эту статью, то есть очень большая вероятность, что прямо сейчас вы пользуетесь Ethernet (IEEE 802.3) соединением где-то между вашими устройствами и хостингом, на котором размещен этот блог. Семейство Ethernet технологий - это строительные блоки для современных компьютерных сетей.

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

Перевод статьи “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

Это первая статья из целого цикла про алгоритмы глубинного обучение. Я постараюсь начать с самых азов и постепенно двигаться к объяснению современных разработкам в этой области.