На Амазоне анонсировали новую книгу Брайана Кернигана и Алана Донована с ёмким названием «The Go Programming Language». Кто не в курсе — Брайан Керниган это один из соавторов Unix, автор cron-а и автор одной из самых культовых книг в мире программирования "The C Programming Language", написанную вместе с Деннисом Ричи в 1978-м.
Книга доступна для предзаказа, релиз бумажной версии запланирован на 27 августа 2015.

Читать полностью »
Рубрика «Go» - 79
Анонс книги Брайана Кернигана «The Go Programming Language»
2015-03-07 в 10:27, admin, рубрики: book, Go, Программирование, Профессиональная литератураGopnik: тайловый бэкенд Карт sputnik.ru
2015-03-06 в 10:57, admin, рубрики: Go, golang, opensourse, OpenStreetMap, OSM, sputnik.ru, высокая производительность, Геоинформационные сервисы, открытые данные, метки: openstreetmap, osmМы, команда Карт «Спутника», разрабатываем карты на основе данных «OpenStreetMap». В этой заметке мы расскажем об архитектуре нашего решения для рендеринга тайлов.

Бэкенд карт написан на языке Go с использованием библиотеки Mapnik, поэтому – Gopnik :-)
Исходники Gopnik доступны на Github.
Читать полностью »
Вот такими словами начинается комментарий к свежему коммиту в master-ветку Go:
This change deletes the C implementations of the Go compiler and assembler from the master branch.
(«Эти изменения удаляют C-реализацию компилятора и ассемблера Go из главной ветки»)
Эти слова — труд почти года работы команды Go по переписыванию компилятора с C на Go. Это был на 90% автоматический процесс. Теперь Go компилирует сам себя.
Зачем это было нужно и чуть больше подробностей под катом.

Картинка: Твиттер Russ Cox
Читать полностью »
Уменьшение накладных расходов для утилит на golang
2015-02-23 в 19:23, admin, рубрики: Go, golang, overhead, накладные расходы, оптимизация, Программирование, системное администрированиеЦель работы — сократить накладные расходы на хранение большого количества утилит, написанных на golang.
Один из побочных эффектов статической компиляции golang — относительно большие накладные расходы на хранение рантайма и всех используемых библиотек внутри каждого исполняемого файла. Например небольшая утилитка, которая только и делает что обращается через сеть к серверу и выполняет простые полученные команды — весит 5.5Мб.
Когда такая утилитка одна — это в современных условиях это еще не страшно. Когда утилиты накапливаются и их становится уже несколько десятков или сотен — чисто по-человечески становится жалко сотен мегабайтов, утекающих «вникуда».
Для решения этой проблемы я написал библиотеку multiex, которой и делюсь с сообществом. С его помощью можно объединить несколько программ в один исполняемый файл с минимальными изменениями внутри кода программ и без изменения внешнего поведения. Мысль была взята у busybox — все программы компилируются в один файл, а выполняемый код выбирается при запуске, исходя из имени запускаемого файла.
Пишем симулятор медленных соединений на Go
2015-02-19 в 22:16, admin, рубрики: Go, golang, ПрограммированиеВ этой статье я хочу показать, как просто в Go можно делать достаточно сложные вещи, и какую мощь в себе несут интерфейсы. Речь пойдет о симуляции медленного соединения — но, в отличие от популярных решений в виде правил для iptables, мы реализуем это на стороне кода — так, чтобы можно было легко использовать, к примеру, в тестах.
Ничего сложного тут не будет, и ради большей наглядности я записал ascii-анимации (с помощью сервиса asciinema), но, надеюсь, будет познавательно.
Чат вконтакта в качестве терминала
2015-02-19 в 18:04, admin, рубрики: Go, golang, vkonakte, Вконтакте, Вконтакте API, КодоБред, ненормальное программированиеВдохновлённый постом «Простой диспетчер задач с веб-интерфейсом, написанный на языке GO для Unix-систем включая Android», языком Go и утилитой simple status, я решил написать в качестве забавного эксперимента чат-бота для социальной сети Vkontakte со схожим функционалом.
Почему выбор пал на чат-бота и социальную сеть? Кроме очевидного just for fun имеются и практические выкладки:
- Не нужны дополнительные телодвижения для доступа к приложению, запущенном на компьютере с динамическим ip или находящимся за роутером.
- Доступ к Вконтактике есть практически везде – достаточно иметь при себе телефон с доступом в интернет.
- Вопрос о реализации аутентификации на уровне конечного приложения практически отпадает.
Обновление сервисов, запущенных на Go
2015-02-19 в 8:55, admin, рубрики: aes, aes-128, AES-256, Go, криптография, обновление кода, обновление кода на лету, ПрограммированиеЯ люблю программировать на Go, но больше всего сейчас мне нравится программировать в gobot для Raspberry Pi. Каждое изменение в коде требует определенное время на нудные операции, связанные с обновлением кода. Сначала я должен остановить процесс, так как Filezilla отказывается писать в исполняемый файл, когда процесс запущен, загрузить новый исполняемый файл по SFTP и запустить его (это не только нудно, но еще 10-20 секунд простоя, когда процесс остановлен).
Аналогичная ситуация меня преследует и при разработке для обычного веба на Go. Именно в gobot я вынужден очень часто обновлять код, что связанно со стилем разработки, который приносит мне удовольствие в свободное время. С разработкой нового пакета обновлять код, написанный на Go стало проще и быстрее.
Читать полностью »
Централизованные логи для приложений с помощью связки heka+elasticsearch+kibana
2015-02-17 в 9:00, admin, рубрики: centralized logging, elasticsearch, Go, golang, java, python, ит-инфраструктура, метки: centralized loggingВ статье описана настройка центрального логирования для разных типов приложений (Python, Java (java.util.logging), Go, bash) с помощью довольно нового проекта Heka.
Heka разрабатывается в Mozilla и написана на Go. Именно поэтому я использую его вместо logstash, который имеет сходные возможности.
Читать полностью »
Operation Go — игра-боевик для Go-программистов
2015-02-10 в 23:45, admin, рубрики: Go, игры, Программирование, метки: goСегодня появилась в сети игра для программистов — Operation Go, Очень качественно сделанная игра, в которой нужно проходить миссии, понимая, разбирая и дописывая код на Go. Всё это с сюжетом, развитием и фабулой, хорошим саундтреком, интересно и затягивающе. Вы выступаете в роли агента секретной службы, которому регулярно приходится сталкиваться с решением проблем при помощи кода.
Очень круто сделано, правда. Попробуйте, и будьте готовы открыть для себя некоторые новые аспекты Go или стандартной библиотеки. В некоторых уровнях нужна математическая соображалка. Ну и английский, само собой.

