/ 最近 .rdf 追記 設定 本棚

脳log[2013-02-07~]



2013年02月07日 (木) 今日の一曲リピート。RAMJET PULLEY「I'll fall in love again」(GIZA studio Masterpiece BLEND 2003 disc1)


2013年02月06日 (水) 診断くんと変換するつもりが死んだクンクンになってしまった。泣いてしまう人形が2体。


2013年02月05日 (火) Bingでこういうもの「Catalyst 13.1 アプリケーション設定 -Cisco -Ubuntu」を検索すると「上記の画像の文字を入力することで、プログラムではなく人間が検索を実行していることを確認しています。」といってキャプチャ画面が表示される。正解すると何度でも次のキャプチャが表示される。失敗すると違うと指摘されてやはり次のキャプチャ。■もちろん、--forceオプションがあるのなら機械はキャプチャ画面をすっ飛ばして最初からオプション付きで検索するでしょうけどね、検索させる気が毛頭ないのだとしたらこれはあまりにバカにした応答じゃないかね?■だいたい人間は機械と違うのか?User-Agentは?広告をクリックするのとしないのが人間と機械の違いか?区別がナンセンスならできる対策っていやあ実行の頻度でフィルタリングするくらいじゃあ?■■■ Catalyst 13.1は 3Dアプリケーション設定を %LOCALAPPDATA%\ATI\ACE\APL\User.blbに保存するけど、読み込むつもりはないみたい(これに関する事例を探していた)。


2013年02月04日 (月) Windows 7でスタートメニューに置いたごみ箱のリンク(≠ショートカット)を右クリックしても空にするという項目が出ない。デスクトップに置くと隠れやすいから Vistaではスタートメニューに置いてるんだけど。


2013年02月03日 (日) 和裁洋裁、和服洋服という区別。東洋西洋という区別。■洋の東西を問わないとあえて口にする必要があったのは、本当に問わなかったときの洋とは西洋のことだけを指すという前提があったから。(洋という一字から西洋に加えて東洋も連想してしまって混乱したので確認)


2013年02月02日 (土) ruby-devのこの話題(Feature #7639: More freedom for location of comments - ruby-trunk - Ruby Issue Tracking System)はサクラエディタWikiのこれ(BugReport/35 - SakuraEditorWiki)を彷彿とさせる(この「と」って必要?)。俺はサクラWikiのコメント欄寄り。>糞スクリプト■Rubyの方は書いてあるものが後からなかったことにされたりはしないし、空白・コメント以外の要素が出現した時点で判断がつくので全然違うかもしれないけど。■JSだけど、こういうのが今現在もありなんだから問題ないのかも。「WScript/*HOGE*/./*HOGE*/Echo("hoge");」■でも Rubyは C系の言語と違って改行は基本的にデリミタだからなあ。俺はセミコロンを書きたい派だから改行にそういう期待はない(むしろ Rubyは改行で動作が変わるのがうっとうしい。関係ないけど JavaScriptは returnに気を付けるだけでフリーフォーマット派ものぐさ派両方のいいとこ取り)けど、一般的な Rubyistの認識(こうあるべきという期待)をこの Featureの導入は裏切りそう。■ということは……俺の方はこの Featureを歓迎してもいいのかな。ゆくゆくは a=4(改行)/2 とか a=4(改行)-1 とか書かせてくれるんだよね、もちろん。最初の文字がドットの場合 a=4(改行)./2 だけ特別扱いなんてなしだもんね。■a=4(改行)/2/ は割り算かな?無意味な正規表現リテラルかな?と JScriptで試してみたら割り算になりました。a=4(改行)/2/i とフラグ(※変数と見分けがつかない)を付けても代わりにセミコロンを付けてみても変わらない。■■■@2013-02-02 現状の認識を誤っていた。irbではテストできないんだけど(※さりげなく言い訳)、Ruby1.9ではもう既に改行に続くドットが前行からの継続扱いになっていた。ドットだけが。■1(改行) . (改行)(改行)times{ puts "Hi!" } のように、ドットの後ろの空行は許容される。ドットの前に改行を入れることは可能だが空行を入れることは許されない。このことから予想されるように、ドットの後ろにコメント行を足すことは可能だがドットの前にコメント行を足すことは許されない。アドホックな解釈だなあ。突き詰めて全体を一貫した(少なくともそのように見える)シンプルなルールで解釈してほしい。


2013年02月01日 (金) パラメータの数が可変(※省略が可能という意味)の時のプリペアードステイトメント。SQLiteだと渡さなかったパラメータに対応する(名前付き)プレースホルダは NULLになる(※ライブラリの計らいかもしれない)。省略可能なパラメータが絞り込み条件(WHERE clause)のひとつであるとして、NULLとの比較が常に失敗するのに任せる場合もあれば、反対に NULLにワイルドカードとして振る舞ってもらう場合もある。後者はこんな感じ。「SELECT * FROM Book WHERE (:publisher ISNULL OR Publisher LIKE :publisher) AND (:label ISNULL OR Label LIKE :label) AND (:binding ISNULL OR Binding LIKE :binding) AND (:ccode ISNULL OR CCode LIKE :ccode) AND (:publicationdate ISNULL OR PublicationDate LIKE :publicationdate;」こういうの(LIKEの乱用)を指して Poorman's Search Engineと言ってるんじゃないかな>『SQLアンチパターン(www.oreilly.co.jp)』さっき挙げた SQL(の一部)はこういう使われ方をしています>「http://vvvvvv.sakura.ne.jp/ds14050/buch/browse/CCode/C3___


2013年01月31日 (木) 勝手に流れてきてしょっちゅう聞かされる曲。誰が歌ってるのか知らないけど西野カナだと思ってる(真偽は不明)。これが一本調子でつまらない。デビューしたての aiko(の歌)も好きじゃなかったんだけど、同様に聞きたくない、のに逃れられない。年末の特番で聞いたのは悪くないなと思った(何度も書くが別人だった可能性もある)ので、珍しく録音の方がひどい。ああ、これが音に聞く音圧競争ってやつなのかなと思い当たった次第。つまらんうえに耳に負荷のかかるもんを無理矢理聞かせんじゃねーよ。


2013年01月30日 (水) ハンバーガー(マクドナルド)。好き。ケチャップの甘さとマスタードの辛さとピクルスの酸っぱさの対比がいい。完成されたメニューだと思う。だけどボリュームが足りない。これを目的に買いには行かない。■てりやきバーガー(マクドナルド)。好き。ソースがすべて。十分食べて味が想像できるのでこれを買いには行かない。飽きたってことなのかな。食べて後悔はしないんだけど。■フィレオフィッシュ(マクドナルド)。好き。タルタルがすべて。マクドナルドに行けば必ずこれを買う。以前はこれと BLTバーガーを目当てにしてマクドナルドに行っていたが、BLT亡き後はグラコロを買いに行った一度を除いて行っていない。フィレオフィッシュだけでは足りないからね。■冬にやってたシナモンと砂糖がたっぷりかかったようなの(マクドナルド)。これも好きだった。もうないのかな。■エッグマックマフィン(マクドナルド)。朝マックはソーセージとベーコンがよろしくない(一度で懲りた)ので必然的にこれになる。時間帯が合えば必ず注文してた。シロップがかかったマックグリドルも良かった。ソーセージとベーコンがはさまってなければもっと。■モスバーガー(モス)。あふれるタマネギソースとトマト。初めてモスに入ったのが19才の時。モス自身の名を冠したハンバーガーにハズレはないだろうという理由で選んでからほぼ毎回買ってる。■フレッシュバーガー・サウザン野菜バーガー・モス野菜バーガー(モス)。トマトとレタスと酸味のきいたソース。これもほぼ毎回買ってる。一度に買うのはハンバーガー2個だけなのでモスで買うのはほぼこれら。■フィッシュバーガー(モス)。タルタルじゃなくてマヨネーズがかかってるらしい。油っぽいなと思って一度しか食べてない。■ロースカツバーガー(モス)。ソースが辛いなと思って一度しか食べてない。■ライスバーガーのどれか(モス)。ハンバーガーと同じつもりで食べたらおなかにもたれたので一度しか食べてない。ごはんがなくならない。■マクドナルドにはさらにグラコロと月見もあるわけで、マクドナルドに行かない理由がわからない。というのは嘘で、フィレオフィッシュと一緒に頼むもうひとつがなくなったのがすべて。反対に、モスには2つのハンバーガーとその時々の限定しか選ぶものがないのだけど、それがある、それで十分であるがゆえに足を運んでる(頻度はかなり減ってるが)。サブウェイの評価はモスに勝るとも劣らないのだけど、店がない。■マクドナルドであと気に入らないといえば、誰も彼もがクーポンで注文することと、(こぼしそうでテイクアウトに適さない)飲み物が付かないセットメニューが存在しないこと。セットメニューってクーポン価格でも一個一個の値段(想定マクドナルド希望価格)を加算しただけでこれっぽっちも安くないのだからセットで頼みたくもないけど。■「誰も彼もがクーポンで」⇨マクドナルドはケータイクーポンを提示して買う店であると認識した。自分はそんなものを受信するつもりはない。■似たようなものにプライベートブランドで埋め尽くされたスーパーがある。そこは PB商品を売り買いする場所であると認識したら、仮面をかぶった商品が二の次である自分にとって用無しだとわかる。行かないこともないけど。セブンイレブンには、ニーズを正しくくみ取って実際に商品を企画して自社ブランドで発売してるのかなと思わされるけど。


2013年01月29日 (火) BITMAP関連の構造体で見たなあ(何が?)。「BITMAPINFOHEADER 構造体」■RECT*を引数にとって操作する関数に、RECT構造体のアドレスでなく RECT*型のローカル変数(どこも指してない)を渡す話とかを聞くに、扱いが難しすぎるよね>可変長の構造体メンバ。


2013年01月28日 (月) リーダブルコード。同名の書籍はまだ読んでないので直接の関連はない。どこまで本気かはともかく、まずは日本語でコードを書きたい。英文を読み付けない人間はコードを読まずに日本語で書かれたコメントだけを読もうとしたり、そのつもりがなくても流し読みで目に入るのが日本語部分だけだったりしがち。だからコメントがコードの焼き直し(ただの翻訳。役に立たないコメントの典型)だったりするんじゃないの?洋書や英語論文を抵抗なく読める人間だけでソースを書くか、日本語でソースを書くか。日本語の方が簡単だと思うなあ。アウトソースや協働はできないけど。論理的な文章(ソースコード)を書くことにまずハードルがあり、それを英語(ほとんどのプログラミング言語)で表現することにさらに高いハードルがある。


2013年01月27日 (日) 今季の注目アニメは「ささみさん@がんばらない」「ヤマノススメ」「問題児たちが異世界から来るそうですよ」。継続して期待してるのは「新世界より」「ちはやふる」「宇宙兄弟」「みなみけ ただいま」「僕は友達が少ない NEXT」。評判を聞いて見てみたいのは「琴浦さん」「ラブライブ」。豊作だあ。でもささみさん1話しかまだ見てない。■ささみさんが面白いのはわかってるんだけど、そつがなさすぎてつまらないという贅沢な理由で原作は2巻までしか読んでなかったり。問題児たち~はきっかけがなくて読めてない。


2013年01月26日 (土) [COSMOS] Vistaのメモリ診断ツールを実行してみたら開始早々、進捗1%でハードウェアのエラーを検出した。BIOSで 1Tとなってるところを 2Tにしてみたり、空きスロットに差し直したりしてみたがやはりエラーを検出する。メモリがあかんのかもね。この1年ケースを開けた記憶がないほど安定してたのに。動作クロックを下げて最後の足掻きをしてから新しいのを買う。■■■@2012-01-24 同じものを買った。新しいのは標準電圧(1.50V)で DDR3-1600(800MHz)動作すると書き込んであった(古いのは 1.65V)。BIOSでNBとの比率を設定してわずかにスピードアップ。■■■やっぱり強制終了する。こんどは診断ツールでエラーを発生させることもできない。1.ゲームをするまでは何の問題もなかった。2.強制終了して再起動後は問題ない。3.ゲーム中に起こることがほとんど(そこから悪化した)。考えたシナリオは、1.ビデオカードがアクセス違反をおかしてる(OSのキャッシュと衝突?)。2.(グラフィック)共有システムメモリの使用でメインメモリが音を上げた(メモリに直接あたるファンが存在していない)。物理メモリが壊れてるのか冷却に穴があるのか Vistaのメモリ管理が悪いのか AMDのグラフィックドライバが悪いのか。■■■GPUを差し直してみた。場所も5段下にしてメモリから遠ざけた。現在様子見中。

最終更新: 2015-02-09T01:58+0900

[SonyReader] PRS-650 tools.

PCとリーダーのディレクトリ構成が決め打ちなので、きったねえなー、という感想を漏らすぐらいしか使い道がないでしょうが。

  1. $0-RunOnReaderConnected.bat
  2. $1-Update_Collecctions.rb19
  3. $2-Make_CacheXML_And_Sync.rb19
  4. $3-touch_last3_opened_books.rb
  5. $4-cacheExt_tweak.rb19

 1. $0-RunOnReaderConnected.bat

Sony Readerを繋いだら実行する。$1-$4のスクリプトを引数付きで順番に実行するためのもの。前提条件

  • メモリーカードスロットは E:と F:。
  • すべてのバッチとスクリプトファイルが同じフォルダにあり、作業フォルダもこれと一致する。
  • READER MS (E:)と READER SD (F:)という名前のサブフォルダがあり、この中には Readerにコピーする PDFファイルと $Collections.txtというファイルが(フラットに)入っている。

 2. $1-Update_Collecctions.rb19

カレントディレクトリをスキャンして $で始まるファイルと隠しファイルを除いたファイルのリストを $Collections.txtというファイルに保存する。カレントディレクトリはバッチファイルによって READER MS (E:)か READER SD (F:)になっている。以降のスクリプトのカレントディレクトリも同様。

 $Collections.txt

内容はこんな感じ。

____1 [カイ サワベ] ヘンな感じの日本人.pdf
__1__ [森博嗣] 四季.pdf
__1__ [須賀しのぶ] 芙蓉千里.pdf

-__1__ [沢村凜] 瞳の中の大河.pdf
-__1__ [範乃秋晴] 特異領域の特異点.pdf

-1____ $コレクション名 マンガ
-_1___ $コレクション名 実用的なマンガ
-__1__ $コレクション名 小説
-___1_ $コレクション名 実用的な小説
-____1 $コレクション名 実用書

行頭のマイナスは $Collections.txtに記載されていたファイルが現在は見えなくなってることを示す。アンダースコアはコレクションに属していないことを、1はコレクションに属していることを示す。$コレクション名(スペース)で始まるファイル名は特殊で、コレクション名を定義するための行。行頭にマイナスが付いてるのは「$コレクション名 マンガ」という名前のファイルが存在しないから。自分で付ける必要はないが $1スクリプトの実行で付加される。行の並びは自由。ただし見えないファイルと新しく出現したファイルは末尾に集められる。コレクションを追加するときは全ての行の頭にアンダースコアを追加する。コレクション名のデフォルトはコレクションN(※Nは連番)。

例えば、[森博嗣] 四季.pdfと [須賀しのぶ] 芙蓉千里.pdfは同じコレクションに属していて、そのコレクションの名前は小説。[沢村凜] 瞳の中の大河.pdfというファイルは以前存在していたが今は見えない。ファイルが削除されていて見えないのであれば $2のスクリプトがミラーリングを行ったときに Sony Readerからも削除される(はず)。隠しファイルになっていて見えないのであれば Readerから削除はされない(これは robocopyのミラーリングの仕様による)。

 3. $2-Make_CacheXML_And_Sync.rb19

READERDRIVE:/Sony Reader/database/cache.xmlに ./$Collections.txtの内容を反映させ、READERDRIVE:/自炊.pdf/とカレントディレクトリをミラーリングする。

READERDRIVEはバッチファイルから与えられた引数。

 @2014-01-22 修正。

cache.xmlの text要素の開きタグにマッチする正規表現において、閉じタグを省略するスラッシュにマッチする部分をオプションに変更( />\z → /?>\z )。珍しいけど bookmarkDate要素が子になることがある。

when %r{\A<text (?:\s*id="(\d+)"|\s*path="(?:[^"/]*/)*([^"/]+)"|\s*sourceid="(\d+)"|\s*\w+="[^"]*")*\s*/?>\z}i
when %r{\A<text (?:\s*id="(\d+)"|\s*path="(?:[^"/]*/)*([^"/]+)"|\s*sourceid="(\d+)"|\s*\w+="[^"]*")*\s*/?>\z}i

 4. $3-touch_last3_opened_books.rb

E:/Sony Reader/database/cacheExt.xmlと F:/Sony Reader/database/cacheExt.xmlを読んでメモリーカード内のすべてのファイルの最後に開いた日時を取得し、これをもとに最後に開いた3冊に最も新しい更新日時を設定する。すると Readerは最後に開いた3冊を最新の3冊としてホーム画面に表示する。

--resetオプションが与えられるとファイル本来の更新日時を復元する。オプションなしで実行されると復元と設定を行う。

対象ファイルの最終アクセス日時情報は失われる。最終アクセス日時がファイルシステムや他のプログラムによって変更されると更新日時の復元に失敗する。

 5. $4-cacheExt_tweak.rb19

READERDRIVE:/Sony Reader/database/cacheExt.xmlを操作する。1.すべての<history>要素を削除する。2.ファイルの更新日時を比較し Readerの方が古ければ opened="true"属性を削除する。比較対象は cacheExt.xmlに記載されているすべてのファイルと、カレントディレクトリ直下の同名のファイル。

追記@2014-03-10 ホーム画面上部の「続きから読む」欄の一冊は絶対に未読状態にならない。PCとの接続を絶つとすぐに opened属性が Readerによって再設定されるみたい。


こんな苦労が必要なのは、最後にコピーしたファイルのうち3冊だけがホーム画面という特等席に表示されても嬉しくないのと、本を読み続けると蓄積するページ履歴(history要素。ほとんどが連続するページの履歴)が Readerの動作を遅らせ不安定にするのと、合計48GBのメモリーカードに1000冊以上の PDFを入れてるとコレクションへの登録やファイルの削除の途中で必ず Readerがフリーズするのだが eBook Transfer for Readerはメモリーカードの読み込みに5時間を費やしそうな勢いで助けにならないからと、管理対象の数を減らすためにシリーズを一つの PDFに結合していて新刊が出るたびに末尾にくっつけているために既読フラグのクリアが定期的に必要だからだ。結局俺は PRS-650を自分のものにはしていないのだ。そう勘違いさせてくれるだけの選択の自由を Sonyは提供していないし、お仕着せで満足できるほどの完成度も Sonyは提供していない。

 @2015-01-31 lib/prs-650.rb (2.8KiB, 2015-02-09 変数名のミス修正)

  • prs-650が書き出す XML(cache.xmlと cacheExt.xml)に特化したずぼらライブラリ
  • $2-Make_CacheXML_And_Sync.rb19 と $4-cacheExt_tweak.rb19 に共通するコードを抜き出しただけ
  • ファイルをスキャンしながら情報を抜き出したり、ちょっとだけ書き換えたり