2017-04-30 [長年日記]
■バッドエンドの誘惑、中世ヨーロッパの都市の生活、私たちは生きているのか?
読みやすく素直な文章で、斜に構えたようなマニアっぽい書き方もなく、大変面白い。
それでいて浅い見方ではない、しっかりとした映画批評で読み応えがあった。もっと本を出して欲しい。
しかしバッドエンドの誘惑というのは確かにあるなぁ。
SF的なガジェットに対して「それが存在することが当然」と登場人物が思っている、という描写って難しい。じっくり手間を掛けて、そういうことをやってのける森さんはすごい。
さまざまな職業、身分の人の生活が書いてあって面白い。
おまけ。
これがKindleに入っているのってすごくないですか??
■定本 召喚の蛮名
このマンガと本のこと、知らなかったのだけどある本で知って復刻を待っていた。ようやく出版されて一安心。
めちゃくちゃ面白くて、感動した。
一種の懐古主義的な面白がり方たという自覚はある(高校生ぐらいのころのあの感覚だ! 的な)けど、しかしよい本だった。
2017-04-14 [長年日記]
■ParamQuery grid で vertical-align を
便利なグリッドライブラリ(非商用無料)。
テーブルセルにvertical-alignを設定したのだけど、ParamQuery grid 側のスタイルでキャンセルされる。
ParamQuery grid の css には vertical-align: middle がハードコードされていて、これを変更したい人はいなかったみたい。
ad-hocな対応でどうにかならないだろうか、ということで
$("#grid_table").pqGrid( {refresh: function (event, ui) {$("td.pq-grid-cell").css({"cssText": "vertical-align: top;"});}} );
refreshイベントで、グリッドセル全体に vertical-align: top を適用した。
refreshイベントは、初期化時の他はリサイズなどでしか起きないように見えたが、これで(パフォーマンス的な意味で)大丈夫だろうか?
2017-03-01 [長年日記]
■Anaconda/Minocondaのパッケージ情報を保管する
というメモ。
conda env list | grep -v ^# | cut -f1 -d" " | xargs -I {} sh -c "conda list -n {} > pip.{}.txt"
とか
conda env list | grep -v ^# | cut -f1 -d" " | xargs -I {} sh -c "conda list -n {} > pip.`date +%Y%m%d`.{}.txt"
とか。
2017-02-28 [長年日記]
■カスタムなエンコードエラー対処
JavaやScalaで前にやったのと同じ。
Pythonはcodecsやdecode/encodeにerrors引数で都度指定できる。
# 正しくないバイトシークェンスを作る err_bytes = 'あいう'.encode('utf-8') err_bytes = err_bytes[:3] + err_bytes[4:] err_bytes.decode('utf8') # => raise UnicodeDecodeError: 'utf-8' codec can't decode byte 0x81 in position 3: invalid start byte # same as err_bytes.decode('utf8', errors='strict') err_bytes.decode('utf8', errors='ignore') # => 'あう' err_bytes.decode('utf8', errors='replace') # => 'あ��う'
ほかには、
with open(file_name, 'r', errors='ignore') as f: ...
とか
with codecs.open(file_name, 'w', 'cp932', errors='ignore') as f: ...
などとする。
さて、replaceを指定したときになんの文字で置き換えるかを指定したい、というのが今回のお話。
import codecs def tohu_err_handler(er: UnicodeError): if isinstance(er, UnicodeEncodeError): return '□'.encode(er.encoding), er.end else: return '□', er.end codecs.register_error('tohu', tohu_err_handler)
これで errors 引数に 'tohu’ が指定できる。
err_bytes.decode('utf-8', errors='tohu') # => 'あ□□う'
コードはPython3系です。
2017-02-27 [長年日記]
■伊藤計劃トリビュート2
技術書とかも読んでたから今月はこれだけ。(あと1冊進行中)
「雲南省スー族~」「くすんだ言語」は面白かった。「くすんだ言語」は技術的な描写が気になったけど、まぁ大きな問題ではない。
「ゲームの王国」長編の一部を採録するとかあり? と思ったけど読んでみたら、なるほど採録したくなるわけだ、という感じ。