2018年前半に読んだ本
去年は割とノンフィクションの本を読めた。60冊弱くらい。その9割くらい、Twitterで雑な感想書いてあったのでまとめる。
前半は割と軽いものを読んでいた。コーヒーにはまったのでそれ関係が多かった。
この中で一冊挙げるなら、「マネージャーの最も大切な仕事」かな。最高なのでマネージャーじゃなくても読むべき。「シリコンバレー式 よい休息」も今でも読み返すいい本。
「アイヌと縄文 ――もうひとつの日本の歴史」読了。思った以上にアイヌ寄りの話だった。著者がアイヌ研究者だと後で知った。縄文時代にすでに現在の日本の範囲ほぼすべてに縄文人が広がっていたというところでびっくり。アイヌのイメージもだいぶ変わった。
— まがい (@xxmagai) 2018年1月3日
「自閉症スペクトラム 10人に1人が抱える「生きづらさ」の正体」読了。自閉症スペクトラムに関するわかりやすく全般的な解説。全般的だが網羅的かというとちょっと感じで、割とエッセイっぽい感じもする内容。まあ新書だし。自閉症スペクトラムに限らない気づきもいろいろあった。
— まがい (@xxmagai) 2018年1月15日
「地震前兆現象を科学する」読了。いわゆる地震予知に関する現時点での概要を把握できた。著者ら自身の研究に関する話題では多少身贔屓な感じもなくはなかったが、概ね嘘は書かれてなさそう。
— まがい (@xxmagai) 2018年1月16日
「吉田松陰 異端のリーダー」読了。割とニュートラルな視点からの吉田松陰の話。中盤ちょっと退屈だったが全体的にはまあ面白かった。個人的な好みとしてはもうちょっと証拠ベースで書かれてるのが読みたかったが。
— まがい (@xxmagai) 2018年1月21日
「江戸将軍が見た地球」読了。いわゆる鎖国してた江戸時代に、15代の将軍たちが海外とどう関わってたかみたいな話。一部将軍への認識に怪しいところがあったりもしたが、流れを掴むという意味ではまあ楽しめたが、人にすすめるレベルの本ではないかな。
— まがい (@xxmagai) 2018年2月18日
「戦前昭和の社会 1926-1945」読了。戦前~戦中の日本を、戦争自体からは離れたところから語っている本。前書きはアホっぽいけど本文はそういうのも薄れて、まあ普通に戦前の日本社会の姿が描かれていた。読んだ結果として元より薄かった戦前日本への印象が変わったかな。本としてのまとまりはそれなり
— まがい (@xxmagai) 2018年3月8日
「マネージャーの最も大切な仕事 95%の人が見過ごす「小さな進捗」の力」読了。邦題がゴミだが、内容は最高だった。必読。マネジメントの話でないとまでは言えないが基本的には生産性の話なので、すべての生産性が必要な人は読むべき。
— まがい (@xxmagai) 2018年3月24日
「コーヒーの科学 「おいしさ」はどこで生まれるのか」読了。最近コーヒーはまってるので読んでみたが、予想通りいい本だった。科学的にコーヒーを見ていく感じの話。参考になるところばかりだったが特に気になったのは、産地銘柄より焙煎度の方が味に影響はあるという話あたりか。
— まがい (@xxmagai) 2018年4月3日
「邪馬台国をとらえなおす」読了。考古学ベースで邪馬台国を見ていく感じの本。ほぼなにもわかっていないことがわかった。鏡と土器と墓について延々と語られていくが、データばかり多く本としてはあまり面白くはない。数字を出すのはいいけど、その数字がなにを意味するのかも並記してくれないと。
— まがい (@xxmagai) 2018年4月5日
「死刑執行人サンソン」読了。SBRの帯のアレ。なかなか面白い歴史読み物だった。フランス革命周りあまり知らなかったけど、これだけ読むと革命ってあれだね、ただのクーデターだね、みたいな感想。
— まがい (@xxmagai) 2018年4月14日
「もう一つの「バルス」 ―宮崎駿と『天空の城ラピュタ』の時代―」読了。ラピュタの裏話的なところは楽しく読めるが、関係者が割と若くして亡くなっているという話あたりはちょっとつらい。垣間見えるアニメ業界のブラックさも読む人によってはつらそう。まあ全体的には軽い読み物。
— まがい (@xxmagai) 2018年4月18日
「珈琲の世界史」読了。この間読んだ「コーヒーの科学…」と同じ作者。馴染の薄く、かつコーヒーとの関係性もちょっと薄い2章がちょっと退屈だった以外は面白く読めた。とりあえずこの2冊でしばらくコーヒーの本はいいかなという感じ。
— まがい (@xxmagai) 2018年4月22日
「コーヒー おいしさの方程式」読了。「珈琲の世界史」を読んだ後コーヒー関係の本はしばらくいいかな、と言ってたけどまだ同じ著者の本があって、しかもKindleでセールしてたのでつい買って読んでしまった。とはいえこれは旦部幸博の本というより田口護の本だった。
— まがい (@xxmagai) 2018年5月17日
「弁護士が教える分かりやすい「民法」の授業」読了。民法を大ざっぱに概観できる本。だいぶわかりやすかったと思う。民法に限らず法律はさっぱりだったけど、とりあえずこれ読むと民法というのがいったいなんなのか、民法ではどういうことが規定されているのか、あたりのイメージはつかめた気がする。
— まがい (@xxmagai) 2018年5月19日
「ヒトはなぜ先延ばしをしてしまうのか」読了。所々この解釈は恣意的では? みたいな個所はあったものの、総合的にはいい本だったかな。先延ばしに限らず、どうすればやれるか、みたいな話。先延ばしを軸に幅広くかつまとまってる本なので、この辺に興味がある人は読んどくといいんじゃないかな。
— まがい (@xxmagai) 2018年5月21日
「ハーバードの自分を知る技術」読了。自己啓発系のやつ。なんで買ったんだっけなこれ。内容的にはだいぶ実践寄り。まあ自分の能力を見直すきっかけにはなった。注釈の約半分が同じ一つの本なのは笑う。あとハーバードやめろ。
— まがい (@xxmagai) 2018年5月28日
「やり抜く人の9つの習慣」読了。こっちは副題にコロンビア大学とかついてる……。目標達成に関する短くまとまった本。言い切りがちだが、ある程度エビデンスベースかな。とにかく物事をやりきれない性質なので読んだが、既知の内容が半分以上、でもif-then planningの話なんかは知らなかった。
— まがい (@xxmagai) 2018年5月28日
「戸川純全歌詞解説集 疾風怒濤ときどき晴れ」読了。こういう本にあれこれ言うのは野暮だと思うので一言だけ、最高だった。
— まがい (@xxmagai) 2018年6月13日
「シリコンバレー式 よい休息」読了。原題は "Rest". 休息の話ではなく、休息による生産性向上の話。ちょこちょこ飛躍してるなあという感じはあったがまあある程度はエビデンスベースっぽい。ただそれ以上に偉人の経験則の紹介みたいのが多いのはちょっとうんざり。
— まがい (@xxmagai) 2018年6月13日
「nginx実践入門」読了。Nginx周りで公式リファレンスだけだといまいちわからない点があって買ってみたんだけど、その辺以外も満足。ちゃんと流れ追っての説明なのでわかりやすいし、説明の詳細さも過不足ない感じじゃないかな。これで足りなかったらオライリーのも買うつもりだったけど、一先ず不要そ
— まがい (@xxmagai) 2018年6月21日
「ヒトラーとナチ・ドイツ」読了。かなり網羅的で、最低限詳しいヒトラーとナチスに関する話。ヒトラーがどう行動して、その結果権力を得ていったかの流れがわかる。たまに根拠が不明な著者の意見も出てくるが、全体的には、詳しくない人が概要をつかむための本としていい感じじゃないかと。
— まがい (@xxmagai) 2018年6月29日
Laravel Mixというかwebpackでconsole.log()が消えないようにする
追記
Laravel Mixとwebpackのどっちが犯人なのか探ってたら、Laravel Mixが犯人であること、さらにじつはもうdrop_console
がデフォルトで無効になっていることに気付いた。
Remove drop_console option · JeffreyWay/laravel-mix@a9d2646 · GitHub
ということでこの記事にはもうなんの意味もない……。
追記終わり。
Laravel Mixが使っているwebpackが使っているUglifyJSにはdrop_console
というオプションがあり、これが有効だとconsole.log()
が消される。
アホなオプションなのでUglifyJSではデフォルトは無効のようだが、Laravel Mixかwebpackか知らんがどちらかでデフォルトで有効になっている。
こんなものはバグの温床でしかないので無効化したい。
以前までは、
mix.options({ uglify: { compress: { drop_console: false } } });
で行けたけど、(多分)uglifyjs-webpack-pluginが1.0になるあたりの変更で仕様が変わって、
mix.options({ uglifyOptions: { compress: { drop_console: false } } });
にしないとエラーになるようになった。
なお以下のようなエラーが出てた。
ValidationError: UglifyJs Plugin Invalid Options options['compress'] is an invalid additional property
Laravel 5.6.27以降でログアウト後のリダイレクト先を変更したいなら、logout()ではなくloggedOut()をオーバーライドする
5.7で開発中なんだが、ログアウト後のリダイレクト先を変更するのどうしたらいいか調べてたら、ソースコードを読む感じIlluminate\Foundation\Auth\AuthenticatesUsers
のloggedOut()
をオーバーライドするのがよさそうだったのだが、ググると同じクラスのlogout()
をオーバーライドする例ばかり出てくる。
なぜかなーとgit blame
したところ、割と最近実装されたメソッドのようで、そのせいだろう。
Update AuthenticatesUsers.php · laravel/framework@e4a00e8 · GitHub
ということで、5.6.27以降ならloggedOut()
が使えるので使おう。
<?php # ... class LoginController extends Controller { use AuthenticatesUsers; # ... protected function loggedOut(Request $request) { return redirect(route('my_login')); } # ... }
とかそんな感じでよさそう。
認証周りのカスタマイズの知見いろいろ溜まってきているので、そろそろ一回まとめたいなー。
LaravelのAuth::routes()で一部機能(ルート)を無効にする
Auth::routes()
の本体である、Illuminate\Routing\Router::auth()
を確認してて気付いたのでメモ。
<?php # ... Auth::routes([ 'register' => false, 'reset' => false, ]); # ...
これで新規登録とパスワードリセットが無効にできる。管理者だけが扱うようなアプリケーションでは使いそう。
まあ、ドキュメントに書いてある。
また、登録時のメールアドレスの確認を有効にするには、
<?php # ... Auth::routes([ 'verify' => true, ]); # ...
5.7からの機能っぽい。まあこれもドキュメントに書いてある。
なおルートの設定だけでは駄目っぽいので注意。
Composerのディレクトリが~/.config/composer以下になる場合
CentOS 7環境で、新規案件のためにLaravel入れたのだがlaravel
コマンドが入ってない。~/.composer/vendor/bin
にパスは通ってるのになあ、とよく見てみると、~/.composer/vendor/bin
自体がなかった。
もうちょっと調べてみると、~/.config/composer
というのがある。どうも~/.composer
ではなくこちらにインストールされているようだ。
また、Laravelのドキュメントに以下のようなことが書いてあった。
グローバルなComposerのbinディレクトリを$PATHへ登録してください。このディレクトリはオペレーティングシステムにより場所が異なります。通常は、以下の場所です。
- macOS:
$HOME/.composer/vendor/bin
- GNU/Linuxディストリビューション:
$HOME/.config/composer/vendor/bin
でも今まで同じ設定で動いてたしおかしいな、最近変更あったのかなとComposerのリポジトリ調べてみる。どうもこの辺で設定されている模様。
XDGがどうこうだとディレクトリが変わるらしい。さっそく環境変数をチェックしてみると、今まで使っていた環境(の一部、確認したのは)ではXDG_*
という環境変数はなく、しかし今回の環境ではXDG_RUNTIME_DIR
, XDG_SESSION_ID
と2つ設定されいた。
どうもこれが原因のようだ。しかしこのXDGというのはそもそもなんなのか? そしてなぜ今まで設定されていなかったのに、今回設定されているのか?
後者の疑問はまだ解決していないが、前者については解決した。ArchLinuxのWikiに詳しい情報があるが、freedesktop関係の、ユーザディレクトリ内のディレクトリ構成の規格関係らしい。そういえばなんとなく聞き覚えがあるような。
解決策として、生のパスを入れるのではなく、Composerを叩いてパスを教えてもらうことにした。
export PATH=$(composer config --global --absolute home)/vendor/bin:$PATH
GitHubの公開鍵が勝手に消えていた件
Ansibleのauthorized_keyでGitHubの自分の公開鍵を指定するみたいな使い方してたので気付いたんだけど、昨日、登録していた公開鍵(1つ中1つ)が消えていたっぽい。
身に覚えはなく、ブラウザ履歴や作業ログで消えた時間帯を確認してみても、やっぱりその時間帯にはGitHubにアクセスしてすらいない。
となるとアカウント情報漏れでもしたかな、となるが、MFAこそかけてないもののパスワードは使い回さないし、それも考えにくい。
一応GitHubのSecurity historyを確認してみると、いくつかのログインと、問題の公開鍵の削除、ほかには慌てて再追加した際のログだけ残っていた。
ログインに関してはすべて自分のログインでほぼ確定。
さらに、ほかのログにはIPアドレスなどが記録されているのだが、公開鍵の削除については記録されていない。
もう一つ、この公開鍵を登録したのは、削除された日時のほぼ丸一年前である。
ググってもそんな情報はなかったが、おそらく未使用のまま一年経った公開鍵は削除される、とかそういう機能がこっそりあるのではないかという結論に達した。
追記: なにかの参考になるのかもしれないので、同じ現象っぽいものメモ
githubで見に覚えのないpublic_key.deleteが記録されていて困惑している。ssh keyの登録は記憶にある通りなのだけれど。
— Yasushi Abe (@yasushia) October 29, 2018
So about a month ago one of my public keys was removed..
Chat Log Server / Message 133053 in #github
追記2: 手動で削除した場合もIPアドレスは記録されないらしい
ちなみに自分で削除したときもIPアドレスは記録されませんでした。
— Yasushi Abe (@yasushia) 2018年12月5日
追記3: 一年で消えていた人がもう一人確認されたので、この結論でそれなりに正しそう
ピンときたのでメールを検索してみたら、deleteの1年と1日前にA new public key was added to your account のメールがありました。
— Yasushi Abe (@yasushia) December 5, 2018
1年で勝手に削除っぽいですね。ありがとうございます。すっきりしましたw
Vagrant + VirtualBox + vagrant-vbguestでCentOSでGuestAdditionsがうまく入らない場合
雑な記事注意。
Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-862.14.4.el7.x86_64 VirtualBox Guest Additions: Starting. VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while. This system is currently not set up to build kernel modules. Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-862.14.4.el7.x86_64 An error occurred during installation of VirtualBox Guest Additions 5.2.22. Some functionality may n ot work as intended. In most cases it is OK that the "Window System drivers" installation failed. Redirecting to /bin/systemctl start vboxadd.service Job for vboxadd.service failed because the control process exited with error code. See "systemctl st atus vboxadd.service" and "journalctl -xe" for details.
こんな感じのログ出てたら、見るべきは一行目。
[vagrant@localhost ~]$ yum list installed | grep kernel kernel.x86_64 3.10.0-862.14.4.el7 @koji-override-1 kernel-headers.x86_64 3.10.0-957.1.3.el7 @updates kernel-tools.x86_64 3.10.0-862.14.4.el7 @koji-override-1 kernel-tools-libs.x86_64 3.10.0-862.14.4.el7 @koji-override-1
多分こんな感じになってるので、
sudo yum update kernel
https://github.com/dotless-de/vagrant-vbguest/issues/311
確認してないけど、
kernel-devel-`uname -r`
これがよくないのかな。