Обновить
94.35

Go *

Компилируемый, многопоточный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Разбор строки адреса (улица [дом]) средствами Golang и Postgis

Время на прочтение3 мин
Количество просмотров15K
Hi, %habrauser%.
Столкнулся я на днях с интересной задачей — пользователь вводит строку, которая может быть улицей с домом, просто улицей или вообще не улицей, а нам надо узнать имел ли он ввиду улицу с домом и соответствующее ему подсказать.
— Казалось бы чего проще — разбей строку по пробелу и наслаждайся — подумал Штирлиц
— А как насчет улицы Павла Корчагина — шепнула птица Обломинго
— Эм, ну номер дома же наверняка число — сказал Штирлиц
— Ага, корп1 — хорошее число
— Мдя, придется изобретать велосипед

Читать дальше →

DevConf 2014: Пишем функциональное, надежное и быстрое веб-приложение на Go

Время на прочтение2 мин
Количество просмотров9.3K

Дмитрий Вьюков, разработчик, Google работающий над ядром языка Go выступит докладчиком на DevConf 2014

Поддержите Дмитрия, чтоб доклад вошел в программу конференции DevConf 2014


В программе еще 2 доклада по Go:
  • Go на Google App Engine — просто, надёжно, быстро и недорого.
  • Go: аналитика Рунета в реальном времени
Предлагаем Вашему вниманию интервью с автором доклада
Читать дальше →

Реверс-инжинеринг и написание бота для flash игры на Go

Время на прочтение19 мин
Количество просмотров10K
image В этой статье я расскажу, как декомпилировать flash-приложение с последующим извлечением алгоритма подписи запросов на игровой сервер. И как на основе этой информации написать игрового бота на Go.
Все началось с того, что я искал стратегию, чтобы поиграть со своего android смартфона. Нашел неплохую игру под названием «Throne rush». Потом оказалось, что есть и браузерный клиент, что делает удобнее некоторые действия. Но все же игровой процесс явно требовал автоматизации. Я воспользовался прекрасным инструментом JPEXS Free Flash Decompiler, о котором далее пойдет речь.
Читать дальше →

Как ускорить программу на Go

Время на прочтение2 мин
Количество просмотров17K
Увы, я не веду свой бложик, а результат недавнего «открытия» обнародовать в виде заметки считаю необходимым. Полагаю, найдутся люди, которым это весьма пригодится.

Go — язык, компилируемый в нативный код, а посему, очевидно, должен быть быстрым. Однако, к сожалению, на данный момент это далеко не всегда соответствует действительности.
В моём же случае, Go проиграл PHP (ну, на самом деле модулю PHP на C, однако результат всё равно удручающий). Если кратко, то при вычислении Whirlpool-хеша Go проигрывал в 3,5-7.5 раз!
Покажи решение

Еще один дайджест (теперь Go)

Время на прочтение4 мин
Количество просмотров19K
image Привет всем фанатам и интересующимся Go. Это 6-й выпуск дайджеста ссылок и новостей о набирающем популярность языке. Не сочтите за наглую попытку пропиарить ресурс, на котором я регулярно публикую новости все о том же Go. Все последующие выпуски «тулзовин и хреновин» будут публиковаться именно на 4gophers.com. Кроме того, по просьбам трудящихся, теперь есть подписка на рассылку.

Тема этого выпуска — GopherCon 2014. Это самая большая Go-конференция в этом году. Возможно, кто-то из читателей лично присутствовал и может рассказать о своих впечатлениях. Все найденные в сети доклады и материалы я стараюсь собрать в этом посте.

Читать дальше →

Пишем Penguin Daycare Simulator на Go (Google App Engine) и Lua (Corona SDK)

Время на прочтение13 мин
Количество просмотров9.7K

1. Введение


Данный проект представляет собой простой пример использования Google App Engine в мобильном приложении.

Cерверная часть предоставляет список пингвинов в формате JSON. Мобильный клиент запрашивает этот список по HTTP или HTTPS.
Также серверная часть ведёт запись определённых событий в базу данных, а именно количество посещений конкретного пингвина и количество нажатий кнопок: скормить рыбку и почесать животик.
У каждого пингвина есть поля описания Name, Bio и поля счётчиков.
Читай далее, если тебе не безразличны пингвины...

Язык Go для начинающих

Время на прочтение9 мин
Количество просмотров508K
Gopher

Цель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.
Читать дальше →

Используем nginx, docker, skydns и skydock для обновления кода на лету (zero-downtime deployment)

Время на прочтение5 мин
Количество просмотров24K

Инструменты, которые мы будем использовать


Docker


Docker — простая и элегантная библиотека для создания легковесных изолированных друг от друга виртуальных контейнеров, в которых можно исполнять любой код. Совершенно не требователен к ресурсам, минимальный overhead.

Собрав контейнер один раз, его можно многократно использовать.

Простой пример — это БД Redis. Если нам необходимо несколько серверов Redis на одном компьютере, при обычном подходе нам придется изменять конфигурационные файлы в /etc/redis и менять файлы в /etc/init.d. Можно написать bash скрипт, но это не делает процесс легче.
Читать дальше →

Пишем веб сервис на Go (часть вторая)

Время на прочтение18 мин
Количество просмотров26K
Продолжение статьи о том, как написать небольшое полнофункциональное приложение на Go.

В первой части мы реализовали REST API и научились собирать приходящие HTTP запросы. В этой части, мы покроем наше приложение тестами, добавим красивый веб-интерфейс на основе AngularJS и Bootstrap, и внедрим ограничение доступа для разных пользователей.
Напишем капельку кода на Go

Пишем веб сервис на Go (часть первая)

Время на прочтение18 мин
Количество просмотров58K
В этой статье, я хотел бы рассказать вам, как можно достаточно быстро и легко написать небольшое веб-приложение на языке Go, который, не смотря на юный возраст, успел завоевать расположение у многих разработчиков. Обычно, для подобных статей пишут искусственные приложения, вроде TODO листа. Мы же попробуем написать что-то полезное, что уже существует и используется.

Часто, при разработке сервисов, нужно понимать какие данные отправляются в другой сервис, а возможность перехватить траффик есть не всегда. И как раз для того, чтобы отлавливать подобные запросы, существует проект requestb.in, позволяющий собирать запросы по определённому урлу и отображать их в веб-интерфейсе. Написанием подобного же приложения мы и займёмся. Чтобы немного упростить себе задачу, возьмём за основу какой-нибудь фреймворк, например Martini.

В конечном итоге, у нас должен будет получится вот такой вот сервис:



Приступим к разработке

Исполнение SSH-команд на сотнях серверов с помощью Go

Время на прочтение5 мин
Количество просмотров37K

О чём статья


В этой статье мы с вами напишем простенькую программу на Go (в 100 строк), которая может исполнять команды через протокол SSH на сотнях серверов, делая это достаточно эффективно. Программа будет реализована с помощью go.crypto/ssh — реализации SSH протокола авторами Go.

Более «продвинутая» версия программы, написанной в этой статье, доступна на гитхабе под названием GoSSHa (Go SSH agent).
Читать дальше →

[Перевод] Массивы, срезы (и строки): Механизм 'вставки'

Время на прочтение15 мин
Количество просмотров38K

Вступление


Одна из самых общих возможностей процедурных языков программирования, это концепция массива. Массивы могут показаться чем-то простым, но с другой стороны, перед их добавлением в язык требуется решить несколько вопросов, таких как:
  • Фиксированный или переменный размер?
  • Размер это часть типа?
  • Что из себя будут представлеть многомерные массивы?
  • Что из себя представляем понятие пустого массива?

Ответы на эти вопросы определят массивы как простую возможность языка, или как основную часть его дизайна.
Читать дальше →

Ближайшие события

Бесплатные скринкасты для изучения Go

Время на прочтение1 мин
Количество просмотров9.7K
На сайте GoCasts.io опубликована небольшая подборка скринкастов, обучающих программированию на языке Go. Всего опубликовано три скринкаста от Алана Харпера. Приятно, что в качестве примеров выбраны не абстрактные, а самые практичные примеры из реальной жизни.

#1 – HTTP Get
Как осуществить простой HTTP-запрос с использованием пакета net/http в стандартной библиотеке Go.
Читать дальше →

Повторное использование кода в Go на примере

Время на прочтение12 мин
Количество просмотров19K
image «Пойду поищу готовое решение в Google»

В процессе работы над любым программным продуктом разработчик может столкнуться с проблемой заимствования чужого кода. Происходит это постоянно. С каждым годом, вместе с развитием социальных сетей для разработчиков, процесс становится всё более естественным и гладким. Забыли, как вытащить из файла все слова? Нет проблем, идём на Stack Overflow и получаем готовый сниппет. Для особо запущенных случаев есть даже плагин для Sublime Text, который по хоткею ищет выделенный текст на SO и вставляет кусок кода из принятого ответа прямо в редактор. Такой подход ведёт к ряду проблем…
Читать дальше →

Мой любимый редактор acme

Время на прочтение3 мин
Количество просмотров26K
Еще один редактор? Я пользуюсь Vim в SSH сессиях, благо он гарантированно присутствует в любой инсталляции Linux. Мне нравится SublimeText уникальной способностью multiselect. Я иногда открываю emacs, чтобы прикоснуться к вечности и в полной мере ощутить свою никчемность.
acme у меня открыт постоянно, под катом агитация с картинками.
Это Гленда
Читать дальше →

Починка электронного правительства Объединенного Королевства посредством языка Go

Время на прочтение7 мин
Количество просмотров7.2K
Это первая ласточка в серии публикаций о новом динамическом HTTP маршрутизаторе поддерживающем GOV.UK. Это письмо проливает свет на наш порыв, объясняет решимость и подытоживает приобретенный опыт.

Зачем это нам сдалось.
Читать дальше →

Блокнот с графическим интерфейсом на языке Go

Время на прочтение5 мин
Количество просмотров34K
Несмотря на то, что язык Go существует уже не один год, информация о том, как создавать приложения с графическим интерфейсом на этом языке, практически отсутствует. Возможно это вызвано тем, что среди официальных библиотек до сих пор нет библиотеки для работы с GUI. Однако это не значит, что мы не можем создать приложение с пользовательским интерфейсом: существуют библиотеки, предоставляющие такую возможность. Приведу их список. Но есть еще несколько библиотек, не указанных в этом списке. Среди них — Walk, название которого расшифровывается как «Windows Application Library Kit». С его помощью я попробую создать небольшое приложение с пользовательским интерфейсом.
Читать дальше →

Релиз Go 1.2

Время на прочтение2 мин
Количество просмотров9K
image1 декабря 2013. Мы рады объявить о выпуске последней стабильной версии Go 1.2.

С момента предыдущего релиза Go 1.1, в мае, прошло около семи месяцев и это гораздо более короткий период, чем четырнадцать месяцев между релизами 1.1 и 1.0. Мы ожидаем сопоставимые интервалы времени между мажорными релизами в будущем.

Go 1.2 включает пару незначительных изменений языка, некоторое количество улучшений в реализации компилятора и инструментов, несколько моментов улучшения производительности, много дополнений и (обратно-совместимых) изменений в стандартной библиотеке.

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

Нагрузочный тест на Go, версия 2

Время на прочтение9 мин
Количество просмотров9.1K
Никак не доходили руки переписать go-meter. Увеличить производительность, получить более полный контроль над процессом и довести до приближения к wrk. В идеале хочется увидеть легко и удобно расширяемую альтернативу. Да, в wrk недавно появилась поддержка Lua скриптов, которые решают многие неудобства, но и там тоже есть неприятные нюансы, например, расширенную статистику собирать не получится, так как методы вывода статистики работают только на первом потоке, и к собранным данным на других потоках доступа нет, поэтому сводится опять к тому, что-бы разбираться в исходниках и делать под себя, но это не тривиальная задача. И так, готовим нагрузочный тест на Go, c плюшками. Кому интересно, прошу под кат.
Читать дальше →

Вклад авторов