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