/ 最近 .rdf 追記 設定 本棚

脳log[2015-05-29~]



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) の新機能」が実現すればできるようになるらしいとはその後の調べ。


2015年05月17日 (日) 尾籠な話題。「【閲覧注意】歩くと肛門がニチャニチャして汁出てくるんだが:キニ速」■冬は平気。夏にひどくなる(切れて滲んでる感じ。血ではない)。夏はほぼ毎朝ゆるい。ゆるくない日は出てこない。夏ではないけど最近は朝起きて1回、30分後の出発前に2回目、夕方に3回目というパターンが多い。穴の奥までよく拭く。ズボンが薄くなる夏に自転車に乗るのが原因だと疑っている(サドルを変えよう(提案))。自転車に乗らなければ夏でも平気。最近も夏着ではなくまだジーンズなので自転車に乗ってても平気。滲んでくる黄色くて透明で猛烈に臭い汁は、下痢のときにときどきツツツと尻を伝ってくる汁と同じ。膿じゃないからね(絶対)。■というわけで、俺は1とは違うのでセーフったらセーフ。


2015年05月15日 (金) つい最近砥石を買いました。「「25年に1度しか砥がなくていい黒い包丁」が日本でも公式発売 - poco blog」■それって硬くて研げないとか、欠けたらそれまでよ、ってことの裏返しなのでは? 刃物は安価な使い捨ても選択肢のひとつだけど、安くはない。■「エバーカットを、ナイフシャープナーや砥石で研ごうとする事は絶対にやめて下さい。刃を痛める原因になります。」「<保証について> エバーカットの各商品には、一つ一つに個別のシリアルナンバーが記載されており、すべての商品に一生涯の保証が与えられています この保証を利用する為に必要なことは、包丁を登録することだけです。 製品の登録とメンテナンスの申し込みは、TBグループのEVERCUTウェブサイト(英語)から行えます。(刃の復元は無料ですが、送料はお客様の負担となります。」英語のサイトしかないみたいだけど、どこに送る?■どちらがどれだけレアだろう。25年間使い続けるユーザー V.S. 25年後まで存続しているメーカー■アマゾンで仕入れた、包丁に関するキーワードは「V金10号」と「ダマスクス紋様」。黒い包丁といい、なかなかのくすぐりようだけど、俺の琴線にふれたのは「オウカキョウメンシアゲ(20150226)」。今ある包丁がちびてくるのを待ってるなう。


2015年05月14日 (木) 量・数、フラグ・オプション、状態、パターン。「複雑さについて思うこと。 - 結城浩の連ツイ」■繰り返しやパターンを共通部分とバリエーション、つまりひとつのコードと多数のデータ(※データが実行可能な場合もある)で表現するのでなく、コードのコピペ改変で実現してしまうのは愚かだけど、もっとも愚かなのは、指数関数的に爆発しかねない組み合わせを、ファクターではなく結果ごとにコードにすることではないだろうか。だからフラグが嫌い。ストレートなコードを直列につなぎ合わせて入力を望みの出力へ導きたい。直列でなければ Map & Reduceで。■■■@2016-08-16 つまりこういうこと。「クソコードレビュー会なるものに参加してきた - そんな今日この頃でして、、、」。二者のじゃんけんを実装したこのクソコードには if文による分岐が9含まれている。じゃんけんのルールは三すくみだというのに、9つものルールは存在しないというのに。コードに必要な分岐は3つだけであって欲しいし、それを表引きにしてデータに判断させるのが人間にわかりやすく網羅的で最良。特に二者間では。■どうしても二者に最適化したコードを書くのは抵抗がある。YAGNIと言われようとも。>クソコードと呼ばないで(1.8KiB)■最初に相子を判定して除外するとか、全体を見回してから判断するというのを避けたいという動機があったのだけど、どうやら達成できていないし、全体をスキャンする過程で勝ちの手と負けの手をピックアップしていくのが判定関数の出力としては良かった。小さいし、相子判定が出次第スキャンを中断できるし。


2015年05月11日 (月) やっぱり、という感想しかない。「tokoyaさんはTwitterを使っています: "Amazonで詐欺という話が流れてきたけど、関東は送料無料に設定しておいてAmazonの表示上は送料無料と表示されているが、実際には関東への配送不可の設定になっていて、それ以外の地域からワンクリックで注文されたら送料ぼったくりという手口か。よく考えるもんだなぁ。"」■1-Click設定には配達先情報も含まれてるのに、なんでもかんでも「+ 関東への配送料無料」ってバカにしてる(Amazonが)、とは以前書いた。俺は 1-Click注文をするとそのまま注文の詳細を表示するリンクをたどって総額を確認してる。必ず。どうして最初から表示しないのか理解できない……こともないか。1-Click注文のハードルが極限まで低いから、同じ権限で注文履歴を表示することができないのかもしれない。■ところで、出品者の配送料テーブルってどうしてあんなに見にくいフォーマットなんだろう。いつ見ても理解するまで二度三度と見直してしまう。■訪問済みリンクの色でさえ問題になるのだから、配達先を絞り込める情報を http接続の Webページに載せることになにか差し障りがあるだろうか。


2015年05月09日 (土) Media Player Classicに代えて MPC-BE 1.4.3を使ってる。オプションが増えたしシークは同じように速いし内蔵で GPUを積極的に使ってくれるしで元に戻るつもりはないんだけど、映像クリックへの反応が奇妙だ。再生と一時停止を切り替えるために映像をクリックするんだけど、取りこぼしが多い。調べると、押してから離すまでの時間がある程度短くないといけないようだ。それにたぶんポインタが 1ピクセルでもずれると反応しない。なので、ポインタをプレイヤー上に持って行ってからひと呼吸おいて完全に静止させ、ずれないようにしかし素早くクリックしないといけない。ちなみにフルスクリーンモードの時は押した瞬間に反応する。これは映像部分を掴んでウィンドウを移動させられるようにする処理の影響だと思う(だからフルスクリーンモードでは関係がない)。そういう処理が必要になったのは、タイトルバーを隠して映像を最大化するビューモードがあるからだ。これ(20071103p01)とは違って何をなくせとは言わないが、もっとうまく OSのクリック判定を模倣して欲しい。


2015年05月07日 (木) 前提・意図・理解度が共有できていないやりとりに頭がクラクラする。「乱数の仕様について」■中の人の雑談は LINEのあれ(20140626)と比較にならないくらい誠実。■「周期が2^19937-1で、623次元超立方体の中に 均等に分布することが証明されています」と紹介されてるメルセンヌ・ツイスタが唯一の正解にならないのは、計算コストとかテストのための再現性とかが関係してるの?と思ってる。■紹介文の理解は「周期が、周期性を観測できないほど、とんでもなく長くて、そして、平方や立方をとったとしても増えた次元数・増えた値域内にまんべんなく散るよ」で OK?■掲示板でも話題のひとつになってるけど、収束の早さだとか、物理的・数学的な正しさが面白さに寄与しているかという観点もゲームには必要だとか。まだあった。サーバーがサイコロを振ってる場合、ユーザーの総体として確率が期待値に収束するだけでは、最後まで報われないユーザーの発生が避けられないとか。人間は幸せより不幸にこそ注意を集中する(だって一度の不幸で死んだらそれまでだ。その後の幸せで埋め合わせなどできない)というのも関連してる。■しかし補正するならするで難しい。#135, #138. 直近の一定数の成否を参照して短期に収束するよう確率を操作するとすると、ユーザーごと、確率を用いる事例ごとに記憶域をサーバーに用意しないといけない。それに「一定数」というのは必ず割り出され確定した未来を得るために利用される。結果の決まっているルーレットはつまらない。確率制を採用するかどうかというところがそもそもの分岐点なのだった。■カルドセプト サーガの事例がまだ記憶に残ってる。俺も線形合同法の下位ビットに警戒心を持てていないクチ。

最終更新: 2015-05-07T22:14+0900

[tDiary] 続・wiki_style.rb (myプラグインと kwプラグインの第二引数について)

前回>脳log[20140904p01] (タイトル↑からの続き)

前回ちょこっと書いたのは「ユーザーが自分で kwプラグインを呼ぶとき (変数 uにあたる部分を) HTMLエスケープしますか?」という疑問。そんなことはしない(だから hikidoc.rbの HTMLOutput#hyperlinkが施す escape_html_paramをキャンセルする必要がある)という前提で、自分は $1を hikihtml.unescape_htmlして変数 uに受け取り、そのまま kwプラグインに渡している。

その後、20140904時点での wiki_style.rbでは二重ブラケットリンク記法内での文字装飾(例えば [[==リンク=='''(※現在無効)'''|http(略)]] みたいなの)を利用しようとするとタグがそのまま表示される(=エスケープしすぎている)ことがわかった。

これは kの扱い方が間違っていることを示している。uのまねをして、$2まで hikihtml.unescape_htmlして kに受け取ったのが問題なのだろうか。だいたいそう。myプラグインの第二引数と kwプラグインの第二引数をひとつの変数 kに代表させるにあたって、引数の一方は HTMLの断片を、もう一方はプレインテキストを期待しているのだから、kがそもそもの HTML断片を指している方が(テキスト化して再エスケープしたものより)問題は少ない。

というわけで kの扱いを修正した。

kwプラグインに展開される場合にタグが見えるのは kwプラグインの制限です。

[['''<google検索>'''|google:]]
→ <strong><google検索></strong>

2015年04月20日 (月) 「これがさらに、配列ではなくってリストになっていると。どうしようもない。こんなものを速くしてくれというお前がアホである、というぐらいどうしようもない」(計算量はコンピュータ性能論の「入り口」にすぎない--専門家が語る、IT屋に知っておいてほしい基礎知識 - ログミー)■若造にはできない語り口。あとで読もうという気の起こらないうちに読み終わってた。まぎれもなく基礎知識。基盤・土台・前提・常識。抜き出す部分は印象最優先で選んだけども。


2015年04月17日 (金) BOOK☆WALKERのロゴが入った電書はページをめくり切った最後がこのロゴで終わる。読後をつまらないくだらない腹立たしい警告文で塗りつぶしたりしない。最後に開いてたページって保存されるのだよ。わざわざ1ページ戻って、付け足されたクズ紙をなかったことにしてから本を閉じる神経質な人間がいるんだよ>その他のおよそすべての電書へ