てきとうなメモ

本の感想とか技術メモとか

紙のコミックとKindleコミックで発売日が同じもの 2016年05月分

i・ショウジョ+ カラー版 7 (ジャンプコミックスDIGITAL)

i・ショウジョ+ カラー版 7 (ジャンプコミックスDIGITAL)

ものの歩 3 (ジャンプコミックスDIGITAL)

ものの歩 3 (ジャンプコミックスDIGITAL)

れっつ!ハイキュー!? 3 (ジャンプコミックスDIGITAL)

れっつ!ハイキュー!? 3 (ジャンプコミックスDIGITAL)

ハイキュー!! 21 (ジャンプコミックスDIGITAL)

ハイキュー!! 21 (ジャンプコミックスDIGITAL)

ブラッククローバー 6 (ジャンプコミックスDIGITAL)

ブラッククローバー 6 (ジャンプコミックスDIGITAL)

食戟のソーマ 18 (ジャンプコミックスDIGITAL)

食戟のソーマ 18 (ジャンプコミックスDIGITAL)

天神―TENJIN― 3 (ジャンプコミックスDIGITAL)

天神―TENJIN― 3 (ジャンプコミックスDIGITAL)

BUNGO―ブンゴ― 5 (ヤングジャンプコミックスDIGITAL)

BUNGO―ブンゴ― 5 (ヤングジャンプコミックスDIGITAL)

てらほくん (ヤングジャンプコミックスDIGITAL)

てらほくん (ヤングジャンプコミックスDIGITAL)

ひゃくにちかん!! 1 (ヤングジャンプコミックスDIGITAL)

ひゃくにちかん!! 1 (ヤングジャンプコミックスDIGITAL)

もぐささん 10 (ヤングジャンプコミックスDIGITAL)

もぐささん 10 (ヤングジャンプコミックスDIGITAL)

もののがたり 4 (ヤングジャンプコミックスDIGITAL)

もののがたり 4 (ヤングジャンプコミックスDIGITAL)

グラビアトリ 3 (ヤングジャンプコミックスDIGITAL)

グラビアトリ 3 (ヤングジャンプコミックスDIGITAL)

元ヤン 4 (ヤングジャンプコミックスDIGITAL)

元ヤン 4 (ヤングジャンプコミックスDIGITAL)

マドンナはガラスケースの中(2) (リュエルコミックス)

マドンナはガラスケースの中(2) (リュエルコミックス)

アナグラアメリ 1 (マーガレットコミックスDIGITAL)

アナグラアメリ 1 (マーガレットコミックスDIGITAL)

スイートソロウ 3 (マーガレットコミックスDIGITAL)

スイートソロウ 3 (マーガレットコミックスDIGITAL)

ハル×キヨ 9 (マーガレットコミックスDIGITAL)

ハル×キヨ 9 (マーガレットコミックスDIGITAL)

雛鳥のワルツ 5 (マーガレットコミックスDIGITAL)

雛鳥のワルツ 5 (マーガレットコミックスDIGITAL)

彼と恋なんて 2 (マーガレットコミックスDIGITAL)

彼と恋なんて 2 (マーガレットコミックスDIGITAL)

エスカレーターは2列で立っている方が効率が良いけどそれを強制するのはうまくいかなそうという話

ロンドン地下鉄で実験した「エスカレーター輸送効率」のシミュレーションに「日本でも徹底周知すべき」「このモデルは日本では適合しない」などの意見殺到! - Togetterまとめ

日本だともっと詰まっているから歩いた方が効率が良いんじゃないとツッコミがあるけども、一応元記事を読むと高さ23mある長めのエスカレーターの話で、そもそもあまり歩く人がいないという前提。

The simulation that proves standing only escalators work on the Tube - Telegraph

Only a few people are willing to walk up long escalators, which could leave crowds at the bottom of the escalator as people wait to stand on the right hand side.

Its escalators are over 23 metres tall, making them taller than what most people are willing to walk - which research indicates is 18.5m.

で、前後の空けた方が良いよねとか、となりに知らない人がいると気になるという点もテレグラフ紙がこちらの記事で指摘済みの話ではある。

We Londoners will explode with rage if we have to stand on the escalator - Telegraph

So it makes sense, but there are a number of reasons to oppose this change.
First, it’s a bit dictatorial. Okay, preventing any passengers from bounding up the escalators during rush hour may result in shorter average journey times, but it also limits people’s choices.
(中略)
Second, it will be very, very difficult to enforce. Because commuters are used to walking up on the left, they will be very annoyed if anyone is standing in front of them and some are likely to vent their frustration in a way that may not be civil.
(中略)
Third, will Londoners want to stand two abreast? At the moment, it’s customary on escalators to leave an empty step between you and the person above and below you. To stand any closer would be an invasion of each other's personal space. But standing two abreast would mean you’d end up even closer to a total stranger

急いでいる時こまるよね、歩こうとしている人が前の人が止まっているとイライラするよね、隣や前後にくっつきすぎると個人的なスペースの侵害だよね、と言っている。

まあ、日本人もイギリス人も考えることはあまり変わらないな。

gemでnokogiriがインストールできない

nokogiriにいつからかlibxml2やlibxsltをバンドルするようになった。

これらをコンパイルするためにmini_portile2を利用しているのだが、内部的に開発用ツールを呼んでいるので、開発用のツールが入っていないとインストールに失敗する。
Cのライブラリをコンパイルするのでgccが必要だし、パッチをあてているのでpatchかgit(git patchする)が必要である

システムのlibxml2やlibxsltを利用したい場合や、これらのツールをインストールしたくない場合は、以下ののように明示的にシステムのライブラリを利用するようにオプションをつける。

$ gem install nokogiri -- --use-system-libraries

bundlerの場合は以下のようにする。

$ bundle config build.nokogiri --use-system-libraries
$ bundle install

Linuxのディストリビューションのバージョンを取得

例えばCentOSだと/etc/redhat-release→/etc/centos-releaseを見ればわかるのだが、世の中的にはどうしているのかなと思ってAnsibleのコードとか読んでみたけど、やっぱり/etc/redhat-release見ているだけだった。

ansibleはplatform.dist()[1]を取得していて、platform.dist()は/etcからリリースファイルにマッチするファイルを読み込んで、ファイルの内容に対してさらに正規表現でバージョンなどを取得している。リリースファイルの正規表現やリリース情報の正規表現は以下。

_release_filename = re.compile(r'(\w+)[-_](release|version)')
_lsb_release_version = re.compile(r'(.+)'
                                   ' release '
                                   '([\d.]+)'
                                   '[^(]*(?:\((.+)\))?')
_release_version = re.compile(r'([^0-9]+)'
                               '(?: release )?'
                               '([\d.]+)'
                               '[^(]*(?:\((.+)\))?')

結構泥臭い。あと、platform.distは3.5でdeprecatedになっていて3.7で削除されるらしいので、Ansible側のコードは書き直しが必要になってくるのかな。

/etc/init.d/xxxを直接起動してもsystemctl経由になる

$ sudo /etc/init.d/hello start
Starting hello (via systemctl):                            [  OK  ]

従来のinit.dの起動スクリプト直接実行しても、こんな感じでsystemctl経由で起動される。

init.dの起動スクリプトは/etc/init.d/functionsで処理されている。/etc/init.d/functionsは起動スクリプトを実行する際の便利なシェル関数群だったのだが、CentOS7ではsystemctlへのリダイレクトも実施している。

if [ $PPID -ne 1 -a -z "$SYSTEMCTL_SKIP_REDIRECT" ] && \
                ( /bin/mountpoint -q /cgroup/systemd || /bin/mountpoint -q /sys/fs/cgroup/systemd ) ; then
        case "$0" in
        /etc/init.d/*|/etc/rc.d/init.d/*)
                _use_systemctl=1
                ;;  
        esac
fi

上記の部分で/etc/init.d/*や/etc/rc.d/init.d/*のスクリプトは_use_systemctlフラグを立てられる。

で、/etc/init.d/functionsの最後の方で

if [ "$_use_systemctl" = "1" ]; then
        if  [ "x$1" = xstart -o \
                "x$1" = xstop -o \
                "x$1" = xrestart -o \
                "x$1" = xreload -o \
                "x$1" = xtry-restart -o \
                "x$1" = xforce-reload -o \
                "x$1" = xcondrestart ] ; then

                systemctl_redirect $0 $1
                exit $?
        fi
fi

となりsystemctl_redirectを実行され、systemctl_redirectは

systemctl_redirect () {
        ...
        action "$s" /bin/systemctl $options $command "$prog.service"
}

とsystemctlを実行している。

というようなスクリプトになっているのでsystemctl経由で呼ばれないようにする方法はいくつかある。


環境変数SYSTEMCTL_SKIP_REDIRECTを1の設定して起動するのが一番正規の方法だろう。
また、処理が/etc/init.d/functions経由なので/etc/init.d/functionsを読み込んでいなければ、そのままのスクリプトとして実行される。
他にも、スクリプト名が/etc/init.d/*や/etc/rc.d/init.d/*でなければ実行されないので

$ cd /etc/init.d
$ sudo ./<サービス名> start

とかやっても、(systemctl関係なく)そのまま起動されるだけである。

ちなみにsystemctlの方でちゃんと設定している場合はinit.dの起動スクリプトは以下のようなものでも良い。

#!/bin/sh
. /etc/init.d/functions

まあ、systemd対応しているものにわざわざinit.dの起動スクリプトを用意する必要性はないと思うが。

紙のコミックとKindleコミックで発売日が同じもの 2016年04月分

7thGARDEN 5 (ジャンプコミックスDIGITAL)

7thGARDEN 5 (ジャンプコミックスDIGITAL)

とんかつDJアゲ太郎 6 (ジャンプコミックスDIGITAL)

とんかつDJアゲ太郎 6 (ジャンプコミックスDIGITAL)

カラダ探し 7 (ジャンプコミックスDIGITAL)

カラダ探し 7 (ジャンプコミックスDIGITAL)

コントラスト88 1 (ジャンプコミックスDIGITAL)

コントラスト88 1 (ジャンプコミックスDIGITAL)

ドラゴンボール超 1 (ジャンプコミックスDIGITAL)

ドラゴンボール超 1 (ジャンプコミックスDIGITAL)

μ&i 6 (ジャンプコミックスDIGITAL)

μ&i 6 (ジャンプコミックスDIGITAL)

火ノ丸相撲 9 (ジャンプコミックスDIGITAL)

火ノ丸相撲 9 (ジャンプコミックスDIGITAL)

灼熱の卓球娘 3 (ジャンプコミックスDIGITAL)

灼熱の卓球娘 3 (ジャンプコミックスDIGITAL)

遊☆戯☆王ARC-V 1 (ジャンプコミックスDIGITAL)

遊☆戯☆王ARC-V 1 (ジャンプコミックスDIGITAL)

昼のセント酒 (幻冬舎単行本)

昼のセント酒 (幻冬舎単行本)

それでも君が 2 (マーガレットコミックスDIGITAL)

それでも君が 2 (マーガレットコミックスDIGITAL)

ケダモノ彼氏 12 (マーガレットコミックスDIGITAL)

ケダモノ彼氏 12 (マーガレットコミックスDIGITAL)

センセイ君主 9 (マーガレットコミックスDIGITAL)

センセイ君主 9 (マーガレットコミックスDIGITAL)

婚約生 3 (マーガレットコミックスDIGITAL)

婚約生 3 (マーガレットコミックスDIGITAL)

虹色デイズ 12 (マーガレットコミックスDIGITAL)

虹色デイズ 12 (マーガレットコミックスDIGITAL)

年下の男の子 3 (マーガレットコミックスDIGITAL)

年下の男の子 3 (マーガレットコミックスDIGITAL)

木陰くんは魔女。 1 (マーガレットコミックスDIGITAL)

木陰くんは魔女。 1 (マーガレットコミックスDIGITAL)

木陰くんは魔女。 2 (マーガレットコミックスDIGITAL)

木陰くんは魔女。 2 (マーガレットコミックスDIGITAL)

紙のコミックとKindleコミックで発売日が同じもの 2016年03月分

ぷにんぷにんぷ (幻冬舎単行本)

ぷにんぷにんぷ (幻冬舎単行本)

しらたまくん 6 (ヤングジャンプコミックスDIGITAL)

しらたまくん 6 (ヤングジャンプコミックスDIGITAL)

グラビアトリ 2 (ヤングジャンプコミックスDIGITAL)

グラビアトリ 2 (ヤングジャンプコミックスDIGITAL)

ゴールデンカムイ 6 (ヤングジャンプコミックスDIGITAL)

ゴールデンカムイ 6 (ヤングジャンプコミックスDIGITAL)

テラフォーマーズ 16 (ヤングジャンプコミックスDIGITAL)

テラフォーマーズ 16 (ヤングジャンプコミックスDIGITAL)

ノー・ガンズ・ライフ 3 (ヤングジャンプコミックスDIGITAL)

ノー・ガンズ・ライフ 3 (ヤングジャンプコミックスDIGITAL)

ボクガール 9 (ヤングジャンプコミックスDIGITAL)

ボクガール 9 (ヤングジャンプコミックスDIGITAL)

ヤスミーン 3 (ヤングジャンプコミックスDIGITAL)

ヤスミーン 3 (ヤングジャンプコミックスDIGITAL)

リクドウ 7 (ヤングジャンプコミックスDIGITAL)

リクドウ 7 (ヤングジャンプコミックスDIGITAL)

干物妹!うまるちゃん 8 (ヤングジャンプコミックスDIGITAL)

干物妹!うまるちゃん 8 (ヤングジャンプコミックスDIGITAL)

それでも君が 1 (マーガレットコミックスDIGITAL)

それでも君が 1 (マーガレットコミックスDIGITAL)

インディゴの夜 4巻 (デジタル版ビッグガンガンコミックス)

インディゴの夜 4巻 (デジタル版ビッグガンガンコミックス)

ハンキー・ドリー 1 (マーガレットコミックスDIGITAL)

ハンキー・ドリー 1 (マーガレットコミックスDIGITAL)

バディゴ! 4 (りぼんマスコットコミックスDIGITAL)

バディゴ! 4 (りぼんマスコットコミックスDIGITAL)

町田くんの世界 3 (マーガレットコミックスDIGITAL)

町田くんの世界 3 (マーガレットコミックスDIGITAL)

椿町ロンリープラネット 3 (マーガレットコミックスDIGITAL)

椿町ロンリープラネット 3 (マーガレットコミックスDIGITAL)

三者三葉 12巻

三者三葉 12巻