PrsPrsBK’s blog

Princess Princess Burn Knuckle

ユリシーズを読んだ

集英社文庫ヘリテージシリーズの四分冊を読んだ。

理由

まとめて買ったまま最後まで読んでいなかったのをやっつけることにした。

感想箇条書き

  • 「文学にはこんなことができる(できた)のだ」と示したのだと思うが、実際にこれを読んで体験しなくても良かった気がする。 長いし(注を割と読んだので時間がかかった)、途中から読むのが辛く(後述)、他の本を何冊か読んだ方が良かった。

  • 読んでいるうちは「これは研究のタネになるからありがたがられてるだけだろ」と悪態をついたこともあったけど、 結局自分の知識や理解力や感受性、想像力が小さいんだな、と弱気になった。

  • ティーヴンが塔へ戻らないと決めた理由がわかっていない……ので、読んで良かったのかもしれない。

  • 大学卒業までに読みたくなったら読めばいいと思う。買うと高いので図書館で借りるのが良い。

  • これが文庫で出たのは多分良いことなんだなと思うが、売れたのだろうか……。

読む前に知っておけばよかったこと

  • 家系図は4冊目の付録にあるので、自分で描かなくていい。
  • 一冊目の解説とエッセイと資料は最後に読めばよかった。最初に読んだら退屈に感じた。

読むのがつらい

三冊目(14挿話以降)から辛くなった。

14挿話では原文の段階でいろいろな時代の文体が駆使されており、和訳ではそれを反映するべく工夫がされている。 使われた文体を注から拾い上げた(漏れがあるかもしれない)。

漢文くずし / 祝詞の文体 / 古事記 / 万葉集長歌 / 宇津保物語 / 源氏物語 落窪物語ほかの王朝物語 / 平家物語 / 太平記 / 義経記(あたり) / 恨の介 竹斎ほか仮名草子 / 切支丹文学、ことにイソポ物語 / 井原西鶴あたりの浮世草子 / 近松ほかの浄瑠璃 / 本居宣長の擬古文 / 三遊亭円朝の人情噺 / 滝沢馬琴 / 式亭三馬浮世風呂 浮世床 / 石田梅岩 / 平田篤胤 / 黒岩涙香 / 初期の森鷗外 / 若松賤子訳『小公子』 / 初期の夏目漱石 / 菊池寛真珠夫人』 / 永井荷風 / 谷崎潤一郎 / 石川淳 / 宮沢賢治

こんな具合なので、三冊目を開いた途端つらかった。読んでも「マリガンが登場した」程度の解像度しか持てず、一部を除いて流し読みした。

14挿話以降は文体・形式による読みにくさも、内容の捉えにくさ(幻想が混じっている)もあった。

最終挿話については、「読点が一切ない」「漢字が一部使われない」という読みづらさはあるが、1ページ当たり6から8の拍子で速く読むことをこころがけると楽になった。

雑学

注を読んでいると色々ある。

9挿話

p.66 キリスト教の掟 キリスト教徒は高利貸になることを禁じられているから、この商売はユダヤ教徒が一手に引き受けることになる。

そうなのか?

p.149 当時(※エメット処刑の1803年)は絞首刑執行後死体を四つ裂きにして内臓を引きずり出すのが決りだった。

人間はどこでも野蛮だなと頷いた。

12挿話

p.309 五ギンニズ ギニーは21シリングに当る貨幣単位。弁護士、医師などの謝礼に常用される。

なぜそんな使い分けをする?

p.310 綱をこまかくきざんで 絞首刑執行に用いられたロープは魔力を持っていて、頭痛、熱病その他を治すし、幸運をもたらし事故を防ぐ、と信じられていて、絞首人はその絞首索を売って金を得た

こういうのありそう。

13挿話

p.418 せっかく閏年なのに - 閏年には女のほうから求婚できるという習慣があった。

実際の求婚件数と成就率はどうだったのかちょっと気になる。

14挿話

p.92 鶏姦(バガリー)

ニワトリを犯すのかと思ったが、「鶏」は当て字らしい。

さらにbuggeryはブルガリア由来だった。

16挿話

p.86 刺青 エドワード七世を含め、十九世紀に刺青が上流社会で流行した。

これは実際日本を訪れた際に刺青を彫ってもらった、と述べる本があるとの記述が一応ネット検索結果にあるけど、なんとも言えない。

p.95 ティッチボーン事件 イギリスの裕福な貴族ティッチボーン家の相続人がオーストラリアから帰国の途中カリブ海で船が沈没して行方不明になった。 それから十三年後(1866)に彼になりすました男が現れ、故人の母親はこれを相続人と認めたが、故人の同級生のベリュー卿の証言で偽物と判明した。 法廷史上で有名なこの事件は多くの推理小説の原型となっている。

17挿話

p.163 螺旋コルク抜きは1860年の発明

遅い気がする。

18挿話

p.362 それともあのコンドームがまださいふのなかにはいってるかどうかしらべてあたしが知らないと彼は思ってるんだわ

この時代(舞台は1904年)から「男がコンドームを財布に入れていて、それを妻が知っている」。個人的には財布に入れるものではない(傷みそう)と思う。

広告ブロッカーがないと話にならなくなったので導入した

今までは広告ブロッカーを使っていなかった。ウェブサイトがそれで収入を得ているわけだし、そんなに広告を見たくないわけではない。別に困らなかった。

 

ただ、たまに困っていた。ウェブサイトの中には、広告が表示されるまでコンテンツが表示されず、閲覧可能になるまで10秒以上かかるものがある。去年の中頃は、ITmediaのサイトとあとどこか一つくらいだけだったと思うが (IT関係のくせに何やってんだと思ってちょっとバカにしていた)、10秒もかかると見る気がなくなって、実際見るのをやめる。いまだにITmediaのサイトは避けている(※避けているので今どうなっているか判らない、改善されたかもしれない)。アホくさくなるので。「快適な速度を自分が得られる」ことを前提にするのはちょっと違うかもしれないので、「遅い」だけで不快になったとしてもそこに反省の余地があるというか落ち着く余地があるんだけど、「広告のせいで遅い」が嫌なんだろうと思う。

 

で、最近になって、そういうケースが増えた。やはり待っているうちにアホくさくなって見るのをやめてしまう。見るのをやめること自体はまあ機会の損失で済むんだけど、気分がアホくさくなりまくるのは困る。なので広告ブロッカーを使うことにした。という日記。

Adobe Brackets 1.11 (Linux 再リリース版) で日本語入力できるようになった

タイトルの通り。Lubuntu 17.0.10 で確認した。

ただし、拡張機能マネージャーで「Emmet」など入力して検索しようとしても検索窓が反応しないので検索できず、実際問題インストールできない。

検索窓の件については自分は報告しない。Linux 版は使わなくなったので。日本語入力の件は一応確認しただけ。困ってる人は自分で github 行って報告すればいいです。

日本語入力の時も「できないな~」って思いながらダンマリ決めてた、英語での報告もそんなに困らず原因も見当ついてた人いたでしょう。死ねよ、と思っていました。

Thunderbird の Monterail を試した

概要

Thunderbird の次期 UI 案らしい Monterail がテーマとして利用できるようになっていて試した。目に優しい感じだが、未読フォルダの強調色が薄緑色で見づらいので userChrome.css で色を変えた。CSS 要素指定がどこを指しているかまったく知らないので勘でやった (多分困らないのでよしとした)。そのときのメモ。Twitter 検索してみると本当にほとんど触れられていないので寂しくなりこんな内容だが書いた。

やった

1. github のどこかの CSS を見て色指定 #b2f2ff に見当をつけた。
2. プロファイルフォルダの extensions に xpi があるので関係ないところに解凍する。
3. #b2f2ff を探す。chrome/MonterailOverlay/css/messenger.css っぽい。
4. プロファイルフォルダ/chrome/userChrome.css を作ってそれらしい要素指定部分をコピーし、内容に color 指定する。いくつか試す。
5. ダメ。
6. 色ではなく bold に注目したところ、-moz-tree-cell-text(hasUnreadMessages-true) というそれらしいところを見つけて要素指定部分をコピーし、内容に color 指定する。
7. できた。!import 必要。
#folderTree >
treechildren:not(.autocomplete-treebody)::-moz-tree-cell-text(hasUnreadMessages-true) {
  color: #000000 !important;
}

WebExtensions: 指定した文字列をクリップボードに格納する (コピーする)

概要

Firefox の自分用アドオンで、特定のウェブページを見ているときに、その一部から文字列を構成してクリップボードに格納したい。Content scripts で copy イベントのリスナを使った話。

追記: mdn/webextensions-examples の見てなかった方に例があるのでそちらを見ればよく、このブログは読まなくてよい。

1. manifest.json の permissions に "clipboardWrite" を指定する。2. document.addEventListener('copy', onCopy); とする。3.(以下 onCopy の話) copy イベントから DataTransfer オブジェクトを取得する。4. setData()クリップボードに文字列を格納する。

Firefox Developer Edition 54 と 57。なんとなく Google Chrome も試した。

やった

document.execCommand() でやれと述べられるができなかった

見ているウェブページの一部から文字列を構成してクリップボードに格納したい。文字列は選択せずに都合のよいように作りたい。

MDN: Addons: Browser Extensions にニーズそのものである Interact with the clipboard がある。document.execCommand("copy") しろというが、これは文字列を選択しないとコピーできない (ドキュメント)。github mdn/webextensions-examples の selection-to-clipboard もこれを使っている。

WebExtensions 以前はどうやったか。古い話だが、Add-on SDK には clipboard API があり、var clipboard = require('sdk/clipboard'); で利用できた。Comparison with the Add-on SDKAPI 比較対照資料にこう書いてある。

document.execCommand without using select() and similar in the background page.

しかしできない。document.execCommand('copy', false, some_text) とやったができなかった。ほしい文字列 (HTML には存在しない) を選択していることにできればいいが、window.setSelection(任意の文字列) はあるはずがない。

copy イベント経由でデータをセットする

npm モジュールにクリップボードとやり取りするものがあるだろうから (探していない)、それを webpack でバンドルして利用すればできるに決まっている。もっと言えばアドオンでやる必要はない。でもウェブページを見ながらブラウザ上でそのままやりたいしモジュールバンドルはもっとモジュールが明らかに必要な時にやる、ということで情報を探した。

結果 copy イベントがあると判ったので、Ctrl-C でコピーが発生したときのイベントリスナで処理させることにした。

document.addEventListener('copy', onCopy); して次のようにした。できた。

function onCopy(ev) {
  //実際に何か選択してるときは動作させたくない
  if(window.getSelection().toString() === '') {
    //雑に作ったので構成した文字列をグローバル変数に収めている。あとで直せばいい
    setTextForCopy(); //HTML を解析して文字列を作って TO_CLIPBOARD に格納する
    if(TO_CLIPBOARD !== '') {
      ev.preventDefault();
      let transfer = ev.clipboardData;
      transfer.setData('text/plain', TO_CLIPBOARD);
      TO_CLIPBOARD = '';
    }
  }
}
document.addEventListener('copy', onCopy);

Ctrl-C ではなく Ctrl-Y 等別のキーでやりたいときはキー押し下げで document.execCommand("copy") でコピーを発生させればいいけど、このままでは何か選択してたらそれが Ctrl+Y でクリップボードにコピーされてしまう。まあいいか。

なお、Firefox ではなく Google Chrome にローカルフォルダからインストールして使っても動作した。Google Chrome は開発版のリロードが楽でいいですね、という感想を持った。

Adobe Brackets を 1.11 から 1.10 に戻した (Linux)

概要

Lubuntu。uname -r は 4.10.0-35-generic、i686

1.10 では特に何もしなくても「半角/全角」キーで Mozc と表示されて日本語入力できた。sudo apt install ./Brackets.Release.1.10.32-bit.deb で多分問題なくインストールした (困った記憶がない)。

9/26 だったか、OS の更新ダイアログに任せて更新したら日本語入力できなくなった。

とりあえず apt autoremove とやった後、以前使ったファイル(残してあった)で 1.10 をインストールしようとして libgcrypt11 がなくて戻せなくなったが、戻した。

すごく雑に書く。事態をよく把握していないのでダメなことをやっているかもしれないが後で把握する。後で消すかもしれない。

報告したいがイシュー書けるほど把握していない。

なお、Windows10 (64bit) では 1.11 で問題ない。※9/28 追記 カーソルの位置が記録されず、別のファイルを見てから戻るとカーソルがファイルトップ位置にリフレッシュされるという大分だるいことがあったが、使ってなかったVimderbar を削除したら直った。他 InstantLint の挙動が変わってしまったが、「ある程度大きいファイルで改行するだけで動作が遅くなる」が最近嫌だったので削除して問題は解消された。

追記: イシュー報告した

報告した: Can not toggle Mozc input-method to on at Linux #13762

追記2 (2017-11-09): 1.12 で直るかもしれないので待ちましょう

Release plan for Brackets 1.12 #13821 (2017-11-08 02:11 JST)

f:id:PrsPrsBK:20171109011131j:plain

Linux: IME not working after CEF update

追記3 (2018-02-19): もう直っています

今でもアクセスあるようなので追記しました。2017年12月の1.11修正版で確認しました (そのときのブログエントリ)。

やった

1. libgcrypt11_1.5.3-2ubuntu4.5_i386.deb を取得した。

2. sudo apt install ./libgcrypt11_1.5.3-2ubuntu4.5_i386.deb。特に問題なさそう。

3. sudo apt install ./Brackets.Release.1.10.32-bit.deb とやったが「続行しますか? [Y/n] 」で中断した。「注意、'./Brackets.Release.1.10.32-bit.deb' の代わりに 'brackets' を選択します」と表示され、これだと 1.11 がインストールされることになる。

4. sudo dpkg -i ./Brackets.Release.1.10.32-bit.deb。エラーになった。「xxxx はまだインストールされていません。」

5. sudo apt install libpango1.0-0。先の「xxxx」をインストールしようとして失敗。「E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。」

6. sudo apt --fix-broken install。色々インストールされた。

以下のパッケージが新たにインストールされます:
  gconf-service gconf-service-backend gconf2-common libgconf-2-4 libpango1.0-0
  libpangox-1.0-0

7. sudo dpkg -i ./Brackets.Release.1.10.32-bit.deb。成功。起動したし日本語入力できる。

Neobundle から dein.vim に移行したときの話

お話

Firefox アドオン開発を web-ext に移行する話の初歩その続きを書いたら Vim の話を思い出した。移行したの二か月くらい前だし今更書いても役に立たない気がしたがどうでもよくなった。書いておく。

github のプロジェクトのページを見た。

(各プラグインの)インストールフォルダを決める。例:"~/.vim/bundles" or "~/.cache/dein" or "~/.local/share/dein"。 回避する例: "~/.vim/plugin"、"~/.config/nvim/plugin" の下。結果、"~/.vim/bundles" にした。NeoBundle のフォルダ "~/.vim/bundle"(sがない) とは別になる。

Readme.md には "If you are using Unix/Linux or Mac OS X."、https://github.com/Shougo/dein.vim/blob/master/bin/installer.sh を取得して sh ./installer.sh {specify the installation directory} する、とある。

Windows については記述がなかった。Git/bin/sh.exe でやっても良いかもしれないけど installer.sh を見たら何するか分かったので手作業でやった。インストールフォルダを作って、その下の repos/github.com/Shougo/dein.vim フォルダに git clone https://github.com/Shougo/dein.vim すればいい。インストールフォルダと git clone 以外は「vimrc にこういう設定書いてね」という案内なので見て、あとで _vimrc にコピペして編集することにした。

1. NeoBundle の除去: 設定消すだけ

プラグインフォルダは dein とは別なのでそのままにしておき移行後エクスプローラから消すことにした。先に消すなら _vimrc から NeoBundle 'foo/bar-vim' 等を削除して NeoBundleClean すれば消える。

2.dein 設定を _vimrc に書く

NeoBundle 設定時点。元々あまりプラグインを使っていないがたまに増減するので、管理が楽になって助かっている。

if has('vim_starting')
    set runtimepath+=~/bin-local/vimfiles/bundle/neobundle.vim/
endif

call neobundle#rc(expand('~/bin-local/vimfiles/bundle/'))

NeoBundleFetch 'Shougo/neobundle.vim'

NeoBundle 'kana/vim-surround'
NeoBundle 'koron/codic-vim'
NeoBundle 'tomasr/molokai'
NeoBundle 'Yggdroot/indentLine'

NeoBundleCheck

if neobundle#is_installed('molokai')
    colorscheme molokai
    autocmd GUIEnter * colorscheme molokai
endif
(その他の設定)

NeoBundle 設定を消してこのようにした。if neobundle#is_installed('molokai') はどう変えるかすぐ分からず、インストール後 dein のヘルプ見てから tap() で良かろうとなり、後で足した。ググると情報があり、vimrc は各人の考え方や事情などがあるようで沢山見ると迷ってしまう (特に分かるようにならない) ので、分かる範囲のことをやりたい。単純に上記の installer.sh とヘルプに従った。喫緊の課題ではないのであとで改善すれば良い。

" Required:
if has('vim_starting')
    set runtimepath+=~/bin-local/vimfiles/bundles/repos/github.com/Shougo/dein.vim/
endif
" Required:
if dein#load_state('~/bin-local/vimfiles/bundles/')
    call dein#begin('~/bin-local/vimfiles/bundles/')
" Let dein manage dein
" Required:
    call dein#add('~/bin-local/vimfiles/bundles/repos/github.com/Shougo/dein.vim/')
" Add or remove your plugins here:
    call dein#add('kana/vim-surround')
    call dein#add('koron/codic-vim')
    call dein#add('tomasr/molokai')
    call dein#add('Yggdroot/indentLine')
" You can specify revision/branch/tag.
"  call dein#add('Shougo/vimshell', { 'rev': '3787e5' })
" Required:
    call dein#end()
    call dein#save_state()
endif
" Required:やるけどもっと下でやる
"filetype plugin indent on
"syntax enable

" If you want to install not installed plugins on startup.
if dein#check_install()
    call dein#install()
endif

if dein#tap('molokai')
    colorscheme molokai
    autocmd GUIEnter * colorscheme molokai
endif
(その他の設定)

TOML はとりあえず使わない。

_gvimrc は set guifont などしか書かれておらず関係ないのでそのまま。

Vim を開いて:call dein#install() せよとあるが vimrc に書いたので Vim 再起動で済ませる。ダイアログウィンドウが表示されてメッセージが出た。OK 押したら起動した。後は問題なし。

3. 一応 source $MYVIMRC してみる

この時点でおかしくなるかどうか調べただけ。dein#check_update はあとでいいか、で終わり。

あと、はてなブログ

code タグの CSS が全然反映されないのが分からないけどまあいいか。