admin / 21.01.2018

Язык программирования го

.

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

Перевод “Developing a Twitter botnet based on Markov chains in Go“ Основная идея этой статьи — рассказать как написать твиттер ботнет с автономными ботами которые смогут отвечать на другие твиты текстом сгенерированным с помощью алгоритма цепей Маркова. Так как это обучающий минипроект, то мы будем делать все сами и с самого нуля. Идея совместить алгоритм цепей Маркова и твиттер ботов появилась после общения с x0rz. Цепи Маркова Цепь маркова это последовательность стохастических событий(основанных на вероятности) где текущее состояние переменной или системы не зависит только от предыдущего события и не зависит от всех остальных прошедших событий.

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.

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

Перевод статьи “TCP servers that run like clockwork“ Go замечательный язык для написания различных сетевых сервисов. Большинство сервисов используют TCP в качестве базового транспорта. Именно поэтому важно понимать как писать надежные TCP серверы. Кроме того, это позволит лучше разбираться в базовых принципах работы сетевых приложений, которые необходимы нам в повседневной работе. “Кричащий” сервис Начнем с создания простейшего TCP сервера, который будет “кричать” в ответ своим клиентам. Он будет получать некоторое сообщение, переводить его в верхний регистр и отправлять обратно клиенту.

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

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

Часть 1. Краткий обзор и основы программирования

Для начала нам нужно научиться получать видео с веб-камеры. Есть множество вариантов, как это можно сделать с 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”).

Все статьи

Введение в язык Go

Что такое Go

Последнее обновление: 12.12.2017

Go представляет компилируемый статически типизированный язык программирования от компании Google. Язык Go предназначен для создания различного рода приложений, но прежде всего это веб-сервисы и клиент-серверные приложения. Хотя также язык обладает возможностями по работе с графикой, низкоуровневыми возможностями и т.д.

Работа над языком Go началась в 2007 в недрах компании Google. Одним из авторов является Кен Томпсон, который, к слову, является и одним из авторов языка Си (наряду с Денисом Ритчи). 10 ноября 2009 года язык был анонсирован, а в марте 2012 года вышла версия 1.0. При этом язык позволяет развиваться. Текущей версией на момент написания данной статьи является версия 1.9, которая вышла 24 августа 2017 года.

Язык Go развивается как open source, то есть представляет поект с открытым исходным кодом, и все его коды и компилятор можно найти и использовать бесплатно. Официальный сайт проекта — https://golang.org, где можно много полезной информации о языке.

Go является кроссплатформенным, он позволяте создавать программы под различные операционные системы — Windows, Mac OS, Linux, FreeBSD. Код обладает переносимостью: программы, написанные для одной из этих операционных систем, могут быть легко с перекомпиляцией перенесены на другую ОС.

Основные особенности языка Go:

  • компилируемый — компилятор транслирует программу на Go в машинный код, понятный для определенной платформы

  • статически типизированный

  • присутствует сборщик мусора, который автоматически очищает память

  • поддержка работы с сетевыми протоколами

  • поддержка многопоточности и параллельного программирования

В настоящее время Go находит широкое применение в различных сферах. В частности, среди известных проектов, которые применяют Go, можно найти следующие: Google, Dropbox, Netflix, Kubernetes, Docker, Twitch, Uber, CloudFlare и ряд других.

Что нужно для работы с Go?

Программирование на Go

Прежде всего необходим текстовый редактор для набора кода и компилятор для преобразования кода в исполняемый файл. Также можно использовать специальные интегрированные среды разработки (IDE), которые поддерживают Go, например, GoLand от компании JetBrains. Существуют плагины для Go для других IDE, в частности, IntelliJ IDEA и Netbeans.

Установка компилятора

Пакет для установки компилятора можно загрузить с официального сайта https://golang.org/dl/.

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

После принятия лицензионного соглашения отобразится окно для выбора места установки:

По умолчанию используется путь «c:\go». Оставим этот путь по умолчанию и перейдем к следующему окну, на котором нажмем на кнопку Install:

После успешной установки в папке C:\Go будут установлены все файлы, необходимые для работы с Go. В частности, в папке C:\Go\bin можно найти файл go.exe, который выполняет роль компилятора:

НазадСодержаниеВперед

Книга 'Язык программирования Go'.

Здравствуйте, уважаемые друзья и коллеги. В наш интернет-магазин combook.ru поступила в продажу долгожданная книга «Язык программирования Go».

Зачем учить язык Go?

Думаю, что по цене это самое лучше предложение, к тому же, зарегистрированные пользователи получат 5% скидку. Ждём ваших заказов.

В книге «Язык программирования Go» описан новый язык программирования от компании Google. Изначально он создавался для того, чтобы помочь задействовать всю мощь современных многоядерных процессоров. По своей сути Go очень похож на С++ и является универсальным языком программирования (анонсирован в 2009 году) Язык Go — компилируемый и многопоточный язык общего назначения, имеющий много общих черт с языком С++, поэтому для успешного освоения представленного материала необходимы определенные знания языка С++ Книга Алана Донована и Брайана Кернигана «Язык программирования Go» представляет собой одновременно и учебник, и справочник, сводя воедино все знания, необходимые для того, чтобы владеть Go, думать на Go и создавать на нем современные высокопроизводительные программы. В книге приведены сотни интересных и практичных примеров хорошо написанного кода на языке Go, которые охватывают весь язык, его наиболее важные пакеты, и имеют широкий спектр применения. В каждой главе содержатся упражнения для проверки вашего понимания и изучения возможных расширений и альтернатив. Исходные тексты свободно доступны для скачивания по адреса gopl.io и могут быть легко получены, построены и инсталлированы с использованием команды go get

Ли Атчисон: Масштабирование приложений. Выращивание сложных систем

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

 

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*