Рубрика «Go» - 62

Доброго времени суток, уважаемые читатели. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

NativeScript

Несколько интересностей и полезностей для веб-разработчика #40 - 1
Открытый фреймворк для создания мобильных приложений под iOS, Android и Windows Phone основанный на NodeJS. И весь цимус в том, что это не очередная кроссплатформенная оболочка над WebView (аля PhoneGap), NativeScript со слов разработчиков обеспечивает на JavaScript такие же возможности, какие обеспечивают нативные Objective-C, Java или .NET.

Также хочу упомянуть о NW.js, который до появления IO.js назывался Node-Webkit. Проект по такому же принципу позволяет писать десктопные приложения под Windows, Mac и Linux с помощью веб-технологий. Более того микроконтроллеры, умные дома, интернет вещей, Oculus Rift, Nest выпускают API на JS. Вспоминая все эти новости, хочется сказать, что JavaScript все чаще и чаще представляется как унифицированное средство для кроссплатформенной разработки.

Читать полностью »

Здравствуйте, меня зовут Виталий и я обезьяна практик — для меня лучше один раз увидеть и скопировать, чем сто раз прочитать абстрактные руководства. Долгое время я был обычным системным администратором — писал скрипты на CMD/BAT, и даже на sh (при помощи busybox для Windows). Но однажды обычного shell мне стало не хватать, и я решил для себя написать собственный RPC-сервер, но так, чтобы он работал при минимуме системных компонентов, и был понятным, и был многопоточным и содержал минимум строк кода. Java и прочее ООП я отмел, так как для профессионалов, и слишком абстрактно, и надо ставить среду для выполнения на целевой компьютер, и мне же, как админу, её обновлять. Долгое время приглядывался к perl, но я боюсь динамической типизации. В статье я расскажу, как человеку мало знакомому с программированием решить некоторые задачи системного администрирования при помощи Go.
Читать полностью »

Мы, команда карт «Спутника», разрабатываем карты на основе данных «OpenStreetMap». В этой заметке мы расскажем об архитектуре нашего решения для рендеринга тайлов.

Как это работает: архитектура тайлового бэкенда карт «Спутника» - 1
Читать полностью »

Введение

История движется по спирали. Авторы Go, встав на плечи авторитетной корпорации Google, смогли воплотить свой идеальный язык программирования в жизнь, как когда-то Никлаус Вирт принес в этот мир язык Оберон, собственной непоколебимостью и авторитетом борясь с зарождавшимся трендом усложнения и экстенсивного развития мейнстрим-языков.

Сегодня язык Оберон забыт, но дело Вирта проявилось в языке Go совершенно неожиданно. В некоторых аспектах реализации сходство подходов не вызывает сомнений. Конечно, каждый язык по-своему уникален и нет нужды из одного языка делать другой. Время не повернуть назад. Но в разное время люди стремились сохранить технологии, ушедшие в прошлое. Чего стоят бережно хранимые эмуляторы Спектрума и MSX, музеи старых компьютеров в разных странах. Эмуляция, как один из способов остановить мгновение прочно зарекомендовал себя.

Общепринято считать, что язык Go нашел себя в нише сетевых сервисов. Но мы пойдем другим путем.
Читать полностью »

Весьма короткий пример как использовать Protocol Buffers в Go. Речь пойдёт о proto3, т.е. 3-ей версии протокола (на текущим момент альфа), обобщённо пример справедлив и для второй версии. Не будет описания самого Protocol Buffers. Впрочем чего тянуть
Читать полностью »

Одна из самых популярных конференций по open-source проектам, FOSDEM, прошла 31 января — 1 февраля, и, помимо многих dev-румов, был dev-room посвященный целиком Go. Видео с этой конференции уже выложены в паблик, доклады по 30-40 минут каждый, и, надо сказать, доклады очень достойные — привычного и надоевшего интро для новичков в стиле «Что мне нравится в Go?» или «Как тестировать в Go» тут не было.

По себе знаю, что пересмотреть 7+ часов технических выступлений далеко не всегда реально, особенно если не знаешь толком, стоит ли вообще смотреть, поэтому я подготовил краткие ремарки по каждому докладу, которые могут помочь выбрать — что стоит посмотреть, а что пропустить. Ремарки, разумеется, сугубо субъективные.

Краткий обзор видео по Go c FOSDEM 2015 - 1

Всего было 8 докладов по 30-40 минут, и полтора часа так называемых Lightning talks — коротких докладов, идущих один за другим.
Сразу привожу ссылки на плейлисты:
Youtube: www.youtube.com/playlist?list=PLtLJO5JKE5YDK74RZm67xfwaDgeCj7oqb
FOSDEM http: video.fosdem.org/2015/devroom-go/
Итак, в порядке выступлений.
Читать полностью »

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

Мы, команда Карт «Спутника», разрабатываем карты на основе данных «OpenStreetMap». В этой заметке мы расскажем об архитектуре нашего решения для рендеринга тайлов.

Gopnik: тайловый бэкенд Карт sputnik.ru - 1

Бэкенд карт написан на языке 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 компилирует сам себя.
Зачем это было нужно и чуть больше подробностей под катом.
Компилятор Go переписан на Go - 1
Картинка: Твиттер Russ Cox
Читать полностью »

Цель работы — сократить накладные расходы на хранение большого количества утилит, написанных на golang.

Один из побочных эффектов статической компиляции golang — относительно большие накладные расходы на хранение рантайма и всех используемых библиотек внутри каждого исполняемого файла. Например небольшая утилитка, которая только и делает что обращается через сеть к серверу и выполняет простые полученные команды — весит 5.5Мб.
Когда такая утилитка одна — это в современных условиях это еще не страшно. Когда утилиты накапливаются и их становится уже несколько десятков или сотен — чисто по-человечески становится жалко сотен мегабайтов, утекающих «вникуда».

Для решения этой проблемы я написал библиотеку multiex, которой и делюсь с сообществом. С его помощью можно объединить несколько программ в один исполняемый файл с минимальными изменениями внутри кода программ и без изменения внешнего поведения. Мысль была взята у busybox — все программы компилируются в один файл, а выполняемый код выбирается при запуске, исходя из имени запускаемого файла.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js