何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

『初めてのPerl 第7版』の査読を担当しました

「リャマ本」の最新版

2018年1月20日にオライリージャパンから『Learning Perl 7th Edition』の邦訳『初めてのPerl 第7版』が発売される。 この本は長年「リャマ本」として親しまれてきた。

www.oreilly.co.jp

この度、邦訳の査読者として参加させていただいた。 オライリーの方から話があったのは2017年11月下旬であった。

原著者たちが実際に行ったトレーニングコースの経験に裏打ちされたテキストであり、基礎からPerlを丁寧に学ぶことができる。 私もPerlを学びながら読み進めた。 感じたこととして、Perlはデフォルトの振る舞いが多く、最初は慣れるのが大変であるが、一度身に着ければ強力な武器になるだろう、と感じた。

原書『Learning Perl』の初版は1993年に出版され、翻訳本が出版されたのは1995年6月のことであるソフトバンク出版事業部から出版されている。オライリージャパンが設立されたのは1995年12月である。 その後、 第2版第3版第5版第6版と翻訳が出版されてきた。 このような歴史ある名著に僅かながらでも携わることができてうれしかった。 2018年となった現在ではRubyPythonといった強力なライバルが存在するが、何故Perlが使われるようになったのかを知るためにも読んでいただければと思う。

余談

第6章「ハッシュ」の「6.2.2 ハッシュの代入」にある訳注(P.113)が気に入っている。 ハッシュの変換例の1つとして逆引きハッシュを取り上げて、注意が述べられている。以下に引用する。

もちろん、これがうまくいくのは、元のハッシュの値がユニークな場合だけだと推測できるでしょう(頭の良い人は科学上の原理から説明できるでしょう) ――そうでない場合には、新しいハッシュでは同じキーが重複してしまいますが、ハッシュにおいてはキーは常にユニークでなければなりません。

私は決して頭は良くはないものの、「科学上の原理」からこの事象の説明を試みた。 Perlのハッシュ(一般に、連想配列)を数学の写像として解釈して訳注を作成した。 学部1年のときにまじめに離散数学を勉強してよかったと感じた。

Python Boot Camp in 埼玉に参加しました

大宮は近かったので

去る2017年12月16日に埼玉県さいたま市大宮区にてPython Boot Camp in 埼玉が行われた。

pyconjp.connpass.com

今回、TAとして参加した。 現在の居住と大宮がそれなりに近かったから、という不純な動機である。 以前からPython Boot Campの活動はブログやTwitterで知っていたが、参加するチャンスがなかった。 埼玉県で行いたいという現地スタッフの熱意のおかげで参加することができたのである。

参加するにあたって、事前にテキストを読み、いくつか誤植を指摘した。

xaro.hatenablog.jp

事前の準備もよく、当日はTA業を張り切って行うはずであった。 悲劇は家を出て数十メートル歩いた時点で発生した。

ぎっくり腰である。

鞄に重量のあるノートPCを入れて右肩にかけたら右腰に違和感を感じた。 この時点で勇気をもって引き返すべきであったかもしれない。 不純な動機の罰が当たったのかもしれない。

電車に乗ってランチミーティングが始まるころから痛みが強くなり、会場に向かう途中で歩行すらきつい状態になった。 会場設営すらできず、スタッフやTAの方に気を使わせしまう事態となってしまった。 腰が痛いなりにもTA業をやろうとオンライン対応(SlackやTwitter)に専念しようと思ったものの、会場のwifiが弱く、オンライン経由の質問は皆無であった。 何とか会場下手側(講師からみて右手側)の質問対応をこなすのが精一杯であった。 埼玉の土地の利ですごいTAがたくさんいらっしゃったのが救いであった。 懇親会は激痛で参加できず、脂汗をかきながらタクシープールへ向かった。 大宮駅前にあった15メートル程度の横断歩道を渡る前に5分立ち止まり、何とか渡るもその後10分ほどポールのそばから動くことができなかった。

その後、受診と安静を経て難なく歩行ができる段階まで回復したが、まだ通勤時の荷物は重量を減らすために最低限のものしか携帯しない。 腰を手で押さえて少しでも痛みをそらすために姿勢をよくしていたが、その様子が「受講生を見守るTA」のように見えて申し訳ない気持ちになった。

pyconjp.blogspot.jp

閑話休題(長い)。実際にTA業をやって何を感じたか。

ランチミーティングで「ディレクトリ」は知っているけれども「カレントディレクトリ」という概念がわかっていない初心者が多い、という話を聞いていた。 なるほど、と思いつつまさか、とも思っていたが、間違っていたのは自分であった。 自分がプログラミングを始めたのは学部生のとき(遅い!!!)であるが、最初はプログラミングを行わず、コンピュータリテラシーと呼ばれる講義を受けていた。 LinuxではなくSolaris、つまりUNIXlscd などの基礎を学んでいた。ひたすらコマンドライン上の操作を行うので嫌でも慣れる。 受講生のバックラウンドにもよるが、プログラミングを学ぶ前に「コンピュータリテラシー」を学ぶ機会があればもっとスムーズにプログラミングが勉強できるだろう、と感じた。

何のためにプログラミングを学ぶのかは人それぞれであるが、法律や公序良俗に反しない目的ならば周りにいるできる人たち、Slackのチャンネルに助けてくれる人たちが必ずいるので 「求めよ、さらば与えられん」の精神でいけばよい方向へ向かうことができるのではないだろうか。

2017年大反省会

2度目の転職、2度目のPyCon JP LT、4冊の査読

2016年大反省会 - 何かを書き留める何か

特に誰も楽しみにしていない年末恒例の振り返りを今年も実施する。 2017年は2回目の転職を行ったりLightning Talkをやったり本の査読をやったりと去年の活動を継続していた。 相変わらず財政や健康には褒められた生活はしていないが、思い出せる限り記述して来年に繋げたい。

2017/01/09 自分が行っている業務に限界を感じる

限界を感じるのが早すぎるのでは。 自分の日記から一部改変して引用する。

気分的には転職したい。もっと給与が欲しい。まともな休日制度のところで働きたい。体育会系の雰囲気が嫌だ。自社サービスが好きになれない。世間は自社のサービスではなくそのプラットフォームが好きなのだ。

1度目の転職活動で解決したかった事柄は解決できたものの、入社前にはわからなかったこと、調査が甘かったことが多くこのような不満を抱えてしまった。 恐らく、実際の社風や休日制度を事前に知っていれば入社をしていなかった可能性も相当高い。 また、前々職では常駐請負だったので自社サービスに憧れていたが、やはりドッグフーディング出来る内容でないとモチベーションを高く業務を行うのは難しい。

2017/01/10 『Effective Python』とPython 3.6の関連を発見する

何となくPython 3.6のリリースノートや関連するブログのエントリを眺めていたら、第4章のメタプログラミングに関する内容をかなり書き換られることに気づいた。 メタクラスに関する内容なので少し苦戦したが、経過は以下のようにまとまっている。

いずれも、特殊メソッド __new__ や組み込み函数 type の煩雑さを避けることができている。

2017/02/01 「Python 3.6 リリースパーティ」に参加する

Python 3.6 リリースパーティに参加しました - 何かを書き留める何か

最初は聴衆として参加する予定であったが、Python 3.6関係で上記の発見があったのでLTで発表を行った。 内容も基調講演の石本さんの発表の一部を補完する内容でちょうどよかった。 無理してスライドを英語で書いたので『Effective Python』の著者であるBrettさんにも反応して頂けてうれしかった。

2017/02/24 転職を決意する

不満が出てきたから転職しようかな、という軽くて薄い動機だったのがこの日を境に強い決意となる。 この日に上司と所謂「働き方改革」に関する内容で真っ向から対立することとなった。 ベンチャーマインドを殊更前面に出すところとは自分は合わないんだなと強く感じた。

2017/03/18 『初めてのPHP』発売

『初めてのPHP』の査読を担当しました - 何かを書き留める何か

査読の実作業は2月前半に行った。仕事で心が荒んでいた状況での査読は癒しであり救いであった。 PHPをよく知らない状況で初心者の立場で査読を行った。 よりどころは公式ドキュメントであり、公式ドキュメントと違う用語を原著が採用していたりと大変であった。

2017/03/下旬 転職活動開始

採用サイトから応募したり、某コーディングテストの結果からオファーが来るサイト、某ドラフトサイト、前回とは異なるエージェントを駆使する。 前々職では郊外(婉曲表現)で夜遅くまで働かされていたので転職活動は有給を駆使する総力戦であったが、前職は都内だったので仕事帰りに訪問出来たりと相当楽であった。 転職活動で感じたのは、客ごとに高度にカスタマイズして提供する形は辛い、という事実である。

2017/03/26 多少、存在が認知されたような気がする

特に技術力に秀でているわけでもなく、社交性があるわけでもないが、PyCon JP 2016で意味不明のLTをしたり、リリースパーティで普通のLTをやったり、技術書を複数冊査読するという怪しげな経験、自称スウガクチョットデキルということが少しだけPythonのコミュニティで認知されたような気がする。顔がでかいから覚えやすいというのもあると思う。

なお、数学は学部2年から恩師と線型代数の自主セミナーを行い、卒論・修論グラフ理論整数論なので理学部数学科のゴリゴリの専門教育は受けていないが、似たようなことはやっている。 自分の弱点として多様体などの幾何方面が全く分からないこと、解析方面も怪しいこと、代数も加群を(van der Waerdenを読んだので)ほとんど知らないこと、がある。

2017/04/13 転職活動は進む

日記から怪文章を引用する。

フンザからは定員充足のためというお祈りメール。本当に充足した故なのかは神のみぞ知る。チケキャンも業界と仲良くならないと一気にヤバくなるので将来性はどうなんでしょう?

前々職から前職への転職の時も、お祈りメールを送ってきた企業がインサイダー取引の疑いで元会長が逮捕されたりと、こういうところで謎の強運を発揮するのが自分である。

2017/04/15 エンジニアの退職を知る

前々から愚痴めいた話はしていたが、とうとう5月末で退職するという話を聞いた。前職で不自然に感じたのは退職する事実を直前まで公表しないことである。 他部署ならともかく、自部署なら引き継ぎもあるし送別会もやらないと、となるので相当辛い。2月の決意がさらに強くなった。

2017/04/20 謎の眩暈が発生

PCに向かいながらクリーム玄米ブランを食べていたら突然世界が右回転した。耳鼻科を受診したが異常は見られず。以降、体調が悪い状態が続く。 ストレスだろうか?ずっと「プロダクトオーナーがチームを守らない」「スクラムマスターが過度に疲弊する」オレオレスクラムで開発が進み、エンジニア全員がストレス過多の状態になっていた。

2017/04/30 ぎっくり腰発生。救急車を自分で呼んで自分が搬送される。

突然、歩行困難になるほどのぎっくり腰が発生。相談ダイアルに電話したのちに救急車を呼ぶことに。 見知らぬ総合病院に運ばれて「座薬が効くんだよね~」という若い医師の指示のもと、いきなり座薬を投入される。 あまり効果はなかった。 有給とゴールデンウイークを駆使して9連休を作り出して安静にしていた。 何とか動けるようになったのがみどりの日あたり。

2017/05/28 敗者復活、現場は大荒れ。

今の会社から内定をもらう。 一度は落ちたものの、敗者復活戦が行われて復活した。 退職日は6月末となり、2ヶ月連続エンジニアが退職するのかと思っていたら来月も退職者が、という話になった。 ITを駆使して云々、をスローガンに掲げていたがその要となるエンジニアが相次いで退職するという状況はやはり異常であり悲しいことである。

2017/06/24 『Effective Debugging』発売

『Effective Debugging』の査読を担当しました - 何かを書き留める何か

査読自体は3月下旬から6月頭まで。ギリシャ語由来(?)の拡張高い英文を黒川さんが翻訳し、Linuxスペシャリストの大岩さんが監修でゴリゴリ補う現場をGithub上で見てしまい、ほとんど出る幕がなかった。Pythonに関する小姑めいた指摘ぐらいか。理論と実践に基づくいい本なのでぜひ買ってほしい。

2017/06/28 耳鳴り

日記から。

17:00ごろ左耳で耳なり。頭も痛い。職場環境のせいか?

この頃、午後あたりから耳鳴りや頭痛が起こるようになった。 職場環境(atmosphere) のせいか、職場環境(relationship)のせいか。両方だと思っている。

2017/07 無職の7月

去年も7月下旬は無職であった。まさか2年連続で誕生日を無職で迎えるとは思っていなかった。 お金がないのでダラダラ心を休めていた。 前職から退職時に渡すはずの書類が届かず手続きが遅れてしまった。困ってしまう。 住民税の金額が下がる程度に給与が減っていた。査定期間半年のうち1ヶ月いなかったのでボーナス0円とか、辞めるタイミングと業績がアレなのでボーナス0円という憂き目のせいである。 後者は仕方ないにしても、前者は許しがたいのでことあるごとに言いふらしていきたい。

日記を見ると、『Real World HTTP』や『プロフェッショナル SSL/TLS』、『詳説 正規表現 第3版』、本の査読2冊をやっていたことがわかった。 意外と暇じゃなかったんですね。 また『人工知能の核心』『失敗の本質』『GE 巨人の復活』も読んでいた。

2017/08 就職

PythonエンジニアとしてDjangoに本格的に使い始める。 今までDjangoはすごく苦手、と思っていたが苦手だったのはHTMLとCSSJavaScriptのフロント側だったことがわかった。 今でも苦手なのが辛いところである。

会社ではGitlabのCI機能をフル活用して前々職や前職で夢見た継続的インテグレーションや継続的デプロイに触れている。 まだ完璧ではないものの、いい感じになっている。

2017/08/17 『スラスラわかるPython』発売

『スラスラわかるPython』の査読を担当しました - 何かを書き留める何か

これはPython Mini Hack-a-thonでレビュワーを募集していたので条件反射で手を挙げてレビュワーになった。 今までは翻訳本だったので文章の構成に殊更指摘することはなく、翻訳の間違いや訳注の追加、原著の間違いを指摘するだけのレビューであったが、 この本の場合は文章の構成という未経験かつ難しい内容であった。 しかも、今まではすべてオライリーの本であり初心者向けといえどもレベルは高めであったが、この本はターミナルの使い方から始めるので専門用語で簡潔にまとめるといったことができず、 どうしたらわかりやすくなるかということも考える必要があり、今までの経験がそれほど役に立たないレビューであった。 幸い、たくさんのレビュワーの方の指摘や筆者や監修の頑張りによって内容がどんどん磨かれていったのでよかった。

2017/08/25 『PythonJavaScriptではじめるデータビジュアライゼーション』発売

『PythonとJavaScriptではじめるデータビジュアライゼーション』の査読を担当しました - 何かを書き留める何か

査読は7月に行った。恐らく原著者はPythonの専門家ではないので、それに由来する微妙な記述が大量にあったこと、JavaScriptの知識が怪しいので苦労したこと、地図と竜の関係を調べるのに半日かかったことなど思い出深い本である。地図と竜の関係なんて調べても知ってもプログラミング能力とは全く結びつかないが、こういうのを調べるのはとても楽しいことである。 この本での経験が今年後半の発表の下地になっている。

2017/09/07 PyCon JP Reject Conference 2017に登壇

PyCon JP Reject Conference 2017に登壇しました - 何かを書き留める何か

Python機械学習のツールとして注目されているがツール自体にも関心を持ってほしいな、とか今までの査読経験でポイントを抜粋して発表すれば万人に役に立つよね、とふわっとした動機で CfPを書くとモチベーションを維持することができない。 結局、15分程度の短い内容で充分であった。 『リーダブルコード』のダイレクトマーケティングめいた内容になったが、反応が良かったのはPythonの名前の上書きする事例だったので、 その話を膨らませてPyCon JPのLTにしようと思い立った。

2017/09/09 PyCon JP 2017 でLTをする

Pycon JP 2017 1日目に参加しました。 - 何かを書き留める何か

Pycon JP 2017 2日目に参加しました。 - 何かを書き留める何か

チケットを買ったのは入社前だったので自費で参加する代わりに自社ブースの業務を免除された。 講演よりも参加者と話すことが多かった。機械学習関連の発表が多かったのと、どうも心の琴線に触れる発表が少なかったから講演よりも会話に重きを置いた。 LTでは口から勝手に出てきた「idにだって人権がある」が相当反響があった。 2日目のLTでアンサーLTという前代未聞の出来事もあった。 内容を補完するいい内容でよかった。

去年のLTを覚えていた方も結構いて「去年も話されていましたよね」と話しかけてくださった。 どうせLTをやるならば思い出に残りたいものである。

2日目はいつもお世話になっているオライリーの方と世間話をしていた。 え?この本も担当していたのですか?という驚きが多かった。

2017/11/24 BPStudy #123に参加

BPStudy #123に参加しました - 何かを書き留める何か

PyCon JP 2017のメディア会議から続く技術書関連イベントの1つ。LT枠が公募で空いていたので参加した。 最初は「何に気を付けて査読をしているのか」という話にしようかと思ったが、5分なので思い切って内容を変更してクイズ形式に変更した。 ほとんどの題材は『PythonJavaScriptではじめるデータビジュアライゼーション』から採用した。 Tim Berners-Lee氏に関する問題は相当難しかったようである。

2017/12/16 Python Boot Camp in 埼玉に参加 & ぎっくり腰再発

Python Boot Camp in 埼玉 - connpass

会場の大宮に向かう直前の道中で再発した。 勇気をもってその場で参加を辞退して病院に行く選択肢もあったはずである。 TAは大学院生の基礎プログラミング演習以来であるが、内容は大学の講義よりも親切であったと思う。 大宮から家までは命がけで帰宅した。大宮駅のタクシーターミナルまでの道のりが一番つらかった。

全体的な反省

昨年から始まった技術書の査読から広がりを感じたイベントが多かった。 僕は他の人よりも誤植を見つけるのが早いらしく、前職でも現職でも言われる。 技術書査読というか、テクニカルレビュワーとして生活できたらそれはそれで素敵であるが、そんな人材を雇う出版社は存在するのだろうか。

技術的な話では継続してPythonがメインであるがソロソロ別の言語に挑戦して幅を広げたいと思っている。

プログラマ初心者向けの記事やエントリを読むと作りたいものを作ってナンボでしょ、という話が多いことに気づいた。 僕は何かを作りたいのではなく、Pythonという言語で書きたくて書いていることが多い。 手段と目的が逆なのである。 書類上の出身は工学部であるが、気持ちとしては数学出身であり、理論的なことが一番やりたいのである。 数学も工学の道具ではなく、それ単体で楽しい(そして簡単には理解できない)ものであり、言語もまたそれ単体で楽しいものである。