2015年9月6日日曜日

Golang勉強会

私事ながら「東京フリープラン二日間の旅」の二日目、風の噂で聞いていたGo/golang/Go言語に関するイベントがなくなったということで、9/5(土)に東京は文京区にて「Golang勉強会」を開催しました!q@w@p

開催17時間前(!?)でのイベント告知にも関わらず、@sinmetalさん、@tenntennさん、@ohkawa_mさん、私(@qt_luigi)の4名のgopherに参加して頂きましたm(__)m

会場は@sinmetalさんに山盛りご協力して頂いて「TOPGATE」さんの会議室を使わせて頂きました。(建物の写真を撮るのを忘れましたm(__)m)

集合

初めての地ということで余裕を持って一時間前に現地入りしました。案の定、最寄り駅から会場までの道中で迷ってしまったので正解でした(^^;) 無事に@sinmetalさんと合流して会場の向かい側の台湾料理のお店で昼食をとりました。


食事後、建物の入り口で待たれていた@ohkawa_mさんと合流して会場入り。@tenntennさんも少し迷いつつも無事に合流されました。

3人とも@ohkawa_mさんとは「はじめまして」でしたが、すぐに打ち解け込んで頂けられたので一安心でした。

オープニング

友達が集まって「んじゃGoするかな〜」という感じの良い雰囲気だったので「なくてもよいかなー」とも思ったのですが、イベントとして開催してしまったので(^^;) 開催の挨拶をさせて頂きました。その後、各自にて自己紹介と本日のテーマ(以下を参照)を発表して頂きました。

  • @sinmetalさん:BigQueryにJSONを渡すGoツールの作成
  • @tenntennさん:gomobileにてボタンの作成
  • @ohkawa_mさん:並列処理の実装
  • @qt_luigiさん:自作Goツールの整理

私はテーマ発表の直前に暗号化+自己解凍形式にしていた自作Goツール群がexeファイルだったことをに気付いてしまい、のっけからテーマを失ってしまいました。ちなみに参加者は全員MacBookでした…(^^;)


もくもく会&交流会

主な活動内容は次の通りでした。

  • Goトーーーク
  • @ohkawa_mさんの質問コーナー(並列処理、channel、など)
  • @sinmetalさんと私がgophersのslackに参加
  • @tenntennさんによるsay(= OS Xのテキスト読み上げ)コマンドの紹介
  • おやつタイムの「きのこ vs たけのこ」戦争にて「たけのこ」が勝利
  • @tenntennさんによる「reflectのススメ(?)」から「オレオレTypeの試み」
  • @sinmetalさんの質問コーナー(構造体の解析、json.Unmarshal、など)

コードの提示などで「Go Playground」が大活躍しました!q@w@p ありがとう「Google」という名の会社さん!w


クロージング

和気あいあいとした盛り上がりの中、気が付けば予定時間の16:00を過ぎて17:00近くに。最後に皆さんから一言ずつ感想を頂いた後、私の帰りの飛行機に間に合わすべくドタバタと帰り支度を開始しました。

感謝ありがとう

@tenntennさん、先生やらお話やら、感謝ありがとう。良い刺激を頂きました。またGoConにて!q@w@p

@ohkawa_mさん、参加やら質問やら、感謝ありがとう。Goもだちが増えました。帰り道は助かりました&楽しかったです!q@w@p

@sinmetalさん、会場やら付合やら、感謝ありがとう。二日間お世話になりました。次は岡山にて!q@w@p

関連サイト



GCPUG Okayama #5 in 東京

私事ながら「東京フリープラン二日間の旅」の一日目、GCPUG東京に確認したところGoogle Cloud Platformに関するイベントはないということだったので、9/4(金)に東京は渋谷にて「GCPUG Okayama #5 in 東京」を開催しました!q@n@p

諸事情により開催二日前でのイベント告知&週末の平日の昼間の開催にも関わらず、12名の方に申し込んで頂いて11名の方に参加して頂きましたm(__)m

会場は@kazunori_279さんに山盛りご協力して頂いて「dots.」さんを使わせて頂きました。


会場説明

はじめにdots.の小沢さんから会場の説明を頂きました。


GCPUG&岡山支部のご紹介

Okayama名義での開催ということで(^^;) GCPUGについてと岡山支部の活動内容を紹介させて頂きました。


自己紹介タイム

程よい人数だったので自己紹介をして頂きました。

  • 業務でGCPを使い始めた方
  • GCPUG湘南支部の皆さん
  • GCPを使われている方
  • ISUCON5に参加される方

などなど。個人的にはアイコンは見たことがあるがお会いするのは初めてという方もいらっしゃいました。

もくもく会&交流会

@kazunori_279さん、@soundTricker318さん、@sinmetalさんのお三方に参加して頂けたことで、もくもくするだけの会ではなく話し合いもできる会となりました。

具体的な質問がなされ、しっかりとした回答が返っていました。@soundTricker318さんは実際の画面を見せながら解説してくださいましたm(__)m

皆さん何かしらのGCPサービスを使われていたため、まつわる話も数多く飛び交っていましたし、そんな話に聞き耳を立てつつ、もくもくされている方もいらっしゃいました。

また、半数がGCPUGメンバーということでGCPUGについてもいくつか議論がなされました。

会場について

8月にオープンしたばかりでとても綺麗です。軽快なBGMが静かに流れていたり飲食も可能なのでちょっとしたお店の気分。とても居心地が良かったです。



今回は一つの円卓に着席する形だったので、お互いに顔を見合わせて会話もしやすく、和気あいあいとした雰囲気で会は進みました。



プロジェクターを使用することも出来たので、質疑応答の際などに具体的な例が示されたので理解しやすかったです。


途中、ゲリラ豪雨がありましたね。カミナリも一つ落ちたかな。

クロージング

宴もたけなわ(?)、予定時間の17:00近くになったところで参加者の方々から本日の感想を頂いた後、片付けに入りました。

イベント公開時は「もくもく会&交流会だけで4時間は長過ぎるよなぁ」と思っていましたが、参加者の皆さんにて活発なやりとりをして頂けたおかげで充実した時間を過ごました。

感謝ありがとう

参加者の皆さん、急募&平日昼間のご参加、感謝ありがとう。何か一つでも得られるものがあったのなら、これ幸いです!q@n@p

@soundTricker318さん、お顔見せ&質疑応答&お話しの数々、感謝ありがとう。イベント開催の期待しております!q@n@p

@sinmetalさん、お付き合い、感謝ありがとう。次回のGCPUG岡山よろしくお願い致します!q@n@p

小沢@dots.さん、会場の提供&イベントサイトや開催までのフォロー、感謝ありがとう。機会があればまた利用させて頂きます!q@n@p


@kazunori_279さん、最初から最後まで&何から何まで、感謝ありがとう。佐藤さんのおかげで無事に開催することができました!q@n@p

関連サイト

2015年7月20日月曜日

書籍「基礎からわかるGo言語」と改訂2版

2013年の夏、移動するフェリーの中で「ひまつぶしに」と始めた本書「基礎からわかる Go言語」の写経が私のGo人生(?)の始まりだったのかもしれません。写経や復習で結構使い込んでいたので「もう1冊、買わなければ」と思い始めていた2015年の夏、Go 1.4に対応した「改訂2版 基礎からわかる Go言語」が発売されたので早速購入しました。

何が変わったのかと興味津々、私調べで1ページずつ目視でざっくりと新旧を比較して、見つけた変更箇所は約30カ所。サンプルコードも文字コード変更による日本語の差分と2つの新規追加分ぐらいで、内容的には大きくは変わっていませんでした。

すなわち、Goの言語仕様は大きく変わっていない、つまり、安定しているということです。これは新たに言語を習得したり導入したりする部分で重要なことだと思います。Go 1.x系はコードレベルでの上位互換性が保証されていることも強みです。

小さくは変わっているので、主な変更点をご紹介。

Goのバージョン

 Go 1.0.3からGo1.4.2に変わっています。
 go runコマンドの実行時エラーにてexit statusが出力されています。
 サンプルのソースコードもGo 1.4で実行し直して動作確認されているようです。

Windows対応の強化

 コマンドプロンプト上での作業時における大半の注意書きがなくなっています。

コラムの追加

 新しいコラムがいくつか追加されており、既存のコラムの修正も少しあります。

追加された文法に対応

 メソッドの章ではGo 1.1からの「Method values」が追加されています。
 スライスの章ではGo 1.2からの「Three-index slices」が追加されています。
 繰り返し処理の章ではGo 1.4からの戻り値なしの「For-range loops」に変更されています。

その他、

 公式のダウンロード類のURLがgolang.orgに変更
 main関数を含む複数ファイルの実行不可
 go docコマンドの廃止(現在はgodocだがGo 1.5から復活)
 ログファイルの追記モード、など

細かなところまでキッチリと更新されています。

本書のウリは「公式サイトに書かれていること」を解説やコードを交えて日本語で書かれている点です。また、正誤表やミスがない点も挙げられます。たまにベテランgopher(?)の方が「◯◯を初めて知った」と発言されているシーンをお見受けしますが、「それ、本書に書かれてますよ。」というものだったりします。

残念な点を挙げるとしたら、来月リリース予定のGo 1.5対応でなかった点ですね。今後は「Goでモバイルアプリを作ろう」みたいな書籍も出てくるかも!?

これからGoを始めるgopherにはオススメですし、知識の再確認用にベテランgopherにもオススメの一冊です!q@w@p

私版:正誤表

 31ページのCOLUMNにて、Mac版のgitインストーラーのダウンロード先がcode.google.comになっていますが、現在はsourceforge.net(http://sourceforge.net/projects/git-osx-installer)です。

[2015.07.20] go docについて訂正

 go docコマンドですが、改訂2版には「Go 1.2で廃止」と記載されておりGo 1.4.2でも使えませんがGo 1.5からは復活するようです。

$ go version
go version go1.5beta2 darwin/amd64
$ go
Go is a tool for managing Go source code.

Usage:

go command [arguments]

The commands are:

build       compile packages and dependencies
clean       remove object files
doc         show documentation for package or symbol
env         print Go environment information
        (以下、省略)

2015年6月26日金曜日

Go Conference 2015 summer

6/21(日)に東京で開催された「Go Conference 2015 summer」に参加してきました。

会場の日経ビル(右側の少し黒っぽいビル)

本記事は私の活動記録となっているためGoConに関する内容につきましては他の方々のブログ記事などをご参照ください。

q@w@p 今回は抽選形式のLT枠で申し込みました!

申し込み当初は「こんなところでGoは使われています」をテーマにGoのプロダクトやGoで開発している会社などを国内外問わず紹介しようと情報を集めていました。

「あれも紹介しよう」「これも紹介せねば」とスライドを書き連ねて行くうちに50枚を越えてしまい何回練習しても発表時間の5分に収まらなくなっていました。

スライドを二分割してさらにテーマを日本の会社だけに絞ることで何とか発表時間内に収めることができました。(そのためタイトルに「日本の会社 編」を付けてあります。)

その後もGoで開発した会社の情報が公開されたり開発中として紹介していたプロダクトが正式リリースされたりとGo界隈の活発さに一喜一憂しながらスライドに反映して行きました。

発表後に「ウチもあと少しでGoで開発したシステムをリリースできます!」と声を掛けて頂いた会社さんもありました。私の力不足で調べ切れていない会社さんもまだまだあるようなので今後とも楽しみです。


q@w@p 今回も皆様のツイートをTogetterへまとめさせて頂きました!

今回は朝から電源を確保できたので最後まで「なんちゃってリアルタイム」でトゥギャリを更新し続けることができました。

手違いというか何というか対象キーワードを「#gocon」ではなく「gocon」としていたために周辺のツイートも集めてしまいましたが盛り上がり感を伝えることができていると判断してそのまま採用しました。


q@w@p ネット越しのgopherに会うことが出来ました!

今回は会場で懇親会が開催されましたが、その恩恵を受けることができました。

「gopherのgopherはみなgopherだ!」のごとく +Yasutaka Kawamoto さんから +Ato Araki さんを、 +Tetsuya Onuki さんから +Daigo Ikeda さんを、それぞれ紹介して頂きました。

q@w@p さいごに

遠方枠を用意して頂いたおかげで地方から安心して申し込みを行うことができました。

そして今回も +Takanobu Hagino さんのおかげで東京に来ることができましたm(__)m
# 「Haginoツアーズ」Presentsの旅、満喫させて頂きました!

来月7/11(土)に香川県で開催される「オープンセミナー香川@2015」にてGoについて少しお話させて頂くのですが、その際に今回のGoConについても少し報告させて頂く予定です。

あ、今回はお尻があまり痛くなりませんでしたね q@w@p

発表者へ配られたゴーファー人形と
サイバーエージェント様からの差し入れ水

2015年2月22日日曜日

Go on Android ハンズオン&もくもく会

2/21(土)に兵庫で開催されたGDG神戸様の主催の「Go on Android ハンズオン&もくもく会」に参加しました。

理由した・できた理由

・テーマが「Go on Android」であった

 Go 1.4からmobileパッケージが追加されて、まずはAndroidアプリの開発が可能となり、自分でもサンプルが動作するところまで確認していました。今回のイベントでは具体的なアプリの作成方法を知ることができるかと思い、申し込みました。

・GDG神戸様による数年ぶりのGoイベントであった

 私がGoを知る以前から、GDG神戸様の公式ブログにはGoに関する記事が投稿されていました。今回は投稿者であった野田さんがGDG神戸様のCo-Managerに就任されて初のイベントということもあり、また、関西のGo事情や関西Gopherの方々にも触れ合ってみたかったので、参加しました。

・県外ながら日帰り可能であった

 開催場所は兵庫県といえどほぼ大阪府という位置でしたが、午後からの開始だったため、大都会岡山からでも午前中の移動で間に合う見通しを立てられました。午前中からの開催だったなら参加できていなかったです。

 余談ですが、電車移動による往復の約6時間にて、書籍「リーダブルコード」を読み直すことができました。書かれていることはほぼ実践できていることを再確認しました。

当日の様子

会場は公民館の茶室で4つの小さな畳部屋で構成されてしました。管理人の方に許可を頂き、まずはみんなでもくもくできるように部屋のレイアウトを変更しました。襖を外して1つの部屋にして、低めの長机を設置して、床の間の壁にプロジェクターを投影して準備完了です。

参加者は9名で、Androidは経験ありでGoは初めてという方もいらっしゃいました。私はGoは経験ありでAndroid&Android Studioはほぼ初めてです。

前半は野田さんが作成されたスライド資料&解説に従ってGoでAndroidアプリを作成する流れをハンズオン、後半は各自でもくもくする会となりました。

野田さんのスライド資料は後日公開される予定ですが、内容的にはGDG神戸様に投稿されたブログ記事と同等であり、野田さん自身もそう言われていました。


[2015.02.22] 野田さんのスライド資料が公開されました。


みなさん予想以上にDockerやGoといった環境のセットアップに時間がとられました。私も数日前にアップデートしたAndroid Studio 1.1でのJava 7 SDKの紐付に手間取ったりしました。

また、ディスク容量不足により今回のDockerイメージをインストールできなかったので、ローカル環境にセットアップして挑みました。


Android Studioにて、Androidプロジェクト配下にコピー&ペーストするファイルやディレクトリーを間違えたり、Goからの実行結果を出力する方法(Log.d("タグ", "メッセージ"))をわかっていなかったりして時間がかかってしまいましたが、何とか動作を確認することができました。

時間となり、茶室をrecover()して、退室前に皆さんで名刺交換タイム。今回は最初に自己紹介タイムがなかったので、ここで皆さんのお名前を知ることができました。

合わせてTogetterもどうぞ。


終了後は懇親会へ。予約なしの突撃モードだったので3件目にしてやっとお店を確保。ノミニケーションにて関西Gopherの方々と交流を深めることができました!q@w@p

Go on Android、復習がてら自分で何か作ってみる時間が必要ですね。あと、今回のハンズオンを受けたことでkurokawaさんのQiitaの記事を読めるようになったので、野田さんのブログ記事を合わせれば、Go on Androidへの入り口に立つことができます。


主催者&講師の野田さん、参加者の皆様、ありがとうございました。
関西でもGoのイベントが増えていくと良いな〜。q@w@p

2015年1月11日日曜日

Go Conference 2014 autumn

今更ですが、やはり記録として残しておかなければと思い、書き記すことに。

昨年の11/30(日)に東京で開催された「Go Conference (GoCon) 2014 autumn」に参加して来ました。本記事は私の活動報告となっているため、GoConに関する内容につきましては他の方々のブログ記事などをご参照下さい。

One story:発表者枠


今回、無謀にも初参加にして自薦で発表者枠に申し込みました。

申し込んだ理由


Google+ コミュニティ「Golang JP」を知ってもらいたい!

現在、私はGolang JPにて管理者メンバーの一人として参加させて頂いております。私の投稿が目立っている状況にあり「コミュニティはみんなの場所。この状況は良くないよなぁ。」と感じつつ「もっと多くの方々に参加して頂き、投稿やコメントや+1をして頂いて、一緒に本コミュニティを盛り上げて行きたい!」という思いで活動しています。

GoConは日本で最も多くのGopher(Go使い)が集うイベントであり、ここで広報できれば効果も大きいはずだと踏まえて「Golang JPの番宣をしよう!」と決めました。

日本のGoコミュニティの活動を伝えたい!

今回の目玉は何と言ってもRob Pike先生の登壇でしょう。前の月に東京で開催された「Golang Cafe #50」へ参加した際、サプライズ企画のために同氏へメールをしたのですが、その中で「コミュニティの活動や熱意はGoチームのやりがいになります。」というメッセージを頂きました。

そんなRob Pike先生に知って頂ければ、何れはGoチームへも広報されて行くはずだと信じて「日本のGoコミュニティの活動を報告しよう!」と決めました。

各Goコミュニティの活動を知ってもらいたい!

同時に、参加者の方々に対しては、日本各地で活動している勉強会やコミュニティの存在や内容などを知って頂き、気に入ったものがあれば、そこに参加して一緒に盛り上げてもらえたら、というねらいがありました。

参加者メンバーを見てみると各Go勉強会の主催者の方々が数多く参加されていました。これだけの主催者の方々が一堂に会することも滅多にないので「主催者の方々を紹介させて頂こう!」と決めました。


参加できた動機


「生のRob Pike先生に会える一生に一度の機会かも!?」というのもありましたが(^^;)、先にGolang Cafe #50へ参加できていたことが大きかったです。

この時に、人生で初めての東京を経験できていたり、東京を中心としたGopherの方々に会えていたりしたことで、私自身が東京へ行きやすくなっていました。


発表の内容


GoCon管理者メンバーの一人である+Takuya Uedaさんがgihyo.jpに「Go Conference 2014 Autumnレポート」を寄稿しており、ありがたいことに私の発表内容も紹介されていました。


発表の成果


Golang JPの紹介をした時点の参加者数ですが、実は「555 (GoGoGo)」でした。発表が終わった後、新しく50名を超えるGopherの方々に参加して頂く事ができました。

また、活動が停滞気味だった勉強会やコミュニティにて「また活動&再開しようかな」といった前向きの反応を示されるメンバーの方々もいらっしゃいましたので、これをキッカケにぜひ再起動して頂けれたら嬉しいです。

振り返り


参加者のブログなどを見てみてると、私の発表内容はあまり紹介されていませんでした。私以外の発表者の方々も技術的な内容であったことを考えると、今、日本の多くのGopher達はGoの「技術的な側面」に興味を持っていることが改めてわかりました。

そんな中での「コミュニティの側面」の発表には物足りなさがあったかもしれませんが、今回はテーマが決まっていなかったこともあり「カンファレンス」という意味でも様々な議題があって良かったのでは?と思っています。

Another story:Twitter(?)枠


Go Conference 2013 autumn」からですが、毎回、管理者メンバーの方々に確認をとってトゥギャらせて頂いております。

  • トゥギャる:Twitter上でのツイートをTogetterというサービスにとりまとめること。

理由は、当日は管理者の方々は準備や運営でトゥギャる余裕などないので、少しでも何かお手伝いできたらと思ったからです。こちらは家でのんびりとハッシュタグ「#gocon」が付いた参加者の方々のツイートを眺めるだけなので...(^^;)

今回はGoConへ参加したため、会場での生トゥギャりとなりました。しかし、会場についてみると電源が確保できないことが判明(T_T) 午後からは発表が控えていたので、それまでに電源を切らす訳にはいかなかったのですが「まぁ、行けるところまで行こう」とパソコンを省エネ運用しながらトゥギャりを開始しました。

しばらくして、午前11時前にGDG四国のオーガナイザーの一人である+Yuko Oshimaさんから「トゥギャり作業を手伝いましょうか?」というお声掛けがあり、まさに「渡りに船」とばかりに協力をお願いしました。おかげ様で電源を切らすことなく発表まで行うことができました。

結局、発表終了後もOshimaさんにて最後までトゥギャって頂きましたm(__)m 文字の装飾なども付けて下さっていたので、今回は見栄えの良いトゥギャリとなっています。懇親会以降は再び私の方でトゥギャリました。


謝辞


  • +Takuya Uedaさん、連絡やアドバイス、感謝ありがとう。
  • +Yuko Oshimaさん、トゥギャリ作業、感謝ありがとう。
  • そして+Takanobu Haginoさん、監視員のお役目を含めて、今回も感謝ありがとう。

発表前日まで自分なりにつたない英語で発表練習をしたり、後日になってスライド資料の原本が消し飛んだり、今となっては良い思い出です。q@w@p