Photo by Derek Gavey
どうもこんにちは。はじめましてですね。
HAROiDでキワモノエンジニア()として、2017/01から働いているわんこ。といいます。今後ともよろしくお願いいたします。
と、いうことでタイトルにあるテーマで Shinjuku.go と Umeda.go というイベントの共同開催のイベントで発表してきました。
発表はBlog書くまでが発表という、祖父の親友の息子さんがおっしゃっておりましたので、熱冷めぬうちに書き起こしたいと思います。
今回のイベントでは、会場提供頂いた 株式会社 Aiming さんの東京オフィスと、大阪オフィスを Google Hangoutで中継しながらのイベントとなりました。 Aimingさん、会場提供ありがとうございました。
リモートでの中継発表ってことで関西人の筆者は、レイテンシによるリアクションがどの程度フィードバックされるのかが一番の心配でしたが普段どおり発表もでき、質疑応答も対応出来ました。運営の方の努力の賜物ですね。お疲れ様でした。
それはさておき、本記事では筆者の発表内容の補足紹介と、発表されたみなさんの内容を筆者なりにサマリレポートとしてお伝えしたいと思います。
犬でもできる🐶擬似生体SSH認証
golang.org/x/crypto/ssh パッケージを利用して、SSHClientを作ったよ。というお話をしました。
それだけでは面白くないので、手に埋め込んでいるRFIDタグを使って認証してみよう!ってことでカードリーダーでの疑似生体認証のデモを行いました。
右手にRSA秘密鍵、左手にその秘密鍵のパスフレーズを事前に書き込んでおきました。 これなら、秘密鍵の入っていないマシンでも気軽に自分のサーバーにログインできますね!
実際の様子はこちらです
デモの動画撮りました。
— わんこ。 (@voidofglans) 2017年4月13日
撮影 @tenntenn w #shinjukugo pic.twitter.com/s7PwfT0Q1B
こんなネタっぽい発表をさせていただいたのですが、他の発表者の皆様のテーマはとても興味深く、勉強になりましたので簡単にご紹介させていただきます。
Go でリアルタイム通信ゲームサーバーを作っている話(仮) @shiwano
Rails+go でWebSocketを使ったリアルタイム通信サーバー構築のお話でした。(ごめんなさい。資料が見つかりませんでした。見つかったら掲載します
ClientはUnityで、個人制作の潜水艦バトルゲームでのサーバーを開発されているそうです。 ライブコーディングで自爆コマンドを実装するところを見せて頂きました。個人的に気になったのは @shiwano さんが開発、公開されている typhen というツールで、TypeScriptで記述されたコードから、他言語のソースコードや、ドキュメントなどを自動生成してくれるものです。 特に言語などの制約はなく、テンプレートを自身で記述して出力してくれるものです。 ServerとClientが別の言語を利用している際にはとても便利ですね。
もう、単純なコードは我々が記述する時代ではなく、 go generate やこういったツールを使っていくのが当たり前になってきましたね。
goパッケージで型情報を用いたソースコード検索を実現する @ tenntenn
Go Conferenceなどを主催されている @tenntenn さんの発表でした。
ASTを使った静的解析で、コードの品質を担保しよう!というお話でした。 筆者も何度かASTを使った解析を実装してみたことはありますが、 go/ast パッケージは本当によく考えられており、初めてでも扱いやすかったです。 go を使って、go のコードの goらしさを担保する。とても go愛 の溢れた素晴らしい内容でした。
途中でライブコーディングされており、順を追って解説されていたので使い方がすんなり入ってきました。まだまだ筆者はASTパッケージは使いこなせていないので、自力で頑張っているところをどんどん楽して行きたいと思いました。
また goパッケージには go fmt や go lint などの一般的なツールでも利用されているものがたくさんあります。時間がある時に眺めてみるのもいいのではないでしょうか。
QTクッキング @LuckLaw00
魔界(C++)では超有名なGUIフレームワークQt を goでラップしたパッケージでの実装例のお話でした。
Qtは知ってはいたものの、魔界に踏み込む勇気がなく避けて通っていたのですが、goでかけるとなると話は別ですね!(C++erの方ごめんなさい。
発表ではSlackBotをProxyのようにして匿名投稿できるGUIアプリケーションが紹介されていました。悪用は厳禁とのお話でしたが、根暗でいたずら好きの筆者には明るい使い方が思いつきませんでしたが、楽しいアプリケーションですね!
goの強みでもあるクロスコンパイルにもかなり対応されており、Win,Mac,LinuxはもちろんiOSやAndroid、RaspberryPiにまで対応されているのは素晴らしいですね。
今までgoで作っていたCUIツールをエンジニア以外の方に使っていただいたりする際にとても便利だな。と思いました。
まだまだ凝ったUIを作るのは大変そうですが、社内ツールなどに利用して運用改善や見える化などに活用していくと幸せになれそうです!
ore ore awesome-go @akineko
便利そうなライブラリを探すのが趣味という @akineko さんの使ってみた(一部未使用の為妄想もあり)感想や評価を交えたおすすめライブラリのお話でした。
有名なライブラリやおぉ!?となるようなマニアックなライブラリまでご紹介いただきました。さすがライブラリ探しが趣味なだけはある。と納得の内容でした。
個人的にはコールグラフを見れる go-callvis がアツかったですね。
筆者はライブラリを探すのが苦手なので、こういった形で実用例と一緒にご紹介いただくととても助かります。 みなさんも是非オススメパッケージ等あれば教えてください。
libcomposeを使ってテスト環境構築を自動化 @hatajoe
http://go-talks.appspot.com/github.com/hatajoe/kug2/20170413/index.slide#1
harborを使った環境の自動構築についてのお話でした。 Dockerとlibcomposeを使って、超絶簡単にテスト環境や、レビュー環境をさくっと作ってしまうというものです。
やはりDockerとgoの相性は良さそうですね。 こういった形でレビュー環境が出来れば、コードレビュー自体に集中できる時間が増え、レビュアーの負担も減ってmergeされていないプルリクがたまってしまうということも減るかもしれません。
普段からレビュワーのコードレビュー負荷に悩んでいるという @hatajoe さんらしい課題解決だな。と思いました。
今回のイベントでは殆どのみなさんがデモやライブコーディングをされていたので、会場も盛り上がり時折歓声があがっていました。
事前に拠点中継であること、デモをする場合は制約や注意事項が多い点などを知らされていたにもかかわらずチャレンジャーが多かったですw(筆者も含め
募集(重要)
現在HAROiDでは埋め込み系エンジニアを始め、色とりどり個性あふるるエンジニアが毎日高負荷と戦っております。
一緒にTVとインターネットを使って面白い!と思えることを作っていけるエンジニアさんを常に募集しております。
https://www.wantedly.com/projects/32988
もちろんその他職種も募集中です!
https://www.wantedly.com/companies/company_952227
最後に
運営のみなさま、発表者のみなさま、会場提供頂いたAiming様、ご参加いただいたみなさま、ありがとうございました。
また、何か埋め込みでも、goでも、高負荷についてのお話の依頼等ありましたら、お気軽にお声がけくださいませ。