2019年8月31日土曜日

はじめてのGo言語教室

「はじめてのGo言語教室」は皆様駆動で開催されています。

気が付けば初開催から1年が経とうとしています。最近は少し広がりを見せつつあります。ということで、これまでの経緯?実績?まとめ?などを私なりに。

約1年前に主催者のやましたさんから「Goの初心者向け勉強会を開催したい」との相談を受け、何かお手伝いできればとGo入門ハンズオンのテキスト(基礎編)を作成し、GDG Shikokuの協力も得て、2018年9月8日(土)から香川県にて「香川Go言語勉強会」として2ヶ月に1回のペースで始まりました。


2019年4月6日(土)の「e-とぴあ未来博2019」でワークショップとして開催された際、中学生以上を対象としたこともあり、GDG ShikokuのTamさんの命名により「はじめてのGo言語教室」となりました。

[香川] 当日は中学生だけでなく小学生も参加されていました。


2019年8月、Twitter上で続け様に福岡のGo初心者の方々のツイートを目にしました。


福岡にはFukuoka.goがあります。2019年7月13日(土)には東京以外で初のGoCon福岡(私も発表で参加)を開催するなどGo力の高いコミュニティです。しかしながら、先程のツイートからGo力が高いがゆえにGo初心者が参加しづらくなっているのでは?とも感じました。

数日経ってもなぜか気掛かりが収まらなかったため、思い切ってFukuoka.goに「はじめてのGo言語教室」を福岡でも開催させて欲しい旨を打診したところ、興味を示して頂くことができ、2019年9月14日(土)に開催させて頂くことになりました。(いや、サブタイトルが...)


福岡はニーズがフィットしたようで、参加者が定員に達しては増枠を繰り返して25名になりましたが、チューターが会場提供者でもあるモノクロメガネさんと大谷さんのお二人でちょい厳しめの状況でした。そんな中、岡山からGolang Cafeでお世話になっているTakashi Yokoyamaさんがチューターとして参加を申し出てくださり、当日は万全のフォロー体制で挑めました。

会場のGMOペパボの福岡オフィスさんの部屋に入ると「ここで開催するのか」と少し緊張しました。プログラミング経験者が多かったため予想以上にサクサクと進み、基礎編だけでなく改造編までを一日で行いました。Fukuoka.goを知って頂くことができ、「自分に合った内容だった」「テキストもわかりやすかった」「会社でもGoを広めます」との感想を多く頂けました。

[福岡] 当日は20名もの方々が参加!

他県での開催ばかりで肝心の地元岡山でも開催しないとなぁとツイートしたところ、すぐにTakafumi Yoshidaさんが、続いてコナコナさんがサポートを申し出てくださりました。2019年8月23日(金)のGo 1.13 Release Party in Okayamaにて打ち合わせを行い、後日、会場提供者のMasaya Konishiさんも含めて、ついに2019年10月5日(土)に岡山でも開催させて頂くことになりました。


開催の一週間前まで申し込みが1,2名という状況でしたが、その後、初めての方、知り合いの方、Goを書かれている方、香川の主催者の方(?)、福岡から参加の方(!?)、など多くの方々に参加して頂けました。一人からでも全力で開催しますのでGo安心を!

[2019.9.9 追加]

GDG Shikokuのramusaraさんから、イベント参加者のしいのあやさんからGo勉強会の希望を頂いたので愛媛出張できませんか?との打診がありました。Sasaki先生やTamさんを交えて日程や会場の調整を行い、2019年11月9日(土)に愛媛にて開催させて頂くことになりました。


「はじめてのGo言語教室」は皆様駆動で開催されています。

講師の私だけでは開催できません。ありがたいことに毎回、皆様からお声掛けやサポートを頂けていることで開催できています。感謝ありがとう。引き続き、無理なく楽しくやって参ります!q@w@p

P.S. 微力ながら日本のGoコミュニティにも貢献できていると良いのですが。もし開催希望などありましたら活動できる範囲であれば出向こうと思いますのでお声掛けください。

2018年12月31日月曜日

2018年の振り返り

私が2018年に参加したITイベント活動を中心に振り返りをば。

立ち上げたもの


Flutter JP(Google+ Community)


2/3(土)のABCD香川の懇親会でGRINDHOUSEさんとお話しをして「Flutterを一緒に学んだり教えてあげられるように」と学習を始めたのが、私がFlutterを始めるキッカケでした。

その後「Flutterの日本語情報が少ない」と感じ、Flutterの日本語情報を収集・発信する場所としてGoogle+ Communityに「Flutter JP」を立ち上げました。


ほどなくしてRui Kowaseさんがconnpassに「Flutter JP」を立ち上げられ、当時は名前も同じだったこともあり、お互いに管理者をお願いしあったりしました。現在connpassの名称は「Flutter Japan User Group」となっています。


あと個人的にはTwitter上でFlutterの日本語情報をツイートする際にはハッシュタグ「#flutterjp」をつけるようにしました。皆様もよろしければ是非に。

GCPUG岡山


新しく「立ち上げたもの」ではありませんが「再起動したもの」として、こちらにて。

夏ごろにGCPUG福岡オーガナイザーの赤星さんから「GCPUG岡山を主催したい人がいるのですが」とのお声掛けを頂き、hayashikiさんを紹介してくださいました。やる気のある方にやって頂くのがイチバンなので即答でO.K.させて頂きました。さらにhayashikiさんからはほぼろさんを紹介して頂き、一度にお二人をGCPUG岡山のオーガナイザーにお迎えすることができました。

お二人とも東京の会社に所属しており、hayashikiさんは岡山にて、ほぼろさんは広島県の尾道にてフルリモートで働いており、GCPも仕事で使われているということで、これからのGCPUG岡山を引っ張って頂くにはピッタリの方々です!q@n@p

Okayama.go


11/25(日)のGoCon 2018 AutumnでGo挨拶させて頂いたモノクロメガネ研究員さんから、何とその二日後に主催されているFukuoka.goと岡山のGoコミュニティと何か一緒にGoのイベントをやりませんか?とお声掛けを頂きました。(めっちゃ嬉しかったです!q@w@p)

その時、岡山としてのGoコミュニティは存在しておらず「どうしようかなぁ」と思っていた矢先にFukuoka.goに「Fukuoka.go#13はOkayama.goと一緒にやりたい #9」というissueが立ったため「やっべ、Okayama.goなんてないぞ、作らなちゃ!」という流れで立ち上げました。(なので、名付け親はモノクロメガネ研究員さんですw)


以前「来年からGoのイベントをやりましょうよ!」とお声掛けを頂いていたのでhayashikiさんに、ちょうど仕事でGoを使い始めることになったということでほぼろさんに、別の場所でOkayama.goを立ち上げる話をした際に反応を示されたtaknb2nchさんにオーガナオザーとして参加して頂きました。

2019.01.14 Okayama.goのオーガナイザーですが、まずは私が責任を持って運営&開催をしていかなければならないのでは?ということになり、一旦、他の皆様には外れて頂くことになりました。

今後の活動については追々と。ひとつは岡山でのGo入門ハンズオンの開催を考えています。有志のコミュニティとして良い意味で「愛のままにわがままに」やって行きます!q@w@p

02/12(火)Okayama.go#1+Fukuoka.go

 Fukuoka.goさんと一緒に開催するGoのITイベントです。

主催したITイベント


GCPUG岡山


10/27(土)【岡山】GCPUG in Okayama #11

 hayashikiさんとほぼろさんをお迎えしての新体制にて、数年ぶりにスピーカーをお招きしたイベントを開催することができました。

Flutter JUG


06/23(土)Flutter Meetup Osaka #1

 大阪で仕事をされているGRINDHOUSEさんとHisako Isakaさんと一緒にFlutter入門ハンズオンを開催しました。

12/09(日)Flutter 1.0 Release Party in Okayama

 岡山でもFlutterイベントを開催したいと思っていましたが、12/4にFlutter 1.0がメジャーバージョンリリースされたので、お祝いさせて頂く形で開催しました。

Golang Cafe


01/28(日)Golang Cafe #81
02/18(日)Golang Cafe #82

 GDG中国のTakashi Yokoyamaさんが主催されている岡山のGoのITイベントです。業務都合でTakashi Yokoyamaさんのイベント開催が難しくなっているため、私とtaknb2nchさんにイベント開催の権限が付与されて代理で開催させて頂いておりますが、今年は年初にしか開催できませんでした。

 来年はTakashi Yokoyamaさんもイベント開催を再開されるそうなので、私はその合間を縫って開催します。

Go Release Party


02/20(火)Go 1.10 Release Party in Okayama
08/25(土)Go 1.11 Release Party in Okayama

 Goのリリースサイクルは2月と8月ですが、たまに公式から世界各地でのパーティー開催が呼びかけられるGoのITイベントです。

 日本では主に東京、静岡、岡山で開催されており、今年も岡山にて開催させて頂きました。

お手伝いしたITイベント


Python Boot Camp


11/23(金)Python Boot Camp in 岡山

 岡山Python勉強会のやまやまさんが主催されたPyConJPが日本全国で開催中のPythonのITイベントです。やまやまさんからお声掛けを頂き、ティーチングアシスタントとしてお手伝いさせて頂きました。

 昔業務でPythonを使っていたこともあり、Pythonへの恩返しができてよかったです。

Goならわかるシステムプログラミング読書会


02/10(土)Goならわかるシステムプログラミング読書会 #1
03/10(土)Goならわかるシステムプログラミング読書会 #2
06/16(土)Goならわかるシステムプログラミング読書会 #3
07/21(土)Goならわかるシステムプログラミング読書会 #4
08/25(土)Goならわかるシステムプログラミング読書会 #5

 岡山システムプログラミング勉強会のMasaya Konishiさんが主催者の岡山のシステムプログラミングのIT勉強会です。Masaya KonishiさんもGoを知ってみたいということで、Goについては私がフォローさせて頂く形で、まずは書籍「Goならわかるシステムプログラミング」の読み進め会として今年からスタートしています。

香川Go言語勉強会


09/08(土)香川Go言語勉強会
11/17(土)香川Go言語勉強会
01/12(土)香川Go言語勉強会 #3

 やましたさんが主催者の香川のGoのITイベントです。「香川でGoの勉強会を継続的に開催したい」とのお声掛けを頂き、現在はGo入門ハンズオンの講師をさせて頂いております。

 少人数ながら毎回違う方が参加してくださっているのが不思議でもあり嬉しくもあります。

参加したITイベント


大都会岡山


05/12(土)オープンセミナー2018@岡山
12/22(土)合同勉強会 in 大都会岡山 -2018 Winter-

 毎年5月と12月に開催されている岡山で100名以上が集まるITイベントです。毎回様々な人やテーマのお話しを聞くことができます。今年は9月に合同勉強会 Summerが初めて開催されましたが私は不参加でした。

クラウド


06/09(土)Docker Workshop in Hiroshima #01
06/09(土)GCPUG Hiroshima #4 - GKE / k8s -

 広島で同日にDockerとGKEのITイベントが開催されたため、効率良く(?)参加できました。

Java


05/11(金)Oracle Dev Tour Japan in Okayama

 岡山Javaユーザ会のTakafumi Yoshidaさんが主催されたNightHackingのITイベントです。仕事ではJavaでWebシステムを開発をしているため、中の人から直接JDKリリースモデル変更のお話しを聞くことができてよかったです。また米国Javaユーザーの方々も登壇されていたので、英語学習がてらお話しをリスニングしたり質問をスピーキングしたりさせて頂きました。

Flutter


05/31(木)Flutter Meetup Tokyo #2
07/19(木)Flutter Meetup Tokyo #3

 Flutter Japan User GroupのRui Kowaseさんを中心に開催されている東京のFlutterのITイベントです。「ライブ配信視聴枠」のおかげで、岡山にいながらFlutterに対する東京の熱量や情報をリアルタイムに体感することができています。

11/03(土)DevFest Shikoku 2018

 今年のDevFestは各地でFlutterが扱われており、四国は徳島県でハンズオンが開催されました。

Go Conference


04/15(日)Go Conference 2018 Spring
11/25(日)Go Conference 2018 Autumn

 GoCon主催者のtenntennさんを中心に年1〜2回、東京で開催されている日本最大のGoのITイベントです。今年から2トラック制になったり英語での募集や発表がなされたりと、アジアや世界に向けてのイベントとして進化を遂げようとしています。

 今年もtaknb2nchさんのおかげで無事に参加させて頂くことができました。

その他のITイベント


02/03(土)Android Bazaar&Conference, Diverse 2018 UDON県

 日本Androidの会香川支部のcovaさんが主催されたAndroid Bazaar and Conferenceの地方版のITイベントです。今回の香川は西日本初開催でした。

 AndroidイベントということでGoモバイルでLT発表させて頂きました。

04/14(土)GAE (Go/Python) もくもく勉強会 in 横浜タネマキ vol.52

 FreeGufo社のTetsuya Onukiさんが主催者の横浜のGAEのITイベントです。4/15(日)のGoCon 2018 Springに参加するために前日入りした際に初参加させて頂きました。

09/24(月)GDG Cafe #31
11/18(日)GDG Cafe #33

 GDG中国のTakashi Yokoyamaさんが主催者の岡山のGoogle技術のITイベントです。書籍「TensorFlow活用ガイド」の読み進めをされていましたが、私は書籍を所持しておらず、かつ、諸用による参加だったためTensorFlow for Goのインストールなどをしていました(^^;)

さいごに


今年(2018年)から来年(2019年)にかけては変革の年だと言われています。引き続きガンガンやって行きますので、よろしくお願い致します。2018年も、感謝ありがとう!m(_ _)m

2017年12月24日日曜日

合同勉強会 in 大都会岡山 2017 Winter

2017年12月23日(土)に岡山で開催された「合同勉強会 in 大都会岡山 2017 Winter」に参加してきました。

合同勉強会 in 大都会岡山」は岡山県近辺のIT勉強会コミュニティによる合同勉強会で2012年から毎年開催されており、私も2013年から参加したりGoogle Cloud PlatformやGoで発表をさせて頂いております。

今年、私はGoに関する主に3つのオープンソースソフトウェア(OSS)のプロジェクトにタイプミスの指摘など小さいながらコントリビュートさせて頂きました。


その際、各プロジェクトでのコントリビュートの流れの違いを知ることができました。

  • [Mackerel] GitHubパターン
  • [Azure] 制約付きGitHubパターン
  • [Go] GitHub以外のパターン

これらの情報を含めてOSSへコントリビュートする敷居を少しでも下げられたらと思い、私のコミット例を紹介しつつ、その流れを「GoでOSSにコントリビュートした話」として発表させて頂きました。


present:https://talks.godoc.org/github.com/qt-luigi/talks/2017/go-oss-contribute.slide#1

発表内容自体は入門的でありよくある内容かもしれませんが、自分のやったことを自分の言葉で伝えること&伝えられることが大事かなぁと。何人かの方には伝わったようなので、ひと安心。


以下、言い訳をばm(__)m

夜の忘年会議を当日の朝にキャンセル:

 一週間前から右腕の肩、肘、手首に痛みがあり、この日も起きた時点で痛みがひき切れていなかったため、泣く泣くキャンセルに...(T_T) 諸々フォローありがとうございます。 > @razonさん

発表時に擬音を入れる予定はなかった:

 発表練習時にはきちんと言葉で説明していたのですが、おっさん?会場の雰囲気?地元?なのか、何故か急に&勝手に擬音が...(^^;) お耳を汚してしまっていましたら、すみません。 > 皆様

つい「ゴーコン」と言ってしまった:

 日本最大のGoイベント「Go Conference」をGo界隈では"GoCon"と略すのですが、一般の方に向けて、つい「ゴーコンに行った時に」と...(^^;) "合コン"ではなく"GoCon"です。 > 皆様

大都会岡山IT勉強会界隈の皆様(仲間)のお姿を見たり&お話ししたり、様々な種類の発表を数多く聞けたりと、今回も楽しまさせて頂きました。主催&スタッフの皆様、県内&県外を含めての発表者&参加者の皆様、感謝ありがとう!q@w@p

2017年11月18日土曜日

DevFest Shikoku 2017

2017年11月18日(土)に徳島で開催された「DevFest Shikoku 2017」に参加してきました。

会場の徳島大学共通講義棟(銀杏並木が綺麗でした!)

DevFestはGoogle Developer Group(GDG)が開催するデベロッパー向けイベントであり、2017年の日本では東京、京都、九州、石巻、そして、四国で開催されています。

Google技術ならO.K.ということで、入門者向けにGo言語を紹介する発表をさせて頂きました。


present:https://talks.godoc.org/github.com/qt-luigi/talks/2017/introduction-of-go-2017.slide#1

現時点でのGoの外堀について一通り網羅してお話しできたかと思っており、発表後にGoに興味を持たれた方もいらっしゃったようなので、一先ず役目は果たせたかなと安堵しております。

参加者は募集定員ほぼ一杯、Android(Kotlin、動的クラスロード、Haskell)やTensorFlowなど多種多彩な発表内容、終了後には参加者全員で懇親会&グッズ争奪じゃんけん大会など、盛り上がりを見せた一日でした!q@w@p

開始直後の会場風景(このあと席は埋まりました!)

主催されたGDG Shikoku&GCPUG Tokushimaのスタッフの皆様、会場提供の徳島大学様、懇親会料理提供のsansan様、東京からの参加を含めた発表者の皆様、当日参加して頂いた皆様(発表時は咳き込みが多くてm(__)m)、そして、移動を供にさせて頂いたtamさん&ramusaraさん、感謝ありがとう!q@w@p

P.S. お土産ありがとう&美味しかったです! > yukotan

2017年11月12日日曜日

Go Conference 2017 Autumn

2017年11月5日(日)に東京で開催された「Go Conference 2017 Autumn」に参加してきました。



岡山からGo&GCP仲間のtaknb2nchさんに同行させて頂いての東京ツアー(2日目)です。

GoConの開催日が近づいたとある日、何とアノmattnさんがパネラーとしてGoConに初参加されるという告知が!パネルディスカッションでの質問が募集されていたので「ねほりはほり聞かねば!」と募集ページで質問を記入していたところ、そこに「パネラー募集」の項目が...恥のかき捨てならお手のモノ(!?) mattnさんとお話しできるチャンスがあるならとダメ元で申し込んだところ、後日、採用との連絡が...q@w@p

いざ当日。今回は日曜日開催&受付は9:00からで本編は9:30スタートといつもより早めだったため、前日入りして余裕を持って会場入りすることができました。(taknb2nchさんによるスムーズな計画&誘導の賜物であることは言うまでもGoざいませんm(__)m)

会場建物の六本木ヒルズ森タワーのスターバックスで朝食をとっているとスタッフ枠で参加のgregさんに遭遇。サンドイッチをダッシュで食べ終えて一緒にスタッフ集合時間の8:50に受付へ向かうとスタッフ枠のmakotanoさんと数名の参加者の姿が。


受付の名簿に自分の名前がなくてアタフタしつつ一先ず受け付けて頂けたところで、スタッフさんから「こちらがmattnさんとkaoriyaさんです」と紹介されて振り向くとそこにお二人の姿が。

いきなりお会いすることになり、気の利いたオッサンギャグの一つも言えず、普通にご挨拶をさせて頂きました。お二人からすると見ず知らずのオッサンにいきなり挨拶されて「誰?」だったでしょうが(^^;) こちらは内心「おぉ〜!」とテンションが上がっていました(^^;) その後ymotongpooさんがいらしてお二人と挨拶をされていましたが、こちらも普通でした(そりゃそうだ)。

そんな皆様と共に会場へ。主催者のtenntennさんや会場スタッフのvvakameさんにご挨拶。今回は森タワー18Fのメルカリさん。部屋も綺麗で外の景色もバッチリで「こんな環境でGoやGCPで仕事できてるなんていいな〜」と田舎者らしく感心しながらスマホで写真を撮りまくり、ステッカーを頂いたり、会場入りされた方々と会話をしつつ開始を待ちました。



いざ開始。のっけからパネルディスカッションということでパネラーの方々は壇上へ。司会者はymotompooさん、パネラーはmattnさん、メルカリのcubicdaiyaさん、kaoriyaさん、すみません私、という蒼々たるメンバーにて1時間ほど開催され、事前に募集していたmattnさんへの質問の中からymotompooさんがチョイスしたものにパネラーの方がmattnさんから順に回答する形式で進行し、会場の方からの質問を受け付けて、パネラーの方々の感想で締められました。

パネラーの皆様ですが、mattnさんは今回のメインパネラーであり言わずもがなGo界隈のみならず有名なオッサンGopher(^^;)であり、cubicdaiyaさんはメルカリのSREさんで当初からプッシュ配信プロキシー「gaurun」を開発されているバリバリGopherであり、kaoriyaさんはWindows版Vimバイナリーを提供されつつ裏では(?)早くからGoを触られているスリーエスGopherであり、という豪華な顔ぶれ。

パネラーのメンバー構成は壇上に上がった時に初めて知り、上級Gopherの皆様を前にして「やっべ場違い」と感じつつ、私の役割はそのまま「Goは仕事で使えていなくて自主的に使っている初〜中級レベルGopher」の目線+「技術だけでなくGoコミュニティから」の目線、で立ち振る舞うことで他のパネラーの方々と差別化を図れるだろうと挑みました。

今回パネラー名はmattnさんしか公開されていなかったことや長年のGoCon参加経験(?)からすると、自分の役割がマッチしないことは予測できていたのですが、自分ではこれしかできず、後日、参加者の方々の感想ブログを拝見させて頂くと、私の言葉はほとんど拾われておらず、わかっていたのですがやはり「ショボーン」な気持ちになりました(※1)。個人的には、一人にでも何かしら届けば登壇した意味があったと思っていますし、GoCon後にGolang JP(Google+ Comminuty)の参加メンバーが少し増えたのを見ていると、自分なりの何らかの役割は果たせたかなぁ、と。

会場からの質問者は、遅刻してきた(^^;) deeeetさん(スポンサーセッションで発表)、2Dゲームライブラリー「Ebiten」開発者のhajimehoshiさん(今思えば存じ上げなかったと言えどもご存知だったことであろうことを堂々と回答してしまい恐縮)でした。

その後、席に戻ってからはGoCon半公認(?)のトゥギャり担当としてTogetterまとめ「Go Conference 2017 Autumn」をこれまた半リアルタイムで更新しつつ(今回も実物のzcheeさんにお会いできなかった&次回こそ!)、各セッションを拝聴させて頂きました。

今回のゲストスピーカーは前日のVimConf 2017から二連チャン&Vim用Goプラグイン「vim-go」の開発者であるFatih Arslan(ファティ)さんでした。

[今回のマイベストショット]
左:会場の風景、右:fatihさんとdeeeetさんのどたま

休憩時間には、会場スタッフのsinmetalさん(次回また落ち着いてお話ししましょう!)やこれまた前日のVimConf 2017から二連チャンでお疲れ気味だったhaya14busaさんにご挨拶したり、セッション登壇者のお一人で目の前に座られていたniconegotoさんに初めてお声掛けしたりできました。(fkmさんもお見かけしたのですがお声掛けまではできず)

最後に、Google社謹製のGopherTシャツ争奪じゃんけん大会が盛大に行われ、ゲットされた皆様はホクホク顔で会場を後にされていました。

以上、自分目線の内容でしか書けませんでしたが、まぁ、思い出の記録として。

GoCon主催&スタッフの皆様(パネラーに採用して頂いて感謝!)、会場提供のメルカリ&ソウゾウ社の皆様(今年のGCP Gopherのるつぼっぷりはヤバイっす&パねぇっす)、初対面ながら寛大に受け止めて頂いたパネラーの皆様(初対面とは思えず馴れ馴れし過ぎてすみません:ミスター&karoriyaさん)、参加されたGopherの皆様(目や耳を汚したならすみません&少しでもお役に立てたなら)、そして、今回も無事に連れて来てくださったツアーコンダクター(?)のtaknb2nchさん、感謝ありがとう!q@w@p


P.S.順番が崩れるが今回の東京ツアーの1日目と3日目も調整がついたら書き起こしたいところ。

※1 [2017.11.14] 参加者の方々の感想ブログを追加。拾って頂けた方も。感謝ありがとう!

2017年3月22日水曜日

書籍「Goプログラミング実践入門」

2017年3月に発売された「Goプログラミング実践入門」をざっくりと一読しました。

本書は2016年7月に発刊された洋書「Go Web Programming」の翻訳書であり、Goの標準パッケージを中心にWebアプリケーションの仕組みや作り方を学習できる内容となっています。

Goを使ったことがある方が対象となっているため、Goが初めてという方は公式チュートリアル「A Tour of Go」で文法の基礎を学んだり、Webアプリが初めてという方は書籍「Go言語入門」を一読するなどしてみてください。

本書で使用されている主なGo標準パッケージは次の通りです。

  • Webサーバー:net/http
  • テンプレート:html/template
  • テータ形式:encoding/xml, encoding/json
  • データ保存:encoding/gob, encoding/csv, database/sql
  • テスト:testing, net/http/httptest
  • ファイル:os, io/ioutil
  • 画像:image

読み進めると「物事の仕組みを理解した上で作業を行うこと」がコンセプトであることがわかります。前半のWebアプリケーションの解説はまさにそれにあたり、知識が曖昧な方などはココでしっかりと基礎固めを行なうことをオススメします。

各章では内容に沿ったサードパーティのパッケージも紹介&使用されていますし、Goの特徴である並列処理についても解説だけではなく画像処理の実例で書かれています。また、各種クラウド環境へのデプロイについても書かれており、

 Webサーバー処理、HTMLテンプレート、データベース接続、
 データ形式(XML、JSON)、ファイル操作(テキスト、画像)、
 並列処理、テスト、デプロイ

と、GoでHTTPサーバー&Webアプリを開発するための一通りの要素が詰め込まれています。

ちなみに、本書内で使用されるデータベースはPostgreSQL(GAEではMySQL)です。

ざっくり読みですが、個人的には、net/httpパッケージの仕組みを学べたり、触ったことがなかったencoding/gobパッケージについて知ることができました。

ひとまずの読書感想文は書けましたので、2周目はもう少し落ち着いてコードを試したり内容を読み進めて行こうと思います。

2017年1月8日日曜日

campoy/go-web-workshopを日本語に翻訳しました

記念というか記録というか、そんな意味合いで書き残します。

2016年10月7日にFrancesc Campoy FloresさんがGitHubに公開したcampoy/go-web-workshopリポジトリーを目にしました。

francescさんはGoogle社でGoogle Cloud PlatformとGoに関わっている方で、go-web-workshopはGo言語でGoogle App EngineのWebアプリケーションを構築するワークショップの資料です。

その頃はGAE/Goをやり直そうと思っていた時期でしたので興味を持って読み始めました。資料は英語なのですが難しい単語が使われていなかったので読みやすかったです。そこで英語の学習も兼ねてこの資料を日本語に翻訳する事にしました。

自分が知っている内容ということもあり補助役でGoogle翻訳を使いつつsection03ぐらいまで自力で翻訳を進めていたのですが、11月11日になってGoogle翻訳の翻訳結果が今までとは比べものにならないほど読みやすい文章に変換されました。何事かと思っていると翻訳システムがフレーズベースのものからGoogle Neural Machine Translation (GNMT)という機械学習ベースのものに切り替わったとのことでした。翻訳結果が今までと全く異なるため同じ口調(?)で翻訳し続けて行くことが難しくなり、また、あまりにも読みやすかったため、これまで翻訳してきたものは破棄してGNMT版のGoogle翻訳の翻訳結果をベースに再作成して行くことにしました。

翻訳しては見直しの作業を日々少しずつ進めて12月31日にひとまず翻訳作業が終了しました。2017年1月1日から全体の見直しを始めて言い回しや単語を合わせたり翻訳結果や文章のおかしい部分を修正したりしていきました。1月2日には翻訳中に見つけたタイポ集(?)を本家へpull requestしました。

ある程度の見通しが立ったので1月4月に意を決してTwitterにて著者の@francescさんに「あなたのgo-web-workshopを日本語に翻訳しています。出来上がりを自分のGitHubで公開したいのですがよろしいですか?」とツイートし、ドキドキしながら待つこと数分...オリジナルへの参照を保持することを条件に許可を得ることができました!文章でハッキリとO.K.と言われた訳ではなく「いいね」で回答されたので少々自信がありませんが...(^^;) フォロー外から拙い英語で突然の問い合わせだったにも関わらず反応して頂いて許可まで頂けれたことは大変嬉しかったです。

そして1月7日、現時点までのcampoy/go-web-workshopのpull requestの内容を反映させた後、日本語訳としてqt-luigi/go-web-workshop-jpを自分のGitHubに公開させて頂きました。その旨を再度francescさんに報告したところ再び「いいね」を頂けられたのでおそらく大丈夫でしょう(^^;)


本資料ですが、個人のGAE/Goの学習であったりハンズオン形式の勉強会の資料などで活用して頂けれたらなぁと思っております。個人的には自分が主催しているGCPUG岡山にてGAE/Goの入門ハンズオンを開催して使いたいところです。

恥ずかしながら先月まで自分の意思でGitHubを使ったことがありませんでした。先月、自分が発表する勉強会にて主催者に発表内容を伝えるために「初めてのpull request」を行い、今回、下調べや試行錯誤をしながら無事に「初めてのpush」を行うことができました。GitHubと同じようにGitも使えていない状態だったので、これを機にどちらも使えられるようにしていきたいです。

今回の作業にて、個人的には次の成果を得ることができました。

  • GAE/GoによるWebアプリケーション構築の流れ(入門レベル)
  • 英語学習(結果として多読)
  • GitHubとGitを使ったpull requestおよびpushの方法(初回なのであやふや)

2016年の自分への宿題を一先ず終わらせることができました。2017年も頑張って行きましょう。Happy Hacking!