/ 最近 .rdf 追記 設定 本棚

脳log[2015-06-14~]



2015年06月14日 (日) こんなのが通販サイトに並んでてマウスボタンポチッで買えるのか(※値段さえ見なければ)。「ビスクドール 作者:西村勇魚 作品名「思春期」 通販 - ディノス


2015年06月10日 (水) [C++]「ローカルな文字列テーブル | 闇夜のC++」■これ気になってた。staticを付けるとプログラムの起動時間に悪影響があるんじゃないかと想像して、あまり呼ばれない関数でのことならオンデマンドでスタック上に構築する方がいいんじゃないか、とか。


2015年06月09日 (火) [C++] なぜヘッダに実装を書くという発想になる?「【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)(10742)|teratail」■ファイルを分けるのが面倒でひとつにまとめるというのなら、それはヘッダを省略して実装ファイル(.cpp)のみにするということになると思うのだが。そうでないと複数か所から #includeされたときに定義が重複するのでリンクできない。「Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!」が成り立つのはヘッダがインラインとテンプレートで構成される特別な例だから。.cppひとつだけを用意したとして、その実装を利用する他のモジュールで必要なだけ(つまり、コンパイルを通すのに必要なだけ)関数プロトタイプやクラス定義(それとインライン関数とテンプレートのコピペなぞと extern const)を書けばいいんですよ。利用する場所ごとに同じものを何度も書いたり修正したりするのが面倒になったら、それらをまとめたファイル(拡張子は .hとか)を作って #includeするようにすれば自動コピペ完了。DRYだし便利だね。ヘッダってこういうもんでしょ?■『大規模C++ソフトウェアデザイン』を参考図書に挙げた回答は正しい。これで依存性というものを2種類認識することができる。他に必要な知識は、コンパイルという行程の正しい理解(何が含まれ何が含まれないか)とそれに際してコンパイラが必要とする情報について。■.hと .cppの行き来が面倒というのならできるだけ早くモジュール外部に向けた仕様を固めることだ。それがつまりヘッダに書くべき中身であるので、.hの変更が早々に必要なくなる。そのあとで宣言に対応した定義の追加を .cppでする。必要なら不適切な依存関係(循環とか)に注意しながら他モジュールのヘッダを取り込んだり、staticを付けたファイルスコープの関数を補助に使ったりする(これらも .cppの中の話)。モジュール内部でだけ通用する新しいクラスを .cppで定義してもいい。pimplクラスがその典型。■ヘッダに書かなければいけないものはないし、書くと問題がある(が、構成によっては顕在化しない)ものがあるし、書く必要がない(=書くべきではないが書くことができる)ものがある。すべて把握した上で目的を持ってヘッダを書かなくてはいけない。■C++の思想が見えてこないという追記があったが、これに対しては『C++の設計と進化』通称D&E本が最適だし、他に候補を知らない。■SQLiteが amalgamationという名前のもとにすべてをくっつけた 1ソースファイル版をダウンロード可能にしてる。これって VC++のリンク時コード生成オプションと同じ効果を期待した手法なんだと思ってるけど、実際のところどうなんだろ。ページがあった>The SQLite Amalgamation。機械生成コードのための補助ツールが不要だとか、ポータブルで組み込みやすいとかの利点もあるとか。


2015年06月07日 (日) 申し訳ないとは思ってる。「宅配便の2割が再配達、減らしたい… 国交省が検討会立ち上げ : 暇人\(^o^)/速報 - ライブドアブログ」■家が無人の時間が長いから受け取りようがない。クロネコメンバーズだけどアマゾンの荷物は対象外らしく事前指定できない。それでもヤマトは針の穴を通すように出発直前や1時間だけ帰ってるあいだに持ってきたりする。できすぎなので、何度か通りかかってるんだけど不在通知を入れないでチラチラ様子見してんじゃないかとか、受け渡し成功日時を蓄積して予測してるんじゃないかとか裏を探ってしまう。■どうする?コンビニ受け取りは段ボールのままではかさばって持ち帰れないし、重くて運べないから通販を利用するという動機を無視してる。昔みたいに適当な場所に放り込んでおいてくれて構わないのだけど、置いてあるはずの荷物が見あたらなければ当然責任の追及はします。宅配ボックスを無料で貸してくれないかなあ。ネットで検索すると置いてても使ってくれないという声がよく目に入るんだけどね。■ボックスってピンキリで、ハンコのぶら下がったただの袋がキリ。良さそうだなと思った『["パナソニック 宅配ボックス COMBO ミドル 前出し 右開 CTN4020RME ハーモニーブラウン"]』はピンに近いのかな、およそ¥60000。■良さそうだと考えるのは、1.誰でも入れられるけど出せるのは持ち主だけ。2.入れなければハンコが押せない(かどうかは不明)。3.石が入っていたというこちらの主張は信用してもらうしかない。(1)しか実質がないから(1)だけで十分なんだろう(俺はね)。


2015年06月06日 (土) 順調に 5+7(時間)+検定1回目で教習終了。追加料金は発生せず(超重要)。検定では進路変更のときにハンドルをくいっとひねって曲がってると指摘を受けた。一番苦手で機会があるごとに集中練習してたスラロームでは3番目のコーンをまわるときのアクセルが早すぎることまで普段通り。鬼門とされる一本橋は教習中から安定して 13秒。これ以上欲をかかなければ余裕。普通二輪教習の時のブレイクスルーであったまっすぐ先の一点を見るようにというアドバイスが今でも有効だ。それ以外では、リアブレーキを引きずって最初から最後まで一定の速度で、姿勢の変化でねばろうとは全く考えないでハンドルを小刻みに動かしていくのと同時にお尻の位置をちょいちょいずらしてる(バイクを左右にしてバランスをとっても人間はまっすぐにってこと)。指導員の中にはタイヤより細い縁石の上をそうとうな時間をかけて走る……よりも歩くよりもゆっくり通り抜ける人がいた。自分もついていくべきか迷ったけど一本橋のスタート位置で待ってました。■大型の教習車は2台だけで NC750だった。2気筒。同じホンダの CRF250Lと同じスイッチ配置(真ん中に大きくホーン。その下にウィンカー)で、間違えて何度もホーンを鳴らした。手が小さい方ではないけど、クランクなどで半クラッチをしながらでは親指がウィンカースイッチまで届かなくて、手のひらを浮かせての危なっかしい操作だった。ステップに足先を乗せてかかとを内側にぎゅっと締め付けても反発が返ってこなくてしっくりこない。立ち上がると左足のかかとがセンタースタンドに邪魔されて開くので、スタンドを踏みつけるようにポジションを直さなくてはいけない。波状路前の助走距離が 1Mほどしかないので忙しい。プラスチックで中身の詰まっていない偽タンクは幅が広すぎだし表面が滑りやすく、まったく膝を受け止めてくれない。初回2時間を終えた翌日(!)から2、3日は股関節が痛くて自転車にまたがるために足を振り上げるのがつらかった。としだしなまくらだねー。■思ったラインで走るのがなかなか難しい。もてあまし気味のトルクで外にふくらんでしまう。コースからはみ出てないか心配で前輪の先から目が離せなかったり、前輪を縁石にぶつけて(※不可抗力)強制的に軌道修正したりしてた。傾けて体勢を作ってから内側に倒れないだけのアクセルを開けるのがよさそう。でも Uターンでこれをすると期待していた駆動力が得られなかったときに即こけるので、実際やってみて紙一重だと思ったので、リアブレーキを拮抗させてアクセルを開けておくことにした。ひょっとしたら曲がるときもこっちのやり方でいいかも。これはクランクや一本橋での A/Tに必須のテクニックでもある(※停止しそうな低速で勝手に動力接続を切られないようにアクセルとブレーキを拮抗させる。A/Tって難しいね!)。■つま先を開いていると減点だと聞いたが、教習中に一度つま先を地面か縁石に引っかけて勝手にローギアに入ってしまった。納得です。■教官の後ろについて走ったとき。その人は走り出して両足をステップに乗せたあと必ず両膝をぱかぱか開いて姿勢を正すようだった。おっさんくせぇ所作だなぁと思って眺めていた自分は、その後ろで必ず中腰になって着座位置を正していたのであった。まあ、必要な儀式だよね。■400ccや 250ccでは全然意識してなかったけど、リアブレーキに大変お世話になった。リアブレーキは前ブレーキと違って駆動力が地面に伝わる前に作用するんだよね(たぶん)。だからアクセルを開けたまま使ってもタイヤのグリップを無駄に消費しない(たぶん)。なぜアクセルを完全に閉じられないのかというと、セカンドギアのエンジンブレーキが強すぎるのがいけない(※白バイ隊員と教習所指導員の追いかけっこ動画で、白バイの人はローギアだったらしいけどね。そりゃあ、上が回りきってしまわない限りは低いギアの方が低速レンジが広くていいかもしれないけどね、無理だよね)。チェーンの張る側(上と下)、ドライブスプロケットとドリブンスプロケットの役割が入れ替わるときのギックリシャックリをいったいどうしたらいいのだろう。スラロームが一番苦手だったけど、それを間延びさせたような車用の S字からもうダメダメなのだった。つまり減速と加速の切り替えがダメ。そもそも切り替えるつもりがなくて、一定速度でするするーっと抜けようとしてるから変なところでチェーンが張り変わって姿勢が崩れる。アクセルが閉じてないから減速が不十分だったり時間がかかったりしやすいとは思うけど、リアブレーキでごまかすことを覚えたのであった。半クラッチでごまかす場面もあったと思うけど意識はしてない。ごまかしごまかし。■似たようなのを何度も受けてるし、自分のことなのでいちいち教えてくれなくてもだいたいわかってる。1.06MiB>OD式安全性テスト(20150512)(匿名加工・減クオリティ).jpg■KTM、ハスクバーナ、BMWあたりだと 450ccなんて微妙なラインアップが過去にあったんだけど、仮にまだあってもそれが公道を走れるレーサーではメンテナンスに不安があって、国内に目を向けると大型免許を必要とするオフ車がもともとなかったところに加えて DR-Z400Sがすでになく、よくて WR250R、次点で KLX250。これだけ。前に乗ってた DR250Rと変わりばえしないか、下手をすると規制対応デチューン&重量増(※カタログスペックは液体の重さが別だったり込みだったりすることに注意。決まりがあるのか知らないけど、17Lタンクの DJEBELみたいなのは売りにくくなるよね。乾燥重量を並記はできないのだろうか)で劣っていたりする。どうしても重くなるならなるで 400ccのエンジンを積んでいればまだ正当化できように。すでにピークを過ぎていたであろう 2000年頃と比べてもさみしい限り。■■■@2015-06-16 KLX450R「OFF-ROAD : Kawasaki モーターサイクル&エンジンカンパニー」ただし、海外向けモデル。450ccで 126kg。対して国内でも販売されている KLX250は 138kg。どういうことなん?


2015年06月04日 (木) ファイアボール チャーミングのドロッセルお嬢様が「かたす」という言葉を使う(第9話)。あるべき音が抜けたような、すわりの悪い、ラフな響きのこの言葉は関東地方の方言だとか。お嬢様には使って欲しくなかった。■テレビから流れてくる無意識の関東ローカルの話題が鼻につく。関東平野に風が吹いてもどうでもいいよ。桶屋じゃないからね。


2015年06月01日 (月) 歩行者が車を殴れば交通マナーは向上する - 趣味の方法」■自分の立場で鬱憤が晴らせれば満足ってな手合いかと慎重に読み進めていった。「良いことばかりな気がするが、ストレスたまりすぎおかしくなったサラリーマンが24時間無差別に車を殴り続けるといった事案も出てくることだろう。」うんうん、こういう演繹は必要だよね。と、ここから雲行きがあやしいぞ。「この満員電車は、死人を詰め込み墓へと運ぶ乗り物に似ている。俺は死体になってしまったッ!! 俺は絶対に満員電車を許さないッ!! というわけでイカれたサラリーマンの自宅の地下には大洞窟があり、そこを秘密基地リーマンケイブとしている。乗り物が通ると自宅の屋上に設置されたサーチライトが輝き、おかしくなったサラリー野郎が殴りに行く。」■読み物としては楽しめたけど、最後の「譲り合い みんな仲良く 交通戦争」に関して少し。譲り合いってなんだ? 譲り譲られ、あるいは譲り返し、それは(輸送効率を考えなければ)ほのぼのしたいい光景だと思うけど、効率と安全のために交通ルールが定められていて、俺はこれを無視できないし、自分に関わる範囲で無視する理解していない他人を糞味噌に軽蔑してるわけだ(子供と年寄りとペットとおばちゃん自転車に勝てないのは当然のこととして受け入れてるので、それ以外に対して)。譲ることができるのは優先側の人だけで、非優先側の人は譲られることしかできない。譲り合いって可能か? 勘違いした非優先側の人間が譲り合い譲り合いと主張し勝手に譲られようとする(※能動的な受け身という矛盾)おかしな事態を招く危うい言葉ではないかと思う。譲り合いというのは一時停止の標識や標示の省略された、住宅地のような場所においてのみ意味のある言葉ではないか。


2015年05月31日 (日) 1)エンジンスィッチが回転式ではなく、Power Onと書かれた押しボタンになっていた。」■はてこれが 2010年代の変化だろうかと S2000(1999年発売)について検索してみた。「S2000は鍵をキーシリンダーへさしてONまで回してからプッシュスタートボタンを押さないとエンジンがかかりません!これはかなり不便!発売当時はカッコいいと思っていたこのプッシュスタートも今のプッシュスタートに比べるとかなり不便。これならプッシュスタートじゃなくて鍵でエンジンを始動した方が早い!」■ボタンはボタンでもキーを差してひねってから押さないといけないボタンだった。ひょっとして、ひょっとしてだけど、ONまでひねったときその延長でエンジンまでかけられたら別体のスタートボタンも手間も減らせて便利じゃね?■鍵の進化に呼応してるらしい。「最近の車についてです。最近はプッシュスタートでエンジンを掛ける車が... - Yahoo!知恵袋」防犯、無線ID、自由な形状。■俺なんかは目に見えないものより物理デバイスの方を信頼してしまうけど、その物理がいわゆる鍵のギザギザだったりただの導線ではいけないわけだ。無理に例えると、WEPを使っているかもしれない無線LANより有線の方が間違いがないという感覚。だけど有線LANは本体にアクセスされてケーブルをつなぎかえられると終わる。なのでただの物理ではだめ。ディンプルキーという物理デバイスの位置づけは?■無線や電子の方に目を向けるとイモビライザーに対してイモビカッターという言葉がある。整備用コネクタがバックドアだったとか。セキュリティと利便は往々にして相反する。パスワードの扱いとかね。ハッシュ化するしないはあくまでも判断の結果で、そもそも守るべき情報が何か(それはパスワードではない。パスワードは正規のアクセス手段ってだけ)によってトレードオフがどちらに傾くかが決まる。本棚.orgのようなノーガード戦法もありえなくはない。閑話休題。キャッシュカードのスキミングや学習リモコンみたいな受信&再生装置で破れるものではなくて、きちんと認証してるみたいではある。「イモビライザーは、専用キーに埋め込まれたトランスポンダと呼ばれる電子チップが持つ個有のIDコードと車両側のIDコードを電子的に照合し、(略)。キーのIDは暗号化されており、その組み合わせは膨大な数になるため、複製することはほぼ不可能に近いです。」■TPM(Trusted Platform Module)っていうのがここで例えに出す名前として適当なのかは知らないけど、物理的な暗号デバイスを使っていて、それをきちんと説明している(※仕組みを公開すると破られる暗号は暗号ではない)電子キーは古典的な鍵より信用していいのかも。それでもやっぱりスマホキーは論外だと思うんだけどどう?■汎用性だとか書き換え可能だとかプログラマブルだとかいうのが余計なんだよね。結果として使い捨てになってもいいから、最後に不可逆な手順で FIXしたい。予め選択肢(のひとつ)を捨てるというのも選択や戦略のひとつ。そうして初めて選べるものがある(つまり、そのために捨てた)とかなんとか。


2015年05月29日 (金)

最終更新: 2015-05-31T16:39+0900

[javascript] 1時間以内に解けなければプログラマ失格となってしまう5つの問題の5番目

ファイル作成日時をみると1時間半前だった。不合格。

繰り返しのしかたを決めるまでに時間がかかりすぎた。再帰、ツリー、順列。再帰関数は共有して進めたり戻したりする変数とローカルな変数を整理しきれなくてあきらめた。深さ優先探索が書けないとかやばいね。三進数を使った順列(※下の解法)はちょっとだけ違う似たような計算を何度も繰り返すのがもったいない。カウンタの上限がすぐ来てスケールもしないし。

-1+2-3+4+5+6+78+9 は答えに数えないみたいだけどそのまま。

var CScript = WScript; // cscript.exeでの実行をおすすめします。
var Op = [
	function op_shift(o, x) {
		o.buf = o.buf*10 + o.buf/Math.abs(o.buf)*x;
		o.expr += x;
	},
	function op_plus(o, x) {
		o.sum += o.buf;
		o.buf = x;
		o.expr += "+" + x;
	},
	function op_minus(o, x) {
		o.sum += o.buf;
		o.buf = -x;
		o.expr += "-" + x;
	}
];
for (var op9seq = Math.pow(3,9)-1; 0 <= op9seq; --op9seq) {
	var o = {sum:0, buf:0, expr:""}, q = op9seq, r;
	for (var x = 1; x <= 9; ++x) {
		r = q % 3;
		q = (q-r) / 3;
		Op[r](o, x);
	}
	o.sum += o.buf;
	if (o.sum == 100) {
		CScript.Echo(o.expr);
	}
}

ところでこちらの、「Kazuho's Weblog: C言語で「1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に」の5問目を解いてみた」、変数 n の使い方がわかりません(わからないから自分は sumの他にもうひとつ bufという変数が必要になった)。ブコメに小町算とあるのだけど、これがヒント?


2015年05月25日 (月) 「同大学では周辺の土を回収するとともに除草剤を散布しており、流出による環境への影響はないとしている。」(名古屋大で遺伝子組み換え植物が流出、国内では初めて | スラド サイエンス)■それは、鍵をかけて鍵がかかってることを確認しない行為だ。そもそもありえないことが起こってるのに、まだ願望や希望的観測を当然のように期待するのか?■ここまで書いてからリンクされていたプレスリリースと YOMIURI ONLINEと朝日新聞DIGITALを読んだ。読売がクソ。紋切り型でそれ以上考える必要のない答え、はりぼての安心をあてがっておけば満足すると思われてるなら見くびられたもんだ。■朝日の方はプレスリリースに書かれていない問い合わせ窓口の具体的利用例まで書いてるんだよなあ。そして、「影響はない」ではなく「影響はみられない」と書いている。まったく正しい。読売はクソ


2015年05月20日 (水) 条件演算子(三項演算子)を可読性低いとか言わせない - Qiita」■const厨的には式と文の違いにより ifでは代替できない点も見逃せない(※const変数を初期化するとき if-elseで分岐することはできない)。条件演算子にも限界はあって、初期化に一時変数が必要になってくると、関数内関数(みたいなもの)を使うか、constをあきらめて ifと代入を使うことになるけど、Rubyなら ifが値を返すので両方のいいとこどり!でも後置ifに間違えられたり改行が区切りになったりでうまく解釈されないことが多いよ!そういうときに case-when☞の2番目の使い方(caseの後ろの式を省略する)が使える(そういう使い方がある)とは最近知った。■条件演算子をもっと乱用しよう⁉「C++ の、スマートだと思う人がいるかもしれないコードの書き方12選のつもりが6個ぐらいで断念 - Qiita」同じ人の別の投稿がまたツボを突いている「ruby の改行 - Qiita


2015年05月19日 (火) 死亡事故で運転手に逆転無罪 「自転車が赤信号で横断」 : 暇人\(^o^)/速報 - ライブドアブログ」■最近になって考えが変わってきた。これって、「信号無視するバカは死んでもやむなし」「信号無視するバカは轢いてもお咎めなし」ってことじゃないの。それよりも、「自動車という重量があり速度も出る危険物を転がそうというのがそもそもリスクを引き受ける行為である」「右折で徐行していたはずなのにどうやって死なせた?」という方を重視したい(※例外は自転車が車を使って自殺した(としか考えられない)場合か)。最初に人間ありきで、車はただの道具だからな。死亡事故に対して無責任では済まされないだろうよ。どうして人を殺してはいけないのですか、という問いの前提をこんなことで否定できるものか。


2015年05月18日 (月) ダメになる一方のアマゾン。列挙してみよう。■1.購入ボタンが逃げる。ロード後に挿入される何かのせい。■2.ほとんどが画面外に展開するので欲しいものリストの追加先が選べない。これは 1と同根。押し下げられた購入ボタンの玉突き。■3.商品ページトップのカスタマレビューへのリンクが画面遷移でなくスクロールになったので、購入ボタンのある画面トップに戻る方法が手元からなくなった。ホイールはないし戻るボタンを使うとアマゾン外へ戻ってしまう。代替手段があるとかないとかではない。クリックと対になる操作は何かってことだ(それはスクロールバードラッグや PageUpキーではない)。それを忘れるから手が泳いで操作に迷う。■4.ポインタに反応してしゃしゃり出てくるポップアップがページ内容を隠しクリックを阻害する。商品リストのページめくりを邪魔する。お届け先のポップアップが注文履歴のその他のサマリを隠す。どうでもいい(だから最初は隠されていた)追加情報が商品サムネイルと商品ページへ移動するボタン(※二つは同じもの)を隠す。■5.真の配送料を隠したまま 1-Click購入ボタンを押さそうとする。■6.デフォルト購入オプションで定期便をごり押しする。それって定期便を申し込むまで毎回の不便を強いるってことだ。■7.kindleをごり押しする。kindle版しか入手手段がないってわけでなくても積極的に ISBN(ASIN)を乗っ取って前に出てくる。検索結果ページの出版年月日(だと思っていた日付)も kindle版発売日で上書きされていたりする(これはまあコンテンツにフォーカスすれば判型は区別すべき差異ではないという判断の結果として理解できなくはないが、それでも、kindle化した日付に意味があるか?)。■8.欲しいものリストが壊れている。ページをめくってると2、3ページに1回くらいの割で前のページの商品が混じってくる。リロードすると直る。■9.壊れているのはポイントも同じだった。「Amazon.co.jp:クチコミ:Amazonポイントがおかしい」ポイント制度について。「華僑に学んでわかった「金は天下の周りもの」の本当の意味とは?|Career Supli」を読むとポイント付与の正しさがわかる。それは付与する側の、であって、ポイントを割り引いて実質XXX円とか心底どうでもいいし目にしたくもない。しょうもないことに管理コストを払ってるな(お互いに)と思うだけ。■10.検索が Ajaxになったら、検索実行後に入力欄にフォーカスが残ってるのが予想外でページスクロールに支障をきたす。Enterキーでひと区切りつけてるのに用済みの入力欄に足を引っぱられる。たぶん blurメソッドでフォーカスを飛ばせば解決するというものではない。予想を裏切る作為(autofocus属性とかも)が気に入らないのだと思うから、慣れによって予想は変わるので決まった正解はない。では取り除かれるべき作為は何かって、ページ遷移を省略したこと。検索がインクリメンタルに自動でシームレスに行われていれば予想外の出来事はなかったと思うがね。■11.トップページが商品画像の羅列になって情報量がほぼゼロ。俺ってたぶん画像(現実)認識能力が低いのだろう。見たものから何かを読み取ることが苦手(20140730)。あるいは文字の読み取りに最適化しすぎている(20150319,20141030)。たとえばカーテンを探してるときにリストをサムネイル形式にして見た目に注力して欲しいものを見つけることはある。でもトップページで画像を並べられるとそれが何であるか(本?シャツ?ゲーム?)をまず読み取らなければいけない。それは流し見てるときの俺の処理能力を超えているので何も認識することなく流れていく。価値のないトップページ。■(思いついたら追加する)

最終更新: 2015-06-23T01:18+0900

タイトル↑の補足

ふくれあがる一方の userContent.cssの一部。アマゾンから足を洗う*日は近い。

/* 2013-12-17
	アマゾンのうざいポップアップ広告を消す!!!
*/
body
>div#ap_container:first-child
>div.ap_popover.ap_popover_sprited[z-index="-220"] {
	display: none !important;
}
body
>div#ap_container:first-child
>div.ap_popover.ap_popover_sprited[surround="6,16,18,16"].拡大画像もヒットしてしまう {
	display: none !important;
}
/* 2014-10-15
	アマゾンのページめくりを邪魔するポップアップ(☆の内訳/キャンペーン)を消す!!!
	ついでに注文履歴のお届け先ドロップダウンも消えてる。
	シェブロン(▼)付き全部が対象なんだろう。むしろ好都合。
*/
div.a-popover.a-declarative.a-arrow-bottom {
	display: none !important;
}
/* 2014-10-30
	アマゾンの検索結果サムネイルに下からスクロールして被さるウザくて些細な追加情報を消す。
*/
div.ild3.ilbk3 {
	display: none !important;
}
/* 2015-04-23
	アマゾンのちらちら目障りなフローティングメニューを消す。
*/
#miniATF_feature_div {
	display: none;
}
/* 2015-05-01
	アマゾンの長ったらしいメッセージを隠して
	ウィッシュリストに追加するリストボックスの使い勝手を取り戻す。
*/
div#snsBuyBox.a-box,
div#availability.a-section.a-spacing-none,
div#bbop-sbbop-container.a-section {
	display: none !important;
}

* もちろん意図して選んだ言葉。

最終更新: 2015-06-14T00:34+0900

[tDiary] タイトル↑からの派生。Kindle版による ISBN乗っ取りが amazon.rbに影響する。

IdTypeに ISBNを指定した ItemLookupのレスポンスに Item要素が2つ含まれていることがある。指定した ISBNをもつ本とその Kindle版に対応している。

巧妙なのか偶然の結果なのかは知らないけど、Kindle本の Item要素の方が前にあることで、Kindle登場以前から動いているコードが意図せぬせざる Kindle対応を果たしていたりする。ASINではなく ISBNを指定してそれなのだから意図していないのは間違いない。

begin
	xml = File::read( "#{cache}/#{country}#{asin}.xml" )
rescue Errno::ENOENT
	xml =  amazon_call_ecs( asin, id_type, country )
	File::open( "#{cache}/#{country}#{asin}.xml", 'wb' ) {|f| f.write( xml )}
end
doc = REXML::Document::new( REXML::Source::new( xml ) ).root
item = doc.elements.to_a( '*/Item' )[0] # 無条件に最初の Itemを選択している!

 どうする?

XPathと REXMLについて調べながら試してこうなった。効率もなにもない完全な手探り。

item = doc.elements.to_a( '/ItemLookupResponse/Items/Item[ASIN="%1$s" or ItemAttributes/EAN="%1$s"][1]'%asin )[0]

XPathでは不可能ではないけど、CSSでは親を条件に子や子孫を選ぶことはできてもその逆ができないのだよね(20150323p01)」って、これが念頭にあったから不可能ではないと書いたのだった。CSSでも「CSS4セレクタ (Selectors Level 4) の新機能」が実現すればできるようになるらしいとはその後の調べ。