「OSGirls」を読んだ

技術書典6において販売されていた本書を買いました(BOOTHで電子版を販売中)。

booth.pm

結城浩さんの「数学ガール」をもじったタイトルで、中身もそれっぽくなっています。ただしコンテンツはOS。これだけ見ると出オチ感満載ですが、中身もしっかりしていました。

小難しい理屈をこねるのではなく、初心者がつまづきがちな以下の二点を意識してそれをフォローするように書かれています。

  • 「とりあえずなんでもいいから動くものがないとわからん」: 市販のOS関連書籍は動くものを作るまでの道のりが長かったり、そもそもコードが一行も無かったりする。本書は極めて単純なUEFIアプリを使ってうまくそれを解決している
  • 「専門用語やその意味がさっぱりわからん」: 知ってる人からすると「歴史的事情」とか「こうなってるからこうなってる」としか言いようがない、たとえばx86系CPUのレジスタ命名規則など。本書は先輩から後輩との対話というかたちでそれらを平易に説明している

現在はさわりの部分までしかありませんが、筆者の気が向けば続きを書いてもらいたいものです。

最後になりますが、最初の超展開が好きです。この時点で価格(500円)だけの価値はあったかと。

技術書典6で技術同人誌を販売します

4/14の技術書典6において「う 28 windhole」名義でLinuxカーネルを中心とした技術系同人誌を6冊販売いたします。

techbookfest.org

目玉商品は新刊の「Linuxのプロセススケジューラ バージョン0.01から5.0まで」です。これはLinuxカーネルのプロセススケジューラの歴史をLinux誕生時のバージョンv0.01から最新安定版のv5.0までに入った主な機能を紹介するという本です。紙版と電子版を販売します。

f:id:satoru_takeuchi:20190412213220j:plain
技術書典新刊「Linuxのプロセススケジューラ バージョン0.01から5.0まで」

既刊5冊についての情報は以下boothのページをごらんください。

windhole.booth.pm

boothには電子版しかありませんが技術書典では紙の本も販売します。新刊もいずれboothで電子版を販売予定ですが、時期は未定です。

その他細かい注意事項を書いておきます。

  • 紙の本は2000円です。ただし紙の本を複数冊購入していただいたかたは2冊目以降が割引されて1500円になります。
  • 電子版は1000円です。
  • 現金決済のみです。
  • お釣りには限りがあるので、できればおつりがでないようにしていただけると助かります。

当日はこれらの本の編集者である風穴さんと2人で売り子をしています。ご興味のある方は現地でお会いしましょう。

「コーヒーが廻り世界史が廻る」を読んだ

最初のほうがコーヒーがどこから始まったのかという伝説や昔話から始まり、そこからどのような経緯で世界に広がっていったのかを扱った本です。序盤から中盤にかけては世界史の中でコーヒーが重要な位置に次第にのぼっていくが見られます。後半は重要イベントの紹介をしつつ、節々にコーヒーが出てくる、といったものです。両者の話のタイプは全然違いますが、どちらも面白いです。途中で砂糖の世界史と内容が重なる場面があるのでこちらも併せてみると楽しいと思います。

カメラ買ってから一か月経った

2/22にカメラを買ってからだいたい一か月が経ったので買った経緯とか、その後思ったことなどを羅列。

  • 入門するにあたって様々な知人友人に相談した。彼らは皆IT技術者である。ITのことについて同レベルのことを聞くと「それくらい自分で考えろよ」と言いそうだが、カメラについては赤子に対するように懇切丁寧に教えてくれる
  • カメラが届く前に、勧められた入門書を買う。最初はほとんど意味がわからなかったが、後で実際に撮りながら見るとなるほどと納得することばかりだった。今後も逐次参照したい
  • もともと摂りたかったものは次の通り
    • 落ち着きのない子供
    • 動植物。小さいのから大きいのまで
    • かっこいい風景(優先度はどちらかというと低い)
    • 当時息子が興味を持ち始めていた星空(優先度はどちらかというと低い)
  • とりあえずSonyのα6400のダブルズームレンズキットマクロレンズを購入
    • キットレンズのうちの標準ズームのほうは小さいので持ち運びがとても楽。街を歩く時はこれがよいだろう。良くも悪くも撮れるのは肉眼で見られるものに近いので、同じくらいの小ささで、かつ、かっこいい風景が撮れるレンズがあるといいのかもしれない
    • 私の望むものは広角レンズではなかろうかという声が挙がっているので近いうちに試してみる
    • キットレンズのうちの望遠ズームのほうは荒ぶる息子を撮るのにとてもよい。近づくとカメラを破壊しようとしてきて危険なのでこれくらいは必要。あと動物園に行ったときには良い写真がたくさんとれた
      • 以前人に試させてもらった望遠レンズ(型番は忘れた)のほうが遥かにズームできたので羨ましいなあと思ったが、こっちのほうがだいぶ軽いので、さしあたり息子やら遠くの動物やらを撮る用途にはこれを使う
    • マクロレンズはとにかく素晴らしい。日用品、および小さな動植物を撮るときにはこれがベスト。その一方でデカくて重いので、家族で出歩くときに使うには苦しい。一人の時間でその辺をうろつくとき用に使う。
    • 星空用レンズについては、息子がしばらくすると星空に興味が無くなったらしいので買わなくてよかった
  • [instagram]https://www.instagram.com/satorutakeu/?hl=jaとかに上げる写真としてはwifi経由でスマホにDLした数百KB程度のjpegで十分
  • PCで高解像度版の写真を見ると「ここまで綺麗なのか」と驚いた
    • ついでにいうとrawのサイズのデカさにもびっくりした。ここ数日一日数百枚撮っているのだが、それだけで数十GB食う。ストレージ容量が足りない
    • 手持ちの非力なノートPCでは写真の編集はおろか画面に表示するだけでもけっこうもたつく。計算リソースが足りない
    • 同、今は13インチのディスプレイで見ているが、大きな画面でも見てみたい
  • 一枚に必要十分のことが表現されていれば最高で、過不足あればどんどんつまらなくなるというバランスが面白い。適当に撮ったものが良く見えたり、考え抜いて撮ったものがつまんなかったり
  • 今後色々覚えることはあるだろうけど、まずは欲望のおもむくままに適当に撮りまくって理屈は後から考えるほうが幸せだし上達すると思うのでそうする。仕事じゃなくて趣味だし

言葉をどう受け取るかは人それぞれ、かつ、多様ということを学んだ話

はじめに

最初に言っておきますが、とくにスカっと結論が出るような話ではないです。

昨日ふと「行為の否定」を「人格の否定」と捉える人がどれだけの割合でいるのか、人格の否定ととらえた場合はどういう感情が湧くのだろうか、ということに興味があってtwitterでアンケートを取ってみました。

わたしはソフトウェア開発に携わっていて、かつ、フォロワーも同業が多いだろうということで、コードレビュー*1を題材にしました。

「50-60人くらい答えてくれたら面白いな~」と思っていたのですが、最終的には3705人もの人から回答がありました。

設問文面については次のように考えて作りました。

  • いずれかの項目に誘導するような書き方にはしない
  • 「人格の否定」ではなく「行為(コーディング)の否定」であることを表すために「このコードは~駄目です」という書き方にした
  • 行為の否定は根拠があるものだということを表すために「このコードは"こういう理由で"駄目です」、および、「理由は妥当なもの」という書き方にした
  • 怒りや呆れなどのネガティブな感情を(少なくとも見た目上は)込めていないという意味で「口調は優しくも厳しくもないニュートラルなものとする」という書き方にした

単にデータだけを見ると「へぇ、なるほどね?」くらいで終わりです。ところが今回は、それ以外のところで考えさせられることがあったので本エントリを書きました。

何が起きたか

「自分はこう解釈した、こういう例があった」と返信ないし引用RTによって教えてくれたかたが非常に多かったです。わたしはtwitterのアンケート機能が好きでよく使うのですが、いつもは回答数の多寡によらず、こんなことはないです。

これら個々人の解釈が面白かったので列挙します。

  • 誤りを指摘してくれて感謝
  • フィードバックがあるだけでありがたい
  • 「やってしまった」と思って落ち込む、ないし自分に腹が立つ
  • 知見が増えるのでうれしい
  • 人格否定ではなくコードの否定であり、かつ、理由も納得できるので問題ない
  • 人格否定ではなくコードの否定なのはわかるが、「駄目です」という言い回しが嫌
  • 仕様を理解させてからコーディングさせてほしい
  • お金もらってるからしょうがない
  • 文面だと表現がキツく見えるので表現に気を付けてほしい # 例として絵文字をつける、などが挙がった
  • 対案を出してほしい
  • 何が妥当かによる
  • 「自分ならばこうする」「こうしたほうがいい」などと表現をやわらかくする
  • 誰に言われるかによる
  • レビューアのことを厄介者だと思う
  • レビューアのことを凄いと思う

これらの多様はもちろん、設問を私の意図と異なる解釈をされていることが多々あったのも驚きました。

わたしの意見

せっかくなので、わたしの考えについても単に「感情に変化は無い」だけではなく、ある程度詳しく書いてみます。

感情に変化が無い理由は「レビューアが否定しているものは人格ではなくコードだから」です。

言い回しについては次のようなことを思います。

  • 何かあればどんどん指摘してほしい。なぜならレビューの目的はコードをよいものにすることであって、それ以上でもそれ以下でもない
  • 本来言いたいことが伝わらないほどオブラートに包んだ言い回しは、意図を確認し直す手間がかかるだけなのでやめてほしい。例えば「わたしはこうしたいが…」が実質的に「こうしろ」を意味するなど
  • 言葉を荒げたりするのはレビューに何の寄与もしないし萎縮するのでやめてほしい

こういうことをされたら絶対に嫌だと思うことは次の通り。

  • 人格否定
  • 好みの問題なのに駄目と断言したり自分のやりかたにしろと命令してくる
  • 状況によって言ってること、および発言時の感情表現がバラバラ

その一方で、レビューをする側に立ったときには次のようなことを意識しています。

  • コードが仕様に従っていないなど、明らかに誤っている場合は「それはこれこれの理由によって間違っている」と言う
  • 好みの問題なら「そうした理由は何ですか。わたしはこれがいいとおもう」という。わたしの言うとおりにしてほしいのではなく「どっちがいいか一緒に決めましょう」という意味
  • 意図がわからなった場合は「これはどういう意味ですか」と聞く。責めているのではなく単なる確認

なるべく「否定しているのはあなたではなくコード」という意図がわかるようにソフトに言おうとはしますが、実際にできているかは不明です。

おわりに

今回の結果を受けて、わたしは次のようなことを思いました。

  • (表題の通り)言葉をどう受け取るかは人それぞれ、かつ、多様
  • どれも合ってるとか間違っているとかいうことはなくて、その人が事実そう感じるだけ
  • 全員が満足するレビューは難しい

最後のところを少し補足します。このようなときに「話し合って互いに幸せになれるやり方を見つけよう」という方法をとることもあります。しかしレビューをし合う人たちの「どうしても譲れない線」がぶつかり合っている場合の解決方法がわたしにはわかりません。たとえば次のような場合です。

  • Aさんは「直してください」という命令型の指摘そのものが受け入れがたい
  • Bさんは持って回った言い回しをするのが耐え難い

わたしとしては「どうしても譲れない線がぶつかった場合はどちらかが去るしかない、そのほうがお互い幸せなのでは」と思います。

なんかいい方法ないですかね。

*1:ソフトウェアのソースコードを書いた後で人に見てもらって誤りや改善点を探す工程

「カメラの教科書」を見た

今年から写真を趣味にしてみるかと思ってたときに人に勧められた本です。他の本を見たことがないので比較はできないのですが、いままでカメラを持ったことがなくて一切知識が無い今の私に必要十分なことが書いてあったと思います。カメラが届く前に見てもさっぱり意味が分からなかったのですが、使いながら改めて見てみると次第にわかるようになってきました。今後も実際にいろいろ撮影しつつ、わからないことがあったらこの本を見る、というような使い方でしばらくやっていこうと思います。

30分で論文流し読みシリーズ2: 「U-root: A Go-based, firmware embeddable root file system with on-demand compilation」

U-root: A Go-based, firmware embeddable root file system with on-demand compilationの感想など。

  • 実際の所要時間 30分

  • 概要

  • 感想

    • 実行が高速で、かつ(Cより)安全かつコンパイルが高速なGoが出てきたからことできたこと
    • バイナリではなく、それよりはるかにサイズが小さなソースコードを組み込むというアイデアは面白い
    • ソース、とくにcmds以下がGoを覚えるための練習として役立ちそう