Go Conference 2022 Spring 登壇します

「Motto Go Forward Goを支える文化とコミュニティ 〜なぜ我々はコミュニティにコントリビュートするのか?〜」というタイトルでプロポーザルを出したら採択されました。

テックな内容ではなくコミュニティ運営に主体をおいた発表する予定です。

今年はマネーフォワードのテックブログばっかり書いてた

今年はブログの更新があまりできていない。 理由としては会社のテックブログへの投稿が多かった&技術広報的な取り組みはnoteに書く…という決めを入れていたのでそうなった。

PR記事なんかも含めるとそこそこの量を書いている。 なお、これ以外にも社内ドキュメントにいろいろ情報整理するために書いていたので実際の文字数は以下であげたブログ + 10倍くらいある。

会社で書いたブログの一覧

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

moneyforward.com

note.com

note.com

note.com

note.com

note.com

感想

こうして年間でふりかえると毎月なにかしら発信してたなーと思う。 ただ会社での発信が多くなりすぎて個人側の発信が減ってしまったのが個人的には気になっており、このあたりを来年は改善したい…というふりかえり記事でした。

雑談

最近、以下の2つのYouTubeをよくみている。 あまり動画コンテンツを見続けるのが得意でないのだけど、この2つはずっと1年間通してみれている、とても楽しい。

www.youtube.com

www.youtube.com

FREENANCE×はてなブログ 特別お題キャンペーン #フリーにはたらく

FREENANCE×はてなブログ 特別お題キャンペーン #フリーにはたらく
by GMOクリエイターズネットワーク株式会社「FREENANCE(フリーナンス)」

Kyoto.goでgolang/goのIssueやproposalを眺める会をやったら言語仕様や提案している背景が理解できたという話

TL;DR

  • 自分が主催するKyoto.goのイベントで golang/go のIssueを読み漁る会に参加した
  • 割とぶっつけ本番でやったが意外といい企画だった
  • よいイベントなので継続してやりたいと言いう思いと誰にとってもいい企画だったのでもっと周知したいなと思った。

kyotogo.connpass.com

今回の企画はujiさんプレゼンツだった。 元々はGoCon運営もあるし、毎月継続しているけど10月難しそうだなーというところから 10月は忙しくて開催できないかも〜という話やイベントの立て方が定型化してきていることを議題に上げました。 定型化していることに大きな課題感を感じたというよりはたまに味付けを変える変化をつけて、いつもと違うメンバーが参加しやすいイベントを目指したいね…という話しをメインでしてました。

あとはアンケートをそういえば取れてないから取りたい、Kyoto.rbでは新しく参加したメンバーがブログを書いてくれていた、Umeda.goみてると我々の運営メンバーは少ないのでは?…という話をしていました。 実際にKyoto.rbのるりま読書会で書いてもらったブログは↓

fuga-ch85.hatenablog.com

詳しい内容を知りたいかたは議事録を公開しているのでこちらを読んでください。

scrapbox.io

当初、イベント企画していたときはOSSにコミットできるといいよね〜という夢の話しをしてました。 会が始まり、まず読みたいIssueを探そうという話になったのでDiscordのスレ機能を使って気になったIssueを収集しよう!というチャレンジをしました。 その際、Issueの探し方もスレに書いてもらうようにしました。「 label: NeedsFix から探している」「 label:Proposal が面白そう」「NeedsFixが多いから label:help wanted みてみる」という個々人で別々の動きが生まれて面白かったです。

Issueのうち、これが気になる!というものが見つかるとスレにURLを貼る方針で30分 + 10分ほど時間を取りました。 時間後はどういう点が気になって、そのIssueを選んだのか?を軽く説明してもらい、絵文字リアクションで投票の多いものからみていく…ということをしてみました。

気になったIssueをみていると次のような会話が生まれました

  • 提案内容で挙げられている実装で課題そのものは対応できそうだが、セキュリティ要件が含まれるので迂闊に実装するのが不安
  • 普通にこれ直せばコントリビュートいけそう。日曜のお供にどうぞ。
  • 初めてGoのリポジトリにPR作ったとき、GitHubで完結すると思っていたものがGerritで議論されたりしていて驚いた
  • errors.As() のこの挙動は知らなかった。普通に罠っぽいので直ってほしい→直されてる…どういう変更をしたんだろう?→変更されたPRのコード眺める
  • Proposalのラベル面白い。error-handlingのラベルも面白い。
  • Rejectされているけど then keywordの提案は正直旨味がないし、いらない。
  • いまのままだと難しいのでもうひと工夫ほしいけど check keywordが欲しくなる理由はわかる。
  • chaining method や pipeline 演算子みたいな機能が欲しい気持ちはわかる。でもエラーの処理が難しすぎる。いまの提案のままだと難しい。

などなどの会話が生まれて非常に楽しい1時間半になりました。 その後も30分ほど居酒屋トークをおこない、あーでもないこーでもない、この場合はこうしたい、言語仕様にエラーの文脈を入れると途端に難易度が跳ね上がる、Rejectされた label: error-handling をみるとやりたいことは一緒だけどちょっとGoにはあわないかもね…とGo言語コミュニティらしい会話が生まれて非常に楽しめました。 運営者目線でこのイベントを振り返っても初心者から上級者まで楽しめる企画だなと感じることができ、今後も定期的に開催したいねという元々のマンネリ化してるかも?という課題を克服することができました。 また運営側がなにも用意する必要なく、参加者も事前になにかしておかなければいけないということがなく非常に低コストでイベントを開催できる割に学びを得ることができる点が魅力に感じました。

↓開催後の参加メンバーの感想。

運営者の1メンバーなので少しポジショントークな感じもして、純粋な意味での参加レポートという感じではないのですが、他のコミュニティでも応用ができそうな企画案だったことと先日イベントに参加したらレポート書いてね!という話しをしたのでとりあえず雑に書いてしまおうと考えてこの記事を書いています。 Kyoto.goではGoに関係する全てのひとが楽しめるコミュニティを目指しています。 もし、こういうことがしてみたいんだけど?や運営のボランティアしてもいいよ!というかたがいたらGophers Slackの #kyoto チャンネルに投稿いただければと思います。

最後に告知です。 弊社マネーフォワードの関西拠点でミートアップをおこないます! ぼくは登壇しないのですが、関西拠点で働くメンバーが参加しています。 「カジュアル面談するほどではないけど話だけ聞いてみたい」や「マネフォって関西拠点あったんだ?」というかた向けのイベントになっています。 関西で働くことに興味がある、マネフォってどんな会社なの?ただのミートアップと何が違うの?と思われたかたは是非ご参加してメンバーに質問してみてください! 少しでもぼくたちマネーフォワード、その中でも関西拠点で働くメンバーや拠点のことに興味を持ってもらえれば嬉しいです。

moneyforward.connpass.com

テックコミュニティーの運営としてお願いしたいこととCfPの応募に関する告知

来週遅めの夏休みを取る予定なので積ん読になっていたプログラミングElixirを読もうと考えているluccafortです。

みなさんはGoConというテックカンファレンスをご存知でしょうか?

次回GoCon 2021 Autumnはぼくが運営するご当地コミュニティであるKyoto.goとfreeeさんで働くhatajoeさんたちが運営するUmeda.goの共同運営で諸々進行をしています。 京都と大阪という2拠点のコミュニティによってオール関西なメンバーが主導するかたちで次回のカンファレンスは運営されています。 (実は今回からGo Conference Tokyoではなく、Go Conferenceになってより地域に縛られないという進化を遂げています。気づいてたよ!というかたがいたらマジですごい。)

kyotogo.connpass.com

umedago.connpass.com

大規模カンファレンスの運営は初だというメンバーが多いなか、tenntennさんはじめさまざまな企業に所属しているかたが企業の垣根を超えてGoコミュニティのために日々奮闘しています。 GoCon運営メンバーには本当にさまざまな面で助けられています。

hatajoeさんとtenntennさんのアカウントはこちら。

twitter.com

twitter.com

GoCon 2021 Autumn のCfP締切は8月末だぞ!☆|彡サ

そんな忙しいメンバーのスケジュールの合間を縫っていろいろ企画したり、準備したりしているGoConですが、実はCfPが公開されています。

このCfPの締め切りが8月末までとなっており、もしかするとご存知ないかたもいるかもしれないと考え、ブログで告知をさせてもらおうと考えてこの記事を書いています。

CfPだけでなくスポンサードの締め切りも8月末となっています。 Goルドとシルバーはすでに満枠になってしまいましたが、ブロンズとグリーンに関しては締め切りギリギリまで応募を受け付けています。 もし興味があるかたは締め切り前にご応募いただければと思います。

gocon.jp

GoCon 2021 Autumn に参加するひとに1コミュニティ運営者がお願いしたいこと

Umeda.goとKyoto.goと異なるコミュニティが共同でおこなうはじめてのイベントになります。 運営するメンバーはそれぞれいろいろな企業に所属しています。

中には競合他社でライバル関係というようなメンバーもいますが、それも含めてお互いを高め合うライバルであり、助け合う仲間、Gophersだと考えています。 このように書くとポジショントークっぽくみえてしまいますが、もっともっとGo Forwardな世の中にしていきたいと個人としても考えていますし、他のメンバーも同じだと信じています。

そして更なるGoの発展、より人類がGopherへと近づくためにも皆さんのご協力が必要です。 ぜひともGoコミュニティへのコントリビュートをお願いしたいと考えています。

でもコントリビュートって難しんじゃないの?と考えるかたもいらっしゃると思います。 なんと、とても簡単にGoコミュニティへのコントリビュートをする方法があります!

それはブログに参加レポートを書くことです!

ぼくはかつてPHPカンファレンスというテックカンファレンスで「ブログを書くまでがカンファレンス!ブログを書いてコミュニティやカンファレンスにコントリビュートしよう!」と言われたことがあります。

これは実に素晴らしい文化であり、全てのテックコミュニティで継承していきたい考えだと思っています。 しかしながら残念なことにコロナ禍でイベントがオンラインになったことで、参加する特別感が薄れてしまい、この素晴らしい文化が徐々に途絶えようとしているようにみえます。 ぼく自身もイベントやカンファレンスの参加レポートを書く機会が薄れてきてしまっています。

これは非常にもったいないことだと考え、今回CfPの応募告知とあわせて参加者のかたにブログを書くお願いをしようと考えました。

「このセッションが楽しかった!」「GoConに参加してよかった」など一言だけでも立派なコントリビュートです。

Twitterで盛り上がってもらうのもすごく嬉しいのですが、ブログを書くことで参加できなかった人たちへ向けたメッセージを書いてもらえればなと考えています。

ぜひ皆さんのフィードバックをコミュニティや登壇者のかたに届けてあげてください。

GopherCon 2020の A Rainbow of Gophers Building A More Diverse Community でも紹介されたようにGoが大事にする文化を伝えていくのもテックコミュニティの大事な責務です。

www.dropbox.com

強制するようなものではありませんが、参加されたかたはぜひブログや企業のテックブログで感想や学んだこと、得られたことなどを書いて次のGopherにバトンをつなげていただければなと考えています。

忙しくなったので朝活とかマインドフルネスとかそういうのをやり始めたよって話。

4月になりました。 最近テクニカルなことがなかなか書けていないなあと反省してるんですが、本業がエンジニアと技術広報という形になったので普通に忙しいです。 あと会計サービスの宿命として年度末年度始まりは大変というのがあるのでそういうものと割り切るしかないなーって思ってます。

で、いままでは夜に自分の時間を確保するように働きかけてたんだけどもこれがうまくワークしなくなってきました。 単純に自分ではコントロールできないタスクが増えてきて、確保できたりできなかったりで安定しなくなってきたので最近朝に自分の時間をとって使うようになったよ…という話です。

元々フロントエンドに課題を感じていたのでそれを学ぶ社内勉強会を1年ほど行ってきました。 その結果として元々は「ES5 is なに?ES6となにが違うかわかってない…。」という状況から React + RecoilでGitHub APIを叩いてモブプログラミングしてみよう!やNextJSがわからんのでGetting Startedをやってみよう!というところまで来ました。

毎週1時間を1年やるだけでそこそこ成長できるんだなってことがわかり大変良いので時間がなかなか取れないかたにはおすすめです。 朝に勉強するのはリモートが前提になったいまだと非常にやりやすくてよいです。

朝活を福岡拠点メンバーが開始しているのをみつけた同僚が真似をして始めたことがきっかけでマインドフルネスに入門しました。 数人でzoomごしにマインドフルネスを毎朝15分〜20分ほど行うだけなのですが脱力によって肩のこりや腹筋など身体のこわばりが解消される感じがあり、胡散臭さを感じていたんですが現在社会は慢性的にストレスに晒されるのでその息抜きをするための訓練なんだなーということがわかってきました。

さきほどとは別の同僚からGoogleの「Search Inside Yourself」がめちゃくちゃいいので未読なら読むといいですよ!という話を聞いていま読んでる最中です。 だいたい3割くらい読みました。マインドフルネスってそういう感じでいいのね!と感じながら読んでるのですが結構いい感じです。今週末あたりに読み切ってしまおうと思います。

あとリモートワークが主になってからまあ運動しなくなったので太りました。 ちょっと本気でまずいなと思うレベルで運動不足になっているので雨以外の日は出来る範囲でジョギングやウォーキング、柔軟をやっていこうと考えて今晩から初めてみました。

無理のないレベルでまずは運動習慣を身につけることを目的としてやっていこうと思います。

なんかそんな感じで最近いい感じに忙しいです。

個人ブログを作ったという話

TL;DR

いわゆる表題の通り…というやつ。

作ったものはこれ。

technogears.dev

構成は以下

  • Hugo@v0.79.0
  • netlify

デザインは MeiK2333/github-style を採用させてもらった。 特にデザイン関係はいじることなくほぼそのまま。

github.com

なぜ今更個人ブログを作ろうと思ったのか?

すごく単純な話で技術情報を載せる投稿先が見つからなかったから。

Qiitaを以前はその用途として使っていたのだけど、いろいろと思うところがありサービスの将来性と自分のやりたいことが交わらないなと感じて退会をしました。

その後zennなどもよいなと思ってアカウントはとっていたのですが最終的に「これも次世代のQiitaになるのではないか?」という点を払拭することができませんでした。

zenn.dev

なのでWordPressは選択肢としてないけど、Hugo + netlifyを最近よく目にするしサクッと作れるらしいのでやるかー!となって作ったのでした。

完全マネージドサービスは諸々楽なんですが、個人の思想が色濃くでる技術ブログには向かないなと感じたから…が見出しの回答になります。

サクッと作れた?

いやそうでもなかった。 Hugoで作る部分はうまくいっていたがnetlifyにあげたところ、CSS/JavaScript/Imageあたりがうまく参照できずなんでだー!となってました。

そのあたりの経緯はログを残しながらついでにPostしているので興味があればどうぞ。

technogears.dev

実際使ってみてどう?

Hugo、手元で確認してGithubにpush、確認がとれたらマージしたらnetlifyに反映…ということで体感的にはすごくいいです。

netlifyでドメインを取得することができたのでほぼこの3つだけで環境が完結するので管理するコストが低いのが最高ですね。

ただWeb上から直接編集する…みたいなことができないので思いついたときにシュッとブログ書くみたいなことができないのが少しネックかも。 でももともとやってないからこれは無視できるかな。

Notionも検討したけど自分の使い方的にはInkdropのほうが好みだしわかりやすい。

Scrapboxのアプリ(Electron製とか)があれば理想的なんだけどなーという気持ちも無きにしもあらず。

まとめ

ということでQiitaは退会してしまっているのでもう記事の編集やコメント、削除などが行えない状態です。

それでもまるでアカウントが生きている状態のようにみえてしまうのはさすがになんとかしてくれと運営にいいたいところですが、それはさておき新たな旅立ちをしたのでよろしくおねがいします。

購読機能とかあるといいんだけどまあそりゃー無理だよね。

Go Study

TL;DR

この記事はMoney Forward Kyoto Advent Calendar 2020の10日目の記事です。 本日の担当はluccafortでお送りします、なお本日誕生日なのでご祝儀シェアをお願いいたします :bowc:

adventar.org

今日はRailsエンジニアがプロダクトでGo言語を習得するために行ったインプットやアウトプットのご紹介をしたいと思います。

オンラインコンテンツ

  • A Tour of Go
    • 過去にサラッと読んだことはあったのですがどこまで覚えているか不安だったので再入門しました。
    • Rails Tutorialsにも感じたことですが、初心者が学習するために必要なものをチュートリアルとして公式で用意してくれているのは非常に助かります。
  • プログラミング言語Go完全入門
  • uber-go/guide
    • GoにおけるベストプラクティスやよりBetterな書き方、そしてBadな書き方が記載されているので「このケースのときどう書くのがいいんだろう?」がわかりやすくまとめられているのでおすすめです。
    • 日本語版を翻訳していただいてるかたと知り合う機会にも恵まれて最高でした。

イベント

Go関連のイベントやカンファレンス、勉強会などに参加しました。 独学だけでは知ることができない点や議論をすることでより理解が深まることを期待して参加しています。 あと単純になにか新しいことを知ったり、学べることは楽しい!というモチベーションの維持の面もあります。

  • 社内のGoエンジニアの勉強会に参加
    • いままでGo言語は独学&誰かにレビューしてもらう、ということがなかったのでこの勉強会で課題を出してもらい、それを解くという形で進めてもらったのが体験としてよかったです。
    • 課題の答え合わせや質疑応答、議論をGoを習得したい熱量が高いメンバーと一緒に行えたので脱落することなくやりきれたかなと思います。
  • MoneyCon(社内ISUCON)
    • ISUCON10の開催が決まる前に社内ISUCONが開催されました。当時まだGoを学び始めたばかりのメンバー2名+Goを習熟しているメンバー1名で参加しました
    • せっかく学んだ技術なので使わないともったいない!Give it a tryだ!!ということでGo言語を無謀にも選択したのですが結果は思ったより悪くなくて成功体験として実績を積めたのは非常に大きな経験でした。
  • ISUCON10にGoで参加
    • 社内ISUCONでの成功体験に味をしめて同じメンバーで参加してみました……が結果は惨敗でGo言語がどうこうではないレベルとGoの習熟度が高ければもっと貢献できたなという悔しい思いをしました。
    • 社内の他のエンジニアも参加して本戦突破していたので次回は本戦突破できるようきちんと過去問を解いてリベンジしたいと思います。
  • Kyoto.goを主催
    • 関西にはUmeda.goがあります。
      • 京都にも気軽に平日夜に参加できるコミュニティーがほしいなと思って作りました。
      • Goコミュニティーの懐の深さとコミュニティー運営の難しさを実感しています。
  • GopherCon 2020参加
    • 初海外カンファレンスに参加しました、単純に英語わからなすぎる問題やGoの理解度が追いついてない問題など、自覚している課題を強く意識するよい機会になりました。

書籍

読了したもののみを記載しています。 買ったけどまだ読めていないものはいっぱいある……いっぱい。

  • Go言語による並行処理
    • 同期的プログラミングをいままでしてきたのでgoroutineのような並行プログラミングをあまり経験しなかったので購入しました。
    • どういう点に気をつけるのか?どういうときにgoroutineを使うのが有効か?が知りたくて読了しました。
    • 社内の輪読会イベントがあるのでより理解を深めることができそうだと期待しています。
  • スターティングgRPC
    • GoだけではなくgRPCを理解するため、そしてgRPCを介してGoとRubyをどうやって通信するのか?という点を学習したくて購入しました。
  • Goのポインタを完全に理解する本
    • 技術書典で見かけてGoのなにがわかってないのだろう?というお気持ちになったので購入。少なくともポインタは理解してそうだという確認ができました。

Go言語による並行処理

Go言語による並行処理

booth.pm

まとめ

今年1年を振り返るとそれなりにGo言語に投資してきた感がありますが、まだまだ不足していると感じています。 来年はもっとRubyの比率を減らして、Goの比率を上げていきたいと考えているのでそのときまでに必要なインプットは完了させておきたいと考えています。

反面、手を動かさずに物事を覚えられるほどぼくは頭がよろしくないのでデザインパターン再入門を兼ねてGoで実装してみる、を試してみようと考えています。 ちなみにやろうとしていることはすでに先駆者のかたがいて実践済みだったりしますw

github.com