2019年振り返り
2019年の大晦日となりました。 本年もまた関わってくださった皆々様方のおかげで、今このようにして生きていけるのだな、と思い、大変感謝しております。 来年もまた引き続きよろしくお願いいたします。
ここ数日はこの1年に起きたことを思い返すことが多く、簡単に書き残しておきたいと思います。
TL; DR
今年も色々頑張ったし、来年も頑張るぞ!
お仕事
今年の1番の出来事はやはり転職でした。
個人としての転職活動ではなく、チーム転職という方法をとりました。 個人でする転職活動に比べて、同じ立場で意見を交換できる相手がいるというのが一番のメリットじゃないかなと思いました。
またそれを折りに、9月より個人事業主として開業もいたしました。 チームとしてだけでなく、個人としても何か貢献できることを持てるようにということで始めました。 これまでの繋がりからのご縁のおかげで、いくつかお仕事をいただくことがでました。 普段(?)のRubyist業の延長やちょこっとAIっぽいことをやることができました。 本業ではなかなか出来ない業務だったので、自分の幅を広げるきっかけになったと思い、感謝しております。 ご依頼はこちら↓からお願いします。
さて本業の方ですが、他社さまとの協力して新しいことに挑戦するようなことを続けてきました。 製造業という異業種に移ってきたところで、まだ右も左も分からないながらも、なんとかコミットできているのではないかと思っています。
勉強会
振り返って気づいたのですが、スクラムフェス大阪って今年だったんですね… RSGT2019 があって、SFO2019があって、年初が濃厚だったのを思い出しました。 基調公演のお手伝いしたり、自分のセッションもあったり、大阪の人たちが優しかったり、えがった゛ああああああ。
今まで自分が話したことない類の講演だったので、いつもより準備を万端として望めました*1。 個人的な名誉として、アジャイルラジオでちょっと触れてもらえたってことです。 「ファッションコミュ障」って名誉じゃないですか?
agileradio.github.io agileradio.github.io
下半期では、OSS Gateのワークショップへのサポーターとしての参加を再開させました。 2年半ぶり(?)くらいに参加したのですが、「久しぶりですねー」と暖かく迎えてくれたのがありがたかったです。 次回のワークショップは、1/25(土)にスタディプラスさんで開催します。
あとXP祭り2019に4年ぶりくらいに参加してきました。 LTでOSS Gateの宣伝をさせてもらいましたが、アレを聞いてワークショップに来た人はいるんだろうか🤔
買ってよかったもの
今年は、モノとの出会いも多い年でした。
この2つは家でのコーディングライフをかなり快適にしてくれました。 4月末ころから、坐骨神経痛になってしまい、それから使い続けています。 最初は座椅子のみでした。 そこに、Trayboを組み合わせることで、目線が少し高くなることで首の疲れ減り、直接Macbookを脚に載せないので脚へのストレスも減りました。
もう1つコーディングライフを改善しれくれたのがMOFTでした。
これは、背面に取り付けることができるパソコンスタンドでして、薄くて軽量で持ち運びが楽。 副業の作業場所として、外のカフェなどを使うことが多くなりました。 テーブルで作業する時に画面の高さを上げるだけで、首の疲れとかがかなり改善されました。
あとビールに対する姿勢が変わりました。 転職祝いにたくさん送っていただきまして、1ヶ月ほど毎日おいしいビールが飲める環境でした。
よなよなエール [ 350ml×24本 ] クラフトビール ペールエール エールビール
- メディア: 食品&飲料
こんなのを1ヶ月くらい飲んでしまったせいで、「とりあえずア○ヒ」なんてことが言えなくなってしまいました。
来年の目標
今年は転職活動の期間もあり、本業でコードを書く時間・量が少なかった年でした。 来年は、商用なりなんなりで、サービスとして育てていけるような開発をやりたいですね。
個人事業主としては、引き続き自分の門戸が広げていければと思います。 いろんな人と関われたらそれだけでも儲けものなので、いろんな方からお声がけいただけるといーなー*2。
勉強会は、OSS Gateをもうちょっといろんなところで開催できないかと考えています。 OSSへの貢献を始めたいと思って参加しに来ているビギナーの方々は様々なところから来てくださるのですが、サポーターは若干偏っていそうという問題があります。 もともとRuby界隈の人たちがたまたま集まって立ち上がったこともあるため、サポーターもまたそういった界隈から来るのが自然な流れとなってしまっているようです。 ということで、来年はもうちょっと認知度上げていけたらなぁ、と。
それでは、良いお年を。
OSS Gater 東京 ワークショップ 12/14 にサポーターとして行ってきた。 #oss_gate
今年最後のOSS Gate東京ワークショップにサポーターとして行ってきました。 今回参加のビギナーの方は4名*1。 多様な業界、言語から来るのはいつもどおりですが、普段コードを書くお仕事ではないという方がいたのは印象的でした。 それでも全員フィードバックを送って終えることができました!
ビギナーさんから「OSSの貢献ってドキュメントから入っていくのが良いんですね」ということを言われました。 確かにそうではあるんだけれど、それだけじゃないんだよなぁ、という気持ちがあったのだがその時にうまく伝えられなかったのでここに書いてみます。
まず1つに、ワークショップを運営する上でやりやすくするためという意味があります。 ただ単に「対象のOSSを使ってみてください」では何をしたらいいのかわからないので手が進まない人は進まないものです。 誰でも手が進められるような手順として、ドキュメントに沿ってもらうようにしています。
またドキュメントは、貢献できそうなおかしなところが見つかりやすいところです。 開発者がたくさん参加しているOSSでも抜け漏れやコードの状態と合っていないものが見つかります。 実際、今回のワークショップでも、JenkinsのドキュメントにサポートしているJavaのバージョンが実際と異なるという発見をしています。
ドキュメントの修正もOSSへの貢献の方法の1つであるということに気づいて欲しいという意味もあります。 ビギナーの方が想像しているOSSへの貢献が、コードの修正だけだと思っている方も少なからずいます。 単にドキュメントを修正といっても、それ自体が生み出す成果は大きいものであります。 先のJenkinsがサポートするJavaのバージョンの例だと、古いJavaのバージョンをインストールする必要があるのかと思ったら、ドキュメントと異なり新しいバージョンでも実際は動くというのがエラーメッセージに出ていたわけです。 ドキュメントが正しく現状と一致していたのであれば、わざわざ古いJavaを用意したりする必要がなくなりますし、複数のバージョンでサポートされているとなれば選択肢が増えます。
そして、このワークショップでやっていることは、「普段の仕事でコードを書いている」というシチュエーションに置き換えて考えてほしいです。 このワークショップでは、普段の仕事などで何かOSSを使おうとしたら問題に出くわす、というシチュエーションを再現しているわけです。 ですので、普段の開発でOSSの問題に出くわした時は、このワークショップでやったように、自分が何をしたのかまとめてみたり、どういった動作を期待したのかを書いてみたりすることで、OSSへフィードバックができるはずです。
Special Thanks
会場提供は、Pepperアトリエ さんでした。 たまたま何かのイベントであまったお菓子やコーヒーも提供していただきました。
その名の通り、Pepperのハンズオンセミナーを中心としたワークショップの会場だそうです。 上の写真は、ワークショップのためにレイアウトした後なのですが、Pepperが20人くらいいました。 この季節らしく、サンタの格好をしたPepper達がお出迎えしてくれたのが可愛らしい。
会場貸し切りキャンペーンというのを年度末までやっているそうなので、勉強会を開催したい人は検討してみてはいかがでしょうか。
*1:うち1名は会場担当の@maeshoさん
XML文書からXPathで要素を抜き出すCLIツールを作った
この記事はRuby Advent Calendar 2019 10日目の記事です。
久しぶりにアドベントカレンダーにエントリーしたので、最近作ってみたいと思った地味なgemを作りました。
TL;DR
作ったものはこちらです。
しかしながらRubygems.orgのMFAで詰まってしまっていて、まだリリースできていません。 もし使う場合は、上のリポジトリをcloneしてgemファイルをビルドし、インストールする必要があります。
動機
お仕事でXMLドキュメントを解析しながらそれを処理する必要がありました。 複雑なXMLドキュメントで、スキーマもいまいちわからないものだったので、いきなりコードを書くよりも、必要な情報を抜き出すためのXPathはどんなものだろうかというのを試行錯誤するところからはじめました。
XMLパーサーといえばNokogiriと思い、nokogiriに同梱されているcliを使ってみました。
これはこれで便利で、指定したドキュメントを@doc
に読み込んだ状態でirbが起動されます。
便利なのですが、XPathで抜き出した要素が大量に出てくる時の表示が面倒だったり、結果をファイルに保存する時にいちいちFile
を操作しないといけないのが煩わしいと思いました。
そこで、解析したいXMLドキュメントとXPathを指定することで、XPathにマッチする要素を出力するだけのコマンドラインツールを作ることにしました。
使い方
READMEに記載していますが、シンプルにXML文書のファイルパスもしくはURIとXPathを指定することで実行できます。
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をまだリリースできないままでいます。 誰か助けて。
マーティ・ケイガン推薦書籍の日本語版を探してみた。 #pmconfjp
プロダクトマネージャーカンファレンス2019の基調講演は、あのInspiredの原著者マーティ・ケイガンでした。 マネジメントやプロダクトのデザインとかそういう話ではなく、意外とチームや人の話で、とても共感できる部分があったり、とても考えさせられました。
基調講演中、氏が推薦図書を紹介してくれました。
#pmconfjp pic.twitter.com/zGW4bMQxNf
— 文 (@wifecooky) November 12, 2019
で、さらっと中身を知りたいと思ったので、日本語版の書籍を探してみました。 一部は翻訳されていませんでしたが、原著はAmazonで購入可能のようです*1。
- 作者: レイ・ダリオ,斎藤聖美
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2019/03/21
- メディア: 単行本
- この商品を含むブログを見る
リーダーは最後に食べなさい! チームワークが上手な会社はここが違う (日経ビジネス人文庫)
- 作者: サイモン・シネック,栗木さつき
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2018/04/28
- メディア: 文庫
- この商品を含むブログを見る
- 作者: ラズロ・ボック,鬼澤忍,矢羽野薫
- 出版社/メーカー: 東洋経済新報社
- 発売日: 2015/07/31
- メディア: 単行本
- この商品を含むブログ (10件) を見る
- 作者: L・デビッド・マルケ,花塚恵
- 出版社/メーカー: 東洋経済新報社
- 発売日: 2014/05/30
- メディア: 単行本
- この商品を含むブログ (6件) を見る
THE CULTURE CODE ―カルチャーコード― 最強チームをつくる方法
- 作者: ダニエル・コイル,楠木建,桜田直美
- 出版社/メーカー: かんき出版
- 発売日: 2018/12/03
- メディア: 単行本
- この商品を含むブログを見る
上のスライドとは別で、Amazon、Apple、Googleのファウンダー達をコーチングした故ビル・キャンベル氏に関する本の日本語訳も近々出版されるようです。
ということで、当面読みたい本には困らなそう*2。
「闇に魅入られた科学者たち」を読んだ。
- 作者: NHK「フランケンシュタインの誘惑」制作班
- 出版社/メーカー: NHK出版
- 発売日: 2018/03/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
たまたま図書館で見かけたのだけど、科学倫理の話として面白かった。
副題にあるように、犠牲者を出す人体実験を行ってしまった5人の科学者について書かれている。 時代背景などは異なるが、好奇心や国家への忠誠心、理想が生み出されている。 人体実験を行った科学者本人それぞれは、それぞれが従った正義を否定することはないようだ。 本文中にも書いてあるのだが、謝罪することはそれまでの自身が行ったことを否定することになり、それは自身が気づきあげてきた理論を否定することになるからなのだろう。 あくまでも科学や国家、人類のために、ということを裏付けとして行ったことで、それは誤りではないということなのだろう。 確かに、彼らが行ったのはエセ科学というものではなく、それぞれの領域の発展に貢献する結果も出してはいる。
科学者といえどもただの人であり、置かれた状況によっては、間違った行為と思いつつも誤ったことに手を出してしまうのかもしれない。 それは「服従の心理」に書かれていることがそのままなのだろう。
この本の最後に池内了氏が言うように、科学者の暴走を止めるために、行き過ぎた科学者に対して一般市民が声を出して批判することは大切なのだろう。 そのために、科学について知っておく必要があるのだな。 と思った。
エクストリームプログラミングを読んだ。
- 作者: ケントベック,シンシアアンドレス,Kent Beck,Cynthia Andres,角征典
- 出版社/メーカー: オーム社
- 発売日: 2015/06/26
- メディア: 単行本
- この商品を含むブログ (6件) を見る
先日参加したXP祭り2019までの予習として読んでいたのだけど、当日までに読み終えることができなかったが、ちまちまと読み進めてやっと読了。
この本を読む前までは、エクストリームプログラミングについては名前しか知らなかった。 本を開くまでは、プラクティスについて記述された本だと思っていた。
10年以上前に学生の時に、ペアプログラミングを同期とやったことはあった。 チーム開発というわけではなく、スポットで一緒に知識を出し合ってコードを書いてみたかっただけで、どちらかと言えばモブプロっぽい目的だったと思う。 就職してから初めてチーム開発をするようになった。 テスト駆動とかCIとか言葉しかしらなかったものを真面目に学び始めたのもその頃から。ということを、本を読みながら色々と思い出した。 先日のXP祭り2019での基調講演で、「どこにでもXPのかけらがある」といった話をしていたが、なんとなくそれが納得いった気がする。
XP 祭り2019 でLTしてきた #xpjug
前回行ってきたのが2015年だから4年ぶりにXPに行ってきた。 今回はLT参加でエントリーしてたので、LTしてきた。
この前の週に久しぶりにOSS Gateワークショップにサポーターとして参加してきた。
2年ぶりの参加だったのだが、ビギナーの方々と話をしてみて感じるところは変わっていなかった。 彼らは「OSS開発者をすごく強大なエンジニア」と想像してしまっていることがある。 このLTで、少しでもそのイメージを払拭して、気軽にプルリクなりバグ報告なりをできるような人が出てくれたら嬉しいな、なんて思ってます。
記念
こんなにRTやファボられたのは滅多にないので記念に貼っておく。
先程使用したLT資料です。
— さとりゅう 🌸 たつや学院 (@sato_ryu) September 21, 2019
今日は良い床だったので、良い滑りができましたね。 #xpjug https://t.co/CudjDvyLJY