何かを書き留める何か

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

2018年に参加したアドベントカレンダー

焼き直し、または進化の過程

12月はアドベントカレンダーの季節である。 月初はまだ暖かく、今年は楽に過ごせそうだなと高を括っていたが、急に寒くなり、とうとう暖房をつけるハメになった。

今回、参加したアドベントカレンダーは現在所属している企業のエンジニアが書くアドベントカレンダーである。

qiita.com

ところが、12月は妙に忙しく、新規にネタを温めることができなかった。 ひとまず、ここの怪文章置き場からネタを掘り返して焼き直すことにした。

画像のバイナリ列から画像のフォーマットを判定する

qiita.com

これは前職で遭遇した拡張子がイマイチ信頼できない画像ファイルの取り扱いの記事の焼き直しである。

xaro.hatenablog.jp

今回、遭遇したシチュエーションは、エンジニア以外のメンバーがGitレポジトリに画像をアップロードする際に、想定した形式であることをチェックするためである。 前回ほどは殺伐とした状況ではないが、一々形式チェックするのも面倒である。 そのため、レポジトリにプッシュした際にCIを走らせてチェックを行うことにした。 前回はサーバー内部で使う想定だったので単純な函数であったが、今回はCI上で動かすのでstdin経由でぶち込む想定で実装した。

PythonesqueなPythonオブジェクトを作ろう

qiita.com

これは「役に立たないプログラムを書く」というまさに何も役に立たない取り組みの焼き直しである。

xaro.hatenablog.jp

xaro.hatenablog.jp

前回の記事の動機付けとしてはMonty Pythonのスケッチから着想をえた、という構成にした。 今回は、それを意識しつつも荘子の無用の用の概念を強く意識して書いた。

なぜ「役に立たないプログラムを書く」という発想に至ったのか。 単なる天邪鬼な性格の故、とも言えるし、「プログラミングは目的ではなく手段」という言説に対する反例を示したかった、とも言える。 「プログラミングは目的ではなく手段」を信奉するのは別に個人の自由であるが、それをありがたい御題目として他人に押し付けられるのが嫌なのである。 プログラミングそのものもそれ単体で十分技芸であり、それ自身を目的としてもよいのである。 それらのエントリが技芸に足るのか、は別の問題であるが。

役に立たないと言いつつも、「ランダムにイテレートされるリスト」は何かに役に立ちそうな気がする。 もっとも、何が何に役に立つのかなど、浅はかな自分にわかりやしないのであるが。

『Python機械学習クックブック』の査読を担当しました

今すぐ使えるクックブック

2018年12月15日にオライリージャパンから『Machine Learning with Python Cookbook』の邦訳『Python機械学習クックブック』が発売される。 この度、邦訳の査読者として参加させていただいた。 オライリーの方から話があったのは2018年10月中旬であった。

www.oreilly.co.jp

データの取り扱いから加工、機械学習までよくあるケースをクックブック形式にまとめてある。 一通り学んだ人がいざ問題に取り掛かる際にパッと開いて参照したり、とにかく目の前にある問題をどうにかするための本である。 紹介文にある

「やりたいこと」「困っていること」に答えてくれる一冊です。

がこの本の特徴を一言で表している。すでにやりたいことがあり、それをどうしたら解決できるか、という本である。 通しで読む必要がないのでとりあえず購入して机の上においておく、という作戦がおすすめである。 コンパクトにまとまっているので鞄に入れて運ぶこともできる。

『エレガントなSciPy』の査読を担当しました

興味深い事例と学ぶSciPy

2018年11月10日にオライリージャパンから『Elegant SciPy』の邦訳『エレガントなSciPy』が発売される。 この度、邦訳の査読者として参加させていただいた。 オライリーの方から話があったのは2018年9月中旬であったが、『Elegant SciPy』の話題は2017年のPyCon JPでオライリーの方と雑談をした際に話題に上がっていた。

www.oreilly.co.jp

具体的な題材を中心に、NumPy、SciPyを中心に科学技術計算をPythonでどのように行うか、を説明している。 題材としては筆者たちの専門である生物系の分野からの採用が多く、序盤から遺伝子の話題が登場する。 とはいえ、生物系の話題に疎くても解説とソースコードを読み解けばNumPy、SciPyのすごさが理解できると思う。 Pythonのバージョンも3系であるのがうれしい限り。

本文中、セルゲイ・プロクジン=ゴルスキーが撮影したカラー写真を復元する題材がある。 同一の被写体を3色のフィルタを通して撮影することでカラー写真を構成する手法である。 その被写体は教会のステンドグラスで、神ヤハウェ使徒ヨハネヨハネの弟子プロコロが描かれている。 以前、読んだ本の影響でヨハネとプロコロの関係を詳しく知りたくなった。 その結果、ヨハネがプロコロを通じて『ヨハネによる福音書』を口述筆記*1している様子を描いたのであろう、ということが分かった。 査読者の指摘としては、プロコロという名前の訳出方法(英語の発音通り?新共同訳に寄せる?)に留まったが、こういう寄り道が楽しいのである。

閑話休題。最近のPython本は機械学習系が多かったが、この本は(scikit-learnも登場するが)Pythonの昔からのお得意様である科学技術計算がメインである。 Web系とも、機械学習系とも違う、科学技術計算の面白さを堪能してほしい。

*1:伝承であり、実際に誰が書いたのかはどのような立場をとるのかによると思う。