satoryuの日記

忘れっぽいから覚えてるうちに書いておかないと。

GitHub Sponsors に登録した。

タイトルの通りGItHub Sponsorsに登録した。

GitHub Sponsorsとは

GitHubスポンサーのことではなく、GitHub上で自身のスポンサーを募ることができるサービスがGitHub Sponsors。

help.github.com

スポンサーするにはGitHubアカウントがあればできるが、スポンサーを受けるには審査が必要になる。 特に難しいことはなく、身分証明書と税金の支払いに関する情報を入力し、審査を待つだけだった。 自分の場合、身分証明書には運転免許証を使用した。 米国からの支払いの受け取りになるので、W-8BENという書類を作成しなければいけない。 これもオンライン上で作成できる。 Foreign Tax Identification Numberの項目に何を入れればいいのかわからず少しハマってしまった。どうやらこれは、マイナンバーの番号を入力すれば良いらしい。

スポンサーは対象のユーザーに月額定額でスポンサー費を支払うことができる。 この定額のプラン(Tier)を作成することができる。

なぜ登録するのか

自分の場合、OSS開発は、自分が書くコードで世の中に何か貢献したいという気持ちでやっていることが多い。 けれども、時間を割いている活動であるため、そこに投資できるには限りがある。 ましてや、仕事や家庭が忙しい時期に、このようなプライベートでの活動は優先順位が下がりがちになったりする。 そこで金銭というものが、OSSの開発をするためのモチベーションの1つになるのかと思った。 このスポンサーという仕組みを使うと、どのようにOSS開発が促進されるのか自分自身で試してみたいと思い、登録してみた。

ということで、ご支援してくださる方、お待ちしております。

github.com

アジャイルレトロスペクティブズを読んだ

自分はふりかえりについてはあんまり手数を持っていない。 KPTやYWTや最近だとFDL*1をやったりなんかしていて、それぞれやっていて意義があるのだがマンネリ感は常に伴うような気がしていた。 この本を開く前に期待していたのは、ふりかえりのやり方の手数が増えることだった。

この本は、ふりかえりのファシリテーターに向けた本である。 ただふりかえりだけではなく、場の設定からクロージングまでのアクティビティが書かれている。 それぞれのアクティビティには、著者EstherとDiana彼女らの経験に基づいた例として掲載されている。 ファシリテーター(おそらく1人)がチーム(こちらは多数)に対してどう振る舞うと良いのか、各アクティビティが実際にどのように使われるのかが例として載っているのは、イメージしやすかった。

アジャイルスクラムをあーだこーだ言うより、現状を見て次の一歩を考えるために、ふりかえりは一番導入しやすいものだと思うので、これからアジャイル開発をやろう!という人はここから始めると良いのではないだろうか。

内容とは直接関係無いが、訳者の角さんが書いている「訳者ふりかえり」は角さん独特の文章で好き。

*1:Fun!Done!Learn!

Regional Scrum Gathering Tokyo 2020 へ行ってきた。 #RSGT2020

f:id:satoryu:20200113235101p:plain

2014年から参加しているので、もう年初の慣習と化している気がする。 でも、今年は一般参加者として参加する初めてのRSGT2020でした。 2014年はパネリスト、2015年から当日スタッフ、2018年が実行委員、2019年で再度当日スタッフ。 まだやってないのはキーノートくらいか。

セッションの内容とか、冬の寒さをふっとばすような熱いレポートはTwitterからザクザク出てくるので、そちらを探してください。

twitter.com

初日のキーノートは、真面目に前の方の席で参加してみた。 相変わらずのコープ節というか、エンターテイメントというか、表現力が豊かというか 同通レシーバーの使い方や自分の利き耳がどちらなのかわからずにあたふたしてしまった。 結局、目の前に本人がいるのだから、英語で聞くことにした。 しかし、英語がわからないのか、自分の経験が浅いのかわからないが、しっくりとこなかった。 というのは、もうここ数年はスクラムをやってないからなのかな、と思った。 あー、僕は初心者なんだな、と。 色々セッションを聞いてまわった。色々考えさせられる話ばかりだったのだけど、まだいまいち整理できていない。 もう少し何度かスライドを見返したり、何か自分でやってみたらまた何かわかるようになるのかもしれないのかなぁ。

他の参加者の人たちを見てみた。 どのセッションも座席が前の方から埋まっていた。 自分もなるべく前の方に席を取るようにした。 運良く席を取れることが多かったが、後ろをみると立ち見ができたりするセッションもあったりして驚いた。 なんて意欲だろう。 ネットワーキングパーティでは、色々話をしたい人たちと話ができた。 今何をやっていて、何に困っていて、どうしようしているとか。 こんなことを言ったら失礼かもしれないが、かっこいいことをしている話ではなかった。 だけれど、何か目指してるものがあって、それを楽しそうに話をしていた。 今、自分は何をしようとしていたんだっけか。 そういうことを帰り道でぼんやりと考えていた。 何も思いつかなかったのか、それとも遅くまで飲んでいたせいなのか、その答えは覚えていない。 そうだ、それと、ここで初めて会った人もいた。 普段Twitterでは見かけていた人が会いに来てくれて、なんとも言えない照れくさいものがあった。 「会えて嬉しかったです」と言われて嬉しく思うのは何なのだろうか。 あと今年やってみたかったことが1つあって、それは「毎日終わったあとに流れに任せて誰かと飲みに行く」ことだった。 スタッフだと疲れて帰りたくなってしまうし*1、これまでの懐事情という個人的な理由もあってなかなかいけなかった。 札幌の人だったり、大阪の人だったり、いろんな人と話ができた。 ただお名前伺ってない人が何人かいて、もったいないことしてしまった。 セッションで色々聞いて思ったことを吐き出す場所がほしいのだろうし、スピーカーとか界隈のあの人と話したいというのがあるのだろうな。

OSTでは、自分も1つだけセッションを持ってみた。 どんな人が来ていて、どんな話ができるのか楽しみだった。 プロポーザルは出していて、ちょこっとはLikeを貰っていたので、何か一緒に話ができる人がいるかもしれない。 でも、スクラムとはほとんど関係ないテーマだったので、誰も来ない覚悟もあった。 周りでいくつかのグループがわいわいとディスカッションが始まる中、そのとき、1つのテーブルを自分だけ一人占めしていた。 そこに、@Akapon2010 さんが来てくれた。 ソースコードの読み方とかについてのお悩みに自分なりに答えていて、色々と眼の前でメモを書き起こしてくれた。

f:id:satoryu:20200114012821p:plain

脇で @tnagasawa さんが相槌打ってくれたのもとても嬉しかった。 沢山の人に来てもらったらそれはそれで嬉しかったのだろうけど、自分の想いに共感してくれる人や喜んでもらえる人が一人でもいたら、それは 普段自分がやってることを言語に出来た感じもあって、自分としてもありがたい時間だった。 @Akapon2010 さん、ありがとうございました。

もっとギャザりたいからアジャイルラジオの公開収録があると聞いて、参加してみた。

agileradio.github.io

ほんとみんな楽しそうにしてるなぁ。 そして、となりでプロポーザルのネタだししてるきょんおよの声がデカい。 どんだけ楽しそうにしてるんだよ。最高か。

1日目から廊下でとあるスタッフに会う度に「前説お願い」というのをずっと言われ続けていた。 仮にもし本当にやるハメになったらと思って、ネタの準備をしていた二日目の晩。 三日目の朝に、秋葉原のオフィスに置いてある自前の法被を取ってから御茶ノ水に向かっていた。 クロージングキーノートの高橋さんのことは少しは知っていたけど、今回のキーノートの概要を読んで、過去のRSGTのウェブサイトとか見て、今年の3日間のことを思い出してみた。 今、この楽しい空間があることがとても奇跡なんじゃないかって思えた。 何がこの空間を作っているのかはわからない。けれど、その一回目を支えてくれた高橋さんに最大のお礼を表現したい、と参加者として思った。 僕はただつまらない話をしているのに笑ってくれたし、お願いしたとおりに良い拍手をしてくれる参加者がとても素敵だった。

高橋さんの話はとてもエモかった。


69 / ONE OK ROCK 2017 Ambitions Japan Tour in SAITAMA SUPER ARENA

あー、僕が生きているうちにやり遂げたいこと、遂げられなくてもやりたいことって何だろう。 人生じゃなくてもいい、この一年だけでもやっていきたいことってなんだろうか。 そうしたら、来年にはプロポーザル書けるかな。 そしたら、OSTで嬉しいと思えたものがもっと嬉しいと思えるようになるかな。 クロージングノートあとの拍手は良い音だった*2。 後ろから見ていて、良い風景だったなぁ。

帰り道で思った。 来年はもっと話をしたい。 何を頑張るかは決まってないけど、この1年を頑張ろう。 そしたら、同じように頑張ってる人たちに来年また会える。 それはきっと楽しいだろうな。

*1:スタッフでも行く人は行く。

*2:自画自賛です。

Hacktober Fest 2019の Tシャツが届いた。

f:id:satoryu:20200103232705j:plain

毎年恒例のHacktober FestのTシャツが届いた。 昨年はDigitalOceanDEVが共催していたので、ステッカーがにぎやか。

satoryu.hatenablog.com

今年もちまちまとOSS活動を頑張ります。

2019年振り返り

2019年の大晦日となりました。 本年もまた関わってくださった皆々様方のおかげで、今このようにして生きていけるのだな、と思い、大変感謝しております。 来年もまた引き続きよろしくお願いいたします。

ここ数日はこの1年に起きたことを思い返すことが多く、簡単に書き残しておきたいと思います。

TL; DR

今年も色々頑張ったし、来年も頑張るぞ!

お仕事

今年の1番の出来事はやはり転職でした。

satoryu.hatenablog.com

個人としての転職活動ではなく、チーム転職という方法をとりました。 個人でする転職活動に比べて、同じ立場で意見を交換できる相手がいるというのが一番のメリットじゃないかなと思いました。

またそれを折りに、9月より個人事業主として開業もいたしました。 チームとしてだけでなく、個人としても何か貢献できることを持てるようにということで始めました。 これまでの繋がりからのご縁のおかげで、いくつかお仕事をいただくことがでました。 普段(?)のRubyist業の延長やちょこっとAIっぽいことをやることができました。 本業ではなかなか出来ない業務だったので、自分の幅を広げるきっかけになったと思い、感謝しております。 ご依頼はこちら↓からお願いします。

satoryu.github.io

さて本業の方ですが、他社さまとの協力して新しいことに挑戦するようなことを続けてきました。 製造業という異業種に移ってきたところで、まだ右も左も分からないながらも、なんとかコミットできているのではないかと思っています。

勉強会

振り返って気づいたのですが、スクラムフェス大阪って今年だったんですね… RSGT2019 があって、SFO2019があって、年初が濃厚だったのを思い出しました。 基調公演のお手伝いしたり、自分のセッションもあったり、大阪の人たちが優しかったり、えがった゛ああああああ。

satoryu.hatenablog.com

今まで自分が話したことない類の講演だったので、いつもより準備を万端として望めました*1。 個人的な名誉として、アジャイルラジオでちょっと触れてもらえたってことです。 「ファッションコミュ障」って名誉じゃないですか?

agileradio.github.io agileradio.github.io

下半期では、OSS Gateのワークショップへのサポーターとしての参加を再開させました。 2年半ぶり(?)くらいに参加したのですが、「久しぶりですねー」と暖かく迎えてくれたのがありがたかったです。 次回のワークショップは、1/25(土)にスタディプラスさんで開催します。

oss-gate.doorkeeper.jp

あとXP祭り2019に4年ぶりくらいに参加してきました。 LTでOSS Gateの宣伝をさせてもらいましたが、アレを聞いてワークショップに来た人はいるんだろうか🤔

買ってよかったもの

今年は、モノとの出会いも多い年でした。

この2つは家でのコーディングライフをかなり快適にしてくれました。 4月末ころから、坐骨神経痛になってしまい、それから使い続けています。 最初は座椅子のみでした。 そこに、Trayboを組み合わせることで、目線が少し高くなることで首の疲れ減り、直接Macbookを脚に載せないので脚へのストレスも減りました。

もう1つコーディングライフを改善しれくれたのがMOFTでした。

これは、背面に取り付けることができるパソコンスタンドでして、薄くて軽量で持ち運びが楽。 副業の作業場所として、外のカフェなどを使うことが多くなりました。 テーブルで作業する時に画面の高さを上げるだけで、首の疲れとかがかなり改善されました。

あとビールに対する姿勢が変わりました。 転職祝いにたくさん送っていただきまして、1ヶ月ほど毎日おいしいビールが飲める環境でした。

こんなのを1ヶ月くらい飲んでしまったせいで、「とりあえずア○ヒ」なんてことが言えなくなってしまいました。

来年の目標

今年は転職活動の期間もあり、本業でコードを書く時間・量が少なかった年でした。 来年は、商用なりなんなりで、サービスとして育てていけるような開発をやりたいですね。

個人事業主としては、引き続き自分の門戸が広げていければと思います。 いろんな人と関われたらそれだけでも儲けものなので、いろんな方からお声がけいただけるといーなー*2

勉強会は、OSS Gateをもうちょっといろんなところで開催できないかと考えています。 OSSへの貢献を始めたいと思って参加しに来ているビギナーの方々は様々なところから来てくださるのですが、サポーターは若干偏っていそうという問題があります。 もともとRuby界隈の人たちがたまたま集まって立ち上がったこともあるため、サポーターもまたそういった界隈から来るのが自然な流れとなってしまっているようです。 ということで、来年はもうちょっと認知度上げていけたらなぁ、と。

それでは、良いお年を。

*1:暇だったとも言える。

*2:「営業しろよ」というツッコミはもっとも

OSS Gater 東京 ワークショップ 12/14 にサポーターとして行ってきた。 #oss_gate

f:id:satoryu:20191214150543j:plain

oss-gate.doorkeeper.jp

今年最後のOSS Gate東京ワークショップにサポーターとして行ってきました。 今回参加のビギナーの方は4名*1。 多様な業界、言語から来るのはいつもどおりですが、普段コードを書くお仕事ではないという方がいたのは印象的でした。 それでも全員フィードバックを送って終えることができました!

ビギナーさんから「OSSの貢献ってドキュメントから入っていくのが良いんですね」ということを言われました。 確かにそうではあるんだけれど、それだけじゃないんだよなぁ、という気持ちがあったのだがその時にうまく伝えられなかったのでここに書いてみます。

まず1つに、ワークショップを運営する上でやりやすくするためという意味があります。 ただ単に「対象のOSSを使ってみてください」では何をしたらいいのかわからないので手が進まない人は進まないものです。 誰でも手が進められるような手順として、ドキュメントに沿ってもらうようにしています。

またドキュメントは、貢献できそうなおかしなところが見つかりやすいところです。 開発者がたくさん参加しているOSSでも抜け漏れやコードの状態と合っていないものが見つかります。 実際、今回のワークショップでも、JenkinsのドキュメントにサポートしているJavaのバージョンが実際と異なるという発見をしています。

ドキュメントの修正もOSSへの貢献の方法の1つであるということに気づいて欲しいという意味もあります。 ビギナーの方が想像しているOSSへの貢献が、コードの修正だけだと思っている方も少なからずいます。 単にドキュメントを修正といっても、それ自体が生み出す成果は大きいものであります。 先のJenkinsがサポートするJavaのバージョンの例だと、古いJavaのバージョンをインストールする必要があるのかと思ったら、ドキュメントと異なり新しいバージョンでも実際は動くというのがエラーメッセージに出ていたわけです。 ドキュメントが正しく現状と一致していたのであれば、わざわざ古いJavaを用意したりする必要がなくなりますし、複数のバージョンでサポートされているとなれば選択肢が増えます。

そして、このワークショップでやっていることは、「普段の仕事でコードを書いている」というシチュエーションに置き換えて考えてほしいです。 このワークショップでは、普段の仕事などで何かOSSを使おうとしたら問題に出くわす、というシチュエーションを再現しているわけです。 ですので、普段の開発でOSSの問題に出くわした時は、このワークショップでやったように、自分が何をしたのかまとめてみたり、どういった動作を期待したのかを書いてみたりすることで、OSSへフィードバックができるはずです。

f:id:satoryu:20191214160709j:plain

Special Thanks

会場提供は、Pepperアトリエ さんでした。 たまたま何かのイベントであまったお菓子やコーヒーも提供していただきました。

pepper-atelier-akihabara.jp

その名の通り、Pepperのハンズオンセミナーを中心としたワークショップの会場だそうです。 上の写真は、ワークショップのためにレイアウトした後なのですが、Pepperが20人くらいいました。 この季節らしく、サンタの格好をしたPepper達がお出迎えしてくれたのが可愛らしい。

f:id:satoryu:20191214150558j:plain

会場貸し切りキャンペーンというのを年度末までやっているそうなので、勉強会を開催したい人は検討してみてはいかがでしょうか。

*1:うち1名は会場担当の@maeshoさん

XML文書からXPathで要素を抜き出すCLIツールを作った

この記事はRuby Advent Calendar 2019 10日目の記事です。

久しぶりにアドベントカレンダーにエントリーしたので、最近作ってみたいと思った地味なgemを作りました。

TL;DR

作ったものはこちらです。

github.com

しかしながらRubygems.orgのMFAで詰まってしまっていて、まだリリースできていません。 もし使う場合は、上のリポジトリをcloneしてgemファイルをビルドし、インストールする必要があります。

動機

お仕事でXMLドキュメントを解析しながらそれを処理する必要がありました。 複雑なXMLドキュメントで、スキーマもいまいちわからないものだったので、いきなりコードを書くよりも、必要な情報を抜き出すためのXPathはどんなものだろうかというのを試行錯誤するところからはじめました。

XMLパーサーといえばNokogiriと思い、nokogiriに同梱されているcliを使ってみました。 これはこれで便利で、指定したドキュメントを@docに読み込んだ状態でirbが起動されます。 便利なのですが、XPathで抜き出した要素が大量に出てくる時の表示が面倒だったり、結果をファイルに保存する時にいちいちFileを操作しないといけないのが煩わしいと思いました。

そこで、解析したいXMLドキュメントとXPathを指定することで、XPathにマッチする要素を出力するだけのコマンドラインツールを作ることにしました。

使い方

READMEに記載していますが、シンプルにXML文書のファイルパスもしくはURIXPathを指定することで実行できます。

kamikiri --file /path/to/xml/file.xml --xpath '//foo/bar'

例えば、下記のように、CDのカタログから1980年代の10ドルより高いCDを抜き出すことができます。

$ kamikiri --file https://www.w3schools.com/xml/cd_catalog.xml --xpath '//CD[PRICE > 10.0][YEAR > 1990]'
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>

パイプやリダイレクトと組み合わせれば、ファイルに保存したり一部の文字列を書き換えたりとか幅広く使えそうです。CLI、便利。

おまけ

ある程度形になって実行できるようになったのでrubygems.orgにgemファイルをpushしようとしたのですが、MFAのOTPコードを入手する手段を失ってしまいました。 以前にMFAの設定した時に登録したデバイスiPhone)から今のデバイスに乗り換えた時に、登録していたAuthenticatorをアンインストールしてしまったためです。 MFA LevelをUIとAPIの両方に設定していたので、rubygems.orgのウェブ画面からログインする際にもOTPコードを求められてしまう状態です。

サインイン画面から確認メールを再送することで、ログイン状態にすることはできたのですが、ドキュメントにあるようにプロフィール編集画面にQRコードが出てこない状態です。

Setting up multi-factor authentication - RubyGems Guides

という状態のため、今回作ったgemをまだリリースできないままでいます。 誰か助けて。