/ 最近 .rdf 追記 設定 本棚

脳log[2014-10]



2014年10月03日 (金) 鉄板で高評価の『戦場のヴァルキュリア』。なるほどうなずける。■キャラがいい。乳の形がいい(アリシアとセルベリア)。6年前のゲームだというのに古びない水彩画風の画面描画がいい(輪郭の処理があまいけど)。歩兵の歩く音をはじめ様々な擬音が見えるという脱力演出がいい。従来隠しパラメータで表現されていた高低差や地形の有利不利が3D化されて見えるというのがいい。物理エンジンだから基本的に見えている通りのことが起こる。すべてのキャラを動かさなければいけなかったり、移動の後でなければ攻撃できなかったり(またその逆も)しないのがいい。省力化の意味もあるのかもしれないけど、様々な割り切りが煩雑な作業を省いていて評価を下げる理由になっていない(だがモーションくらいは……)。■アリシアの声が南夏奈だから真面目なことを言っていても後ろを向いて舌を出していそうで笑いがこみあげてきて困る。敵方にはxxxHOLiCのコンビが主従を入れ替えて声をあててる。次元の魔女がこちらでは蒼の魔女。あと上官は草薙素子。■フリーバトルに精を出すと無双ゲームになってしまうと読んだので制限プレイをしてる。どこまで続けられるやら。1)武器開発をしない。2)防具開発をしない。3)オーダーを使わない。4)遊撃戦闘(=フリーバトル=経験値と資金稼ぎ)をしない。5)索敵ラインに頼らない(のは毎回毎回毎回毎回消すのが面倒で諦めた)。では何ができるのかというと、レベルアップと戦車の強化ができる。経験値稼ぎができないから Sランクで最大限のボーナスを得るのが重要。■2番目のマップで早々に初の敗北を喫した。偵察兵と支援兵は戦車や突撃兵のそばを走り抜けようとするだけで HPを全部持っていかれて死ぬ。安全地帯から安全地帯へ走る。ぼさっとしてると際限なく撃たれる。銃を構えるまでの待ち時間がけっこう痛いので、旋回・蛇行するか物陰でやりすごしてリロードを待つ。なんか当たり前のことを書いてるな。当たり前が当たり前に要求されている。弾丸をビシビシ食らっても動けるとか、拠点から拠点にワープできるのがゲーム的。初期に出番のない支援兵や足の遅い対戦車兵は占拠した敵拠点で呼び出すのがいい。初期配置は回復CP数を増やすキャラと敵拠点を奪うのに必要な最低人員だけ。突撃兵に狙われるとほぼ死ぬので、それよりは拠点を通して一時撤退しておいてダメージを受けないようにする。再度出てくるのに 1CPと 1ターン必要だけど HP全快でどの自拠点からでも出てこられるメリットがある。自分のターンはもちろんだが敵のターンでも攻撃することを考える。勝利条件に関わらないなら経験値にならない一般兵の相手をする積極的な理由はない。■■■「戦場のヴァルキュリア評(考?)」■2周目について。たしかにブック形式をいかして最初からすべての章にアクセスしたかった。サガフロ2がそうだったみたいに。また、レベルなど多くの要素が持ち越されることに関して、むしろ、成長要素や便利コマンドを廃した弱弱ニューゲームの方が楽しめたろう。べつに敵司令官が目的を持ってなくてもパズルゲームになっていても構わない(だって敵が CPをフル活用して対戦車兵ひとりで一点突破を仕掛けてきたらハメ殺されたみたいないらだちを感じる。自分はやるけど。不満の原因はおそらく、ウェルキンの死が自軍の潰走につながる説得力がないから。本当の司令官はプレイヤーだから。そこを物語に織り込んで初めて敵AIが本領を発揮できるのではないかと)。仕様の穴をつくようなテクニックが要求される「無理ゲーだと思った?クリアできるんだぜ、これ」みたいなのが見たかった。1周目が接待ゲームに思えてくるようなものが。■■■アマゾンのカスタマーレビューを読んでると戦争なのにノリが軽すぎるという評がいくつも。ラブ展開は不謹慎だとかも。俺は戦争を知らないけど、常と変わらないことと極限状態だから起こることのどちらもがあるだろう。どちらの評にも共感しないし、不謹慎厨の同調圧力には嫌悪を感じる。最近になってやっと気がついたのだけど、警察ってのが一番、積極的に空気を利用して多数派の論理を押しつけてくる旧時代の暴力組織なんだよね。そんな風にして維持される治安はいらないかなあ。


2014年10月04日 (土) (がえん)じる。肯ずる。■ふと思いついて(思い出して) ATOKで変換してみたら変換できた。これは音便形。■否定の助動詞が含まれていて元は否定の意味なのだがその後肯定の意味で使われるようになったとか。なにそれ困る。■■■@2014-12-10 谷崎潤一郎の『細雪』で使われていた。肯じるをさらに否定していたから肯定の意味で使ってるんだろうな。


2014年10月08日 (水) 昨日あたりほぼ満月だと思ったのに今日は半分しかない。俺の半月(はんつき)はどこへ行ってしまったんだ、と損した気分でいたのだけど、どうやら皆既月食の途中だったらしい。そういえば複数の親子連れが同じ方向の空を眺めていた。なーんだそういうことか、ってそれはそれでもったいないことをした。■満ちて欠けるまでが1周期だったら、失ったはずのものは半月でなく四半月だったか。


2014年10月13日 (月) 絶対に読まないのにとりあえず原著英訳本をウィッシュリストに入れておいた本の翻訳が年末に出るらしい。「ピケティ『21世紀の資本』サポートサイトその他 - 山形浩生 の「経済のトリセツ」」こんなに早く日本語で読めるなんて幸せだなあ。文字をなぞることはできても理解できない可能性についてはおいておいて。


2014年10月15日 (水) [Vista] Windows Updateって、通知領域のバルーンからウィンドウを表示したか、スタートメニューから起動したかを区別していて、ダウンロード開始後に自動で通知領域に帰っていくかそのままデスクトップに留まるかを決めてる。細かい仕事してんな(ほめてる)。


2014年10月16日 (木)

最終更新: 2014-10-17T00:06+0900

gdipp_loader_32.exe

以前書いた不満を解消するべく慣れないことをした。

gdipp_loader_32.exeが、引数として与えられたプロセスが終了するまで終了しなくなってる。WaitForSingleObject(pi.hProcess, INFINITE);してるんだから必要なことなんだろうけど残念。

gdipp_loader_32.exeは第一引数(任意の exeファイル名)のディレクトリをカレントにして exeを起動するけど、そのせいで exeに渡される二番目以降の引数が相対パスだったときにファイルを見つけられない。例えば

検索しもってちなみにたどり着いた手順。

  1. >SetEnv.Cmd
    >dumpbin /all /disasm gidpp_loader_32.exe
  2. 出力を読む。CreateProcessW関数は KERNEL32.DLLからインポートする関数として3番目に列挙されていて、KERNEL32.DLLの Import Address Tableの位置は 408000となっているので、408000,408004,408008,...の3番目(408008)を覚えておく。
  3. 出力を読む。コードは .textセクションに含まれている。/disasmオプションを付けたのでニーモニックで読める。さっき覚えておいた 408008で検索すると次の行(だけ)がヒットした。

    004010B3: FF 15 08 80 40 00  call        dword ptr ds:[00408008h]

    呼び出し規約の違いは知らないが、callにそなえて末尾の引数から順番に pushしてるぽいところから推測する。

    CreateProcessW(argv[0], lpCmdLine, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, working_dir, &si, &pi);
    004010B2: 52                 push        edx
    00401094: 8D 8D F4 FD FF FF  lea         ecx,[ebp+FFFFFDF4h]
    0040109A: 51                 push        ecx (これがきっと working_dirに違いない)
    0040109B: 6A 00              push        0  (NULL)
    0040109D: 6A 04              push        4  (たぶん CREATE_SUSPENDED)
    0040109F: 6A 00              push        0  (FALSE)
    004010A1: 6A 00              push        0  (NULL)
    004010A3: 6A 00              push        0  (NULL)

    51(push ecx)を 6A 00(push 0)に書き替えることはサイズが違ってできないので、その前の準備段階を含めた 8D 8D F4 FD FF FF 51(lea ecx,[ebp+FFFFFDF4h]; push ecx)を 90 90 90 90 90 6A 00(NOP;NOP;NOP;NOP;NOP; push 0)に書き替えることにする。

  4. 書き替える範囲は 00401094からの7バイトだが Stirlingで開いた gdipp_loader_32.exeにそんなアドレスはない。dumpbinが出力した .textセクションの情報を見る。

    68EA virtual size
    1000 virtual address (00401000 to 004078E9)
    6A00 size of raw data
     400 file pointer to raw data (00000400 to 00006DFF)

    virtual sizeと size of raw dataの微妙な違いが気になるが、00401094-00401000+00000400 = 494のアドレスを Stirlingで表示すると目当てのバイト列があったので書き替えた。

  5. 同じ要領で WaitForSingleObjectの呼び出しも 90(NOP)で塗り潰した。

すごく時間がかかった。『解析魔法少女美咲ちゃん』を参考にしようとしたが、丁度いいところで OllyDbg便利そうということしかわからなかった。済んでしまえばこの程度のことなのでバイナリエディタだけでなんとかしたいが、PEヘッダとインポート情報を読んでアドレスを変換するのが果てしなく面倒で、また、間違えやすい。アドレスもそこから読み取る値も同じバイト列だからか、すぐに区別がつかなくなる。

ちなみに 最初の検索ワードが「disasm」で次が「ディスアセンブラ」それから「逆アセンブラ」「Ordinal Hint」「インポートテーブル」「dumpbin」と変わっていった。並行して、eXeScopeを実行したり bcc55と VCの binディレクトリに dasm.exeみたいな名前(※ildasmからの類推)のファイルを探したりしていた。tdump.exe / dumpbin.exeがそうだとは気付かなかった。


2014年10月17日 (金) 復刊というとちょっともにょる。今度出たのはシリーズ3作目で完全な新作です(たぶん)。「カーリー復刊によせて - Togetterまとめ」■20110803, 20121025


2014年10月18日 (土) Firefox 33 ベータ版リリースノート」■ひとつだけ気になる。「新機能 JavaScriptの文字列処理が省メモリで高速になりました。(詳細はこちら)」■「こちら」のブログ記事からリンクされてたバグのひとつ>Bug 1008590。struct Atomのポインタメンバがポインタと char配列の unionに変更されてる。■それはそれとして、他の部分、masm. で始まる C++の皮を被ったアセンブリが異質で気になる。このへん(https://github.com/herumi/xbyak/blob/master/sample/bf.cpp)と同じ発想なのかな。さっぱりわからんですよ。


2014年10月19日 (日) 『THE LAST OF US』をプレイしてる。難易度:グラウンドってなんやねん、地べたを這いずる超低難度のイージーモードか?という疑問を残しながら上級をセレクト。$1000たまったので女の子に猫リュックを与えようとしたら難易度:サバイバルをクリアしてないと買えないとか。くっそう。■プレイした感想は、これってバイオハザード?というもの。各種銃器、弾薬制限、工作(調合)、感染、クリーチャー、お供の女の子(たぶんはまり防止役。弾をくれたりする)、あたりの要素がそう思わせるのかも。バイオといっても 2しか知らないが。■「「真のバイオハザード」は伊達じゃない!PS3『The Last of Us』最新プレイムービーが公開!! : ゲームかなー」■システムがすごく快適。オートセーブで、死んでも死んでもだいたい1から数分前から再開できるので、一体明示的なセーブがどういうときに行うものなのかわからない。手に入れたものがその場で1ボタンで確認できる。一本道で一方通行。移動パートとバトルパートがわりにはっきり区別できる。大きな音や画面いっぱいのグロ画像みたいな露骨で陳腐な驚かせ方は狙っていない。■バトルパートが難しい。集まってこられると死ぬ。人間なら背後から近寄って締め落としたり弓矢で静かに一人ずつ消していけばいいんだけど、死体を処理できないからそのうち人が集まってきて囲まれる。ショットガンは撃ち合いに便利だけど、便利だから弾が切れる。感染者は集めて燃やすか爆破すればいいんだけど、火炎瓶も爆弾も3個ずつしか持てなくて頼り切れない。だもんで数が多いとスルーしたくなるんだけど殲滅するまで次の目的地がわからないことが多い。癪なので下げないが難易度は下げられるし(死にまくってると「途中からでも下げられるよ」ってヒントまで出る)、やり直しがスムーズなのでさして不満ではない。■馬を歩かせながら(walk? amble? trot? pace? canter? gallop?)タイミングよく△ボタンを押すと車の上に降りられる。基本的に馬の右に降りるのだが障害物があると左に降りる。歩きながらだとそのまま右に降りる。そうして車の屋根を貫通してお手上げ状態のジョエルが奈落に落ち込んで死ぬ。■■■3日でクリアした。ボス戦の演出が見事だった。これみよがしに床に置かれた割れた皿を踏んだりはしなかったけど。映画だと思えば長さは十分。物語を駆動する装置としてファイアフライを引っぱりすぎた感はある。作中でエリー自身が語ってたように、あいつら各地で死体をさらしてるだけの連中だったもの。脱出シーンはレオンだった。マチルダが一緒だったし視界が転倒しなかったのが違うけど。■テープレコーダーの再生にて、「大脳辺りょく系」。エリーの頭を開こうとしてた医師はとんだモグリだよ。酔っぱらうと表に出てくる部分として一般知識だと思うんだけど>大脳辺縁系。


2014年10月20日 (月) 2006年9月から2010年8月までに製造したルームエアコン室内機および2006年9月から2011年4月までに製造した家庭用空気清浄機(空気清浄機『光クリエール』、加湿機能つき空気清浄機『うるおい光クリエール』、除加湿清浄機『クリアフォース』)について、送風用ファンモータより発煙・発火する事故が発生しております。」■うちのは 2010年製の空気清浄機(加湿機能なし)だったので該当せず。年中つけっぱなしだから発火は怖い。■夏の間は風呂場で手洗いして握って簡易脱水した化繊の(※臭いが移りやすい)下着を風の当たるところにぶら下げておくと一晩で(正確には一晩もかからずに)乾くのが重宝してる。■手袋はこれ(手袋スタンド ハート)の足を本体上面の手がつっこめる穴に差し込むと吹き出し口の上で安定するのでそこを定位置にしてる。■雨が降ると除湿器を併用するけどそれ以外は風があるだけで足りる。もともとほこりっぽい部屋の集塵が目的だったけど、いつでも使える風があるという副次的効果も便利なもの。ダイキンのはそっち方向のアピールが弱いんだけど。


2014年10月21日 (火) String#toLowerCase と String#toUpperCase はブラウザーのロケーション設定がトルコだと正しい結果を返さない」■なんで正しくないって言っちゃうんだろう。たまたま自分が A-Z と a-z を相互変換したかったというだけのことなのに、大文字小文字の概念は単一の言語の専売特許ではなく toLowerCase/toUpperCase はその目的を過不足なく満たす手段ではなかったというだけのことなのに、なんで自分の期待する結果を返さなかったメソッドを間違っていると言っちゃうんだろう。


2014年10月22日 (水) 賛否両論なのが嬉しい。「はてなブックマーク - 電車内の足投げ出し、新型座席で解決 苦情なくなる:朝日新聞デジタル」俺はこっち派>20110310。補助でなく都合よく操作しようとする姿勢が醜悪。■じゃあ足ガバーな人をどうするかって、どうでもいい。理解できないし混んでるのにそれなら軽蔑するけど、だからといってどうにかしようとは思わない。原チャリ乗ってる中にも似たような格好の人は一定数いるでしょう(安全ヘルメットかぶった土方のおっちゃんとか)。それが基本姿勢なんじゃないの? たまたま自分がセーフラインの内側にいる事柄に対してあれはダメこれもダメって言い続けると、自分が他人より逸脱してる部分に関してもいずれ許されなくなるってことだ。いやだよそんな窮屈なん。そこで、いやいや自分は他人よりよっぽど平均的典型的な一般人だから得することの方が多くなるはずだ、なんて考えだす人は要注意。他人との比較ですべてを判断するのは差別ブラック化同調圧力ろくなことがないし、人を蹴落とし勝ち続けることでしか心の安寧を保てない。■こっそりシートを変更してたのなら何の感想も持たなかったろうに。意図が不快。隠せ。誇るな。


2014年10月23日 (木) なんとかネットが掲げる「入居者様募集」の旗が本当にあちこちにある。数は少ないがそこに混じって「入居者募集中」というよその旗もあって、ああやっぱりこれが普通だな普通の旗があってよかったと思った。■「入居者」だって、気持ち悪い。貸し手と借り手という関係より先に搾取者と被搾取者の姿が見えてしまう俺がパラノイアなんだろうか。言語感覚が世間と乖離してるんだろうか>20131208


2014年10月24日 (金) 2ページ目と3ページ目に興奮する。「サムスン電子の工場で白血病はなぜ多発したのか 【後編】 文・立岩陽一郎(NHK記者) | 経済の死角 | 現代ビジネス [講談社]


2014年10月25日 (土) [SakuraEditor]「Sakura Editor / PatchUnicode / #789 共通設定のツリー表示」■目的は何だろう。スクロール対応でダイアログサイズに制限されない設定スペース、ではない。縦と横の2軸に設定を再配置、ではない。多段タブだとわかりにくい(特に段の変わり目)タブの並びはわかりやすくなった。でも Ctrl+Tabが効かなくなってまどろっこしい。■他はどうかな?と最初に起動してみた SNESGTというソフトが面白い、というか謎。配置はサクラのツリーと同じ(タブを左に並べたかたち)。左列のカテゴリをキーボードで移動するとフォーカスが右列に飛ぶので連続してカテゴリ移動できない。コントローラー選択のコンボボックスがキー入力を握りつぶしてしまって反応しない(これは関係ないか)。Ctrl+Tabでタブ(?)移動できるのだが右列のタイトルが変わらず内容だけが変わってる(クリックをトリガーにしてタイトル文字を変更してるのかも。SpeedFanもクリックをトリガーにして設定画面下部にコントロールを配置してる。ソフトの価値はそこにはないからキーボードで使えないからって捨てないけど、やめてほしい。普通が一番(最大多数にとって)使いやすい。■こういうときは Meryを見たらいいのかな、と2番目に起動したのは Mery. 設定が多い整形タブの中身だけがツリー表示だった。そういえばインターネットオプションとその詳細設定も同じだ。自由度の高い配置と設定手段(いずれも場所をとる)と、単純(チェックボックスかラジオボタン)だが数が多いオプションのバランスを考えるとこうなるかも。Firefoxのオプションダイアログと about:configとかも。■基本(幹)↔詳細(枝葉)、単純↔複雑という2つの軸がある。些末で複雑な設定が独立したタブになってしまうのが不本意。サクラエディタは複雑な設定画面が多い。メインメニュー、ツールバー、ファイル名表示、キー割り当て、カスタムメニュー、強調キーワード、マクロ、プラグインあたりの8つがそう。だいたいが可変長の(=ユーザーが編集する)リストを使っていて、左右の位置関係を利用したものも複数ある。残るのは全般、ウィンドウ、タブバー、ステータスバー、編集、ファイル、バックアップ、書式、検索、支援の10。残り物をマージして基本(ダイアログ画面で設定)と詳細(ツリーで設定)の2タブに再構成するのは……ありかな。[基本1]タブと[基本2]タブが発生するようでは失敗だけど、フォントを設定するためのボタンをツリーに押し込める方法を見つけないと、重要でないフォント設定ボタンがいくつも画面に並びそう。そういうときのための[フォント]タブか?■ちょっとモダンな雰囲気になるだけの変更も無意味ではないけど、使いにくくなるのは……(といっても気がついたのは Ctrl+Tabと Ctrl+PageDn、Ctrl+PageUpだけ)。Firefoxのオプションダイアログはタブ風の画面分けの中にさらにタブがあるんよね。そうなるとキーにグローバルな意味を持たせられない。まったく……。■Linuxにでも行けって言われそうだけど、テキストエディタの設定を変更しようとしてそのテキストエディタ自身が起動するってかっこいいよね。


2014年10月26日 (日) 2 段階認証は本当に安全なのか調べてみた」■揚げ足取りなんだけど、二要素認証というよりはワンタイムパスワード。本当の安全なんてものはなくて、どのていど安全かのその時々の尺度があるだけ。あとまあ、ネットとそこに接続した汎用端末を使ってる限り、割と隙があるんだなあということがわかりました。■冷蔵庫の製氷用の水タンク。上面全体がフタになっていてそこに給水用の丸窓と持ち手になるくぼみがついてる。フタに取っ手がある。でも、冷蔵庫からシンクへの1メートルちょっとを無雑作にぶら下げて移動させることができない。そういう人間です。


2014年10月27日 (月) ミシンってちょっとわくわくする機械だ。家庭科の時間の楽しみを思い出す。Nouvelle270(470)か LS700か、品定めしてるだけで十分楽しんだ。実際のところ買っても使う機会と目的がほぼないから。ミシンたたきとかいうものくらいか。挙げたのがどちらも brotherなのは、製品について十分に調べて比較検討できる Webサイトをこのメーカーだけが用意していたから。重くて大柄で、仕組みと仕上がりが直結していて(=調整が容易かつ直観的で)、何でもできはしないけど応用が効く(=小さく初めて深く広く入り込んでいける)ものが道具としての好み。言語でいうと JavaScriptみたいな(Lisp系は知らないから)。C++よりは Cみたいな。■■■2年近く前の記事だけど LS700を含む3メーカーの比較表がある>「BOX送りで厚物縫いの安定性が桁違いに|ミシンの買い方、選び方!」。LS700は表にだけ登場。あまりおすすめではない。表に関して、「縫い目長さ表示」と「振り幅表示」が唯一「なし」になっているのだが、この2つをアナログダイヤルで設定できるのが LS700のいいところではないか。液晶の表示を切り替えなくても現在の設定がダイヤル位置でわかるし、調整するのに+/-ボタンを連打する必要もない。模様を選ぶと最適な幅と長さが自動的に設定されるらしいから頻繁にいじる必要はないかもしれんけど。


2014年10月28日 (火) 26日。(夏の恰好に毛が生えた程度では)寒いけどわずかに温かさを感じられる。20℃はあるんじゃないかと思っていたら道路脇の温度計が20℃を示していた。27日。前日汗をかいたのに懲りて一段涼しい格好で出たらひと雨降ったあとでぐっと冷えた。震えがきそうでこないギリギリの温度。ギリギリ10℃台後半を保っているのではないかと予想していたら道路脇の温度計は15℃を示していた。いやあ、正確だなあ。22℃と24℃の違いもわかるしね。つまりそういう風にして日々キャリブレーションしてきたわけだ。のどが痛くなるのも息切れしやすくなってガス交換の効率が下がってるんじゃないかと疑われるのもまだ先。吐く息が白くなるのはもっと先。このへんは寒いといってもほとんど氷点下にはならない。夏は筋肉がへばり冬は息が苦しいし着ぶくれもする。今が自転車をこぐのに最適の温度帯。


2014年10月29日 (水) やっぱり気持ち悪いよね。「マスコミが”main”を”メーン”とか表記する風潮 : 暇人\(^o^)/速報 - ライブドアブログ」■最近に限った話じゃあないんだ>20050407p05.01。黒船までさかのぼれば無心で生の発音を文字に移そうとしていた時期があったはずなんだけどな。


2014年10月30日 (木) テキストラベルは必ず表示しよう」(アイコンのユーザビリティ - U-Site)■以前不満を書いた>20140730。わかりましたか?>Reader Store。■アイコンといえば GT4もひどかった。三角コーンが何を意味するかなんてプレイした今でもわからんよ。■ケータイメールでの絵文字の使い方にも不満を書いた>20130329。■たぶん例外は自分で目的を持って配置したアイコンだろう。それでもアイコンツールバーを使ったことはないけど。たぶんあれはアイコンが小さすぎる。そして大きくすると邪魔だ。だからキーボードショートカットを使う。

最終更新: 2014-11-06T01:16+0900

[Firefox] CSP WARN: Directive inline script base restriction violated

GitHubのページ(fizzbuzz.js*)を読んでから、名前付き function expressionの名前 f が外に漏れる IEでは動かないのではないかと思ったのでブコメ(現在は 9 users)を参考にしようと自作のブックマークレットを実行したが反応しない。初めてのことだ。エラーコンソールを開くとこれが出ていた。

時刻: 2014/10/30 21:13:01
警告: CSP WARN:  Directive inline script base restriction violated

ソースファイル: https://gist.github.com/kazuho/3300555
行: 0
ソースコード:
javascript:void function go_hatebukome(url,encode){var prefix="http://b.hatena.ne.jp/entry/",m=url.match(/^http:\/\/([^?#]+)(\?[^#]*)?(#.*)?/);if(m){location.href=prefix+m[1]+encode(m[2]||"");}}(location.href,encodeURIComponent);

CSPというのは Content Security Policyの略のようだ。

Content Security Policy 1.0 (日本語訳) (CSP1.0の仕様。今では CSP1.1もあるみたい)

以下が GitHubから返ってきていた CSPヘッダ(※整形した)。

content-security-policy:
  default-src *;
  script-src
    'self'
    https://gist-assets.github.com
    *.google-analytics.com
    https://collector-cdn.github.com;
  frame-src
    'self'
    render.githubusercontent.com
    https://gist-assets.github.com
    *.google-analytics.com
    https://collector-cdn.github.com;
  style-src
    'self'
    'unsafe-inline'
    https://gist-assets.github.com;
  object-src
    https://gist-assets.github.com;
  report-uri /_/csp_reports

まーた Firefoxは自分が User-Agentであることを忘れて仕様に盲従してるのかと思ったのだが(過去に書いた:20121022。外部リンク:「autocomplete=offと人の主体性 - Weblog - Hail2u.net」。仕様を変えるか従うかの選択肢しかないだろうことは理解する)、CSPの script-srcの解説では

'unsafe-inline' が 許容 script ソース集合 の中に含まれていない場合、 UA は:

  • インラインスクリプトを実行してはならない( script 要素によるものも, インラインのイベントハンドラによるものも,いずれも)。
  • javascript URI に含まれるスクリプトを,実行してはならない。 ( UA は、この制約の施行の下でも, “ブックマークレット” に含まれてるスクリプトについては、実行するべきである。)

というように、ブックマークレットは実行すべきだと明示されている。この直後に書かれている、unsafe-evalが含まれていない場合の制限に引っ掛かるブックマークレットでもない。

'unsafe-eval' が 許容 script ソース集合 の中に含まれていない場合、 UA は:

  • eval 演算子, eval 関数のいずれについても、それらの引数を評価せずに,セキュリティ例外を投出しなければならない。 [ECMA-262]
  • Function 関数が構築子として呼び出された際は、セキュリティ例外を投出しなければならない。 [ECMA-262]
  • setTimeout / setInterval 関数が, callable でない(例えば関数でない)第一引数を伴って呼び出された際には、タイマーを作成せずに,ゼロを返さなければならない。

仕様がどうあれ、ブックマークレットの実行を制限されるいわれはない。ボールはすでにクライアント側に渡っているのだから。

 @2014-10-31

去年の話題「security - How to disable CSP in Firefox for just bookmarklets? - Super User

そこからリンクされてる3年前の話題「javascript - Does Content Security Policy block bookmarklets? - Stack Overflow

答えて曰く、グリースモンキーを使え(やなこった)。外部スタイルシートにスクリプトを記述してブックマークレットからロード&実行しろ(面倒だしバッドノウハウ過ぎるし……え?実行も evalもできるの?)。誰にもユーザーがスクリプトを実行するのを阻止することはできない(全く同感!)。CSPを切ることができる、ただし完全に(歴とした証明書を用意できない銀行様みたいな指示を出さないで)。バグとして認識されてはいるみたいよ、こことか、そこを見る限り(23でアップデートを止めたから修正されても関係ないなあ)。

GitHub以外にも広がってきたら CSPを切る。

リンクを追加。

* 現バージョンに固定した URL: https://gist.github.com/kazuho/3300555/3ce4edf79f683b23a7b94678f8c358e997a7f467


2014年10月31日 (金) 袋ソースのメーカーが変わった。味は8割方同じで、1割お好みソースが混じってる感じがいかにも。本題。パッケージが全然なってない。色数が少ないのはいい(ほっといてもいい、どうでもいい、という意味)。向きを区別する手がかりが減ったのが最初に気が付いたこと。文字で上と下(付随して左右)はわかるが表と裏が一見しただけでわからなくなった。大した違いではないと思う? 意識して向きを区別する必要が新たに生じたというのがそもそものポイント。パッケージは横長にデザインされていてマジックカットは底辺の反対(うわべ?てっぺん?上底?)に付いている。印刷を見て掴むとそのまま自然には開けられない(中身は液体だから底はもちろん左右の端を切り落とそうとは思わない)。形に注目して掴んでみると、右と左のどちらから切り始められるのか印刷を眺めるまでわからない。そしてまた、切り落とした角の大きさとソースが出る口の大きさが比例しないようなよくある加工が1つの角にしてあるから、気にし出すと表と裏に相当する違いまで区別する必要が出てくる。次に気がついたのは、角が痛いってこと、マジックカットではない側の2つの角が。親指に針が刺さったような痛みを感じて気がついた。■以前のメーカーのものは、1)上下(左右)、表裏の区別が意識せずとも容易に、文字だけでなく色味や全体の印象によって、つく。2)マジックカット加工されているのは左辺であり、また、左辺の上下を区別させる別の加工はなかった。加工はないが表面の左上に切り取り線が印刷されていた。3)同じプラスチック袋だが柔らかく、指に刺さったりしない。■どうして不合理に不合理を重ねたうえ優しくなくもできるのだろう。■左手で角をちぎる人にとっての自然は考えておりません。でも常に一定の型にはまるのならその逆をとるのも簡単だと思う。少なくとも、平等に開けにくい○○○○の袋みたいに、毎度毎度眺めて透かしてこねくり回す手間はないだろう。■■■@2014-11-10 今の今まで気が付かなかったが、袋の角でケガをしないようにという注意書きがあった、一方には。ということは、角が柔らかかったのは偶然ではないかもしれないってことだ。■刺身にタンポポをのせるように角を切り落とす手間をかけられる自分は恵まれてるな。