ToDo:
あまりに遅いっつーかどう見てもスラッシングですありがとう系だったので、 そこらを見回したら何故か 512MB の余ってるメモリが発見されたので、 それを刺してコンパイルしてみたらあっというまにビルド進んだ…
しかしゴルフ場外でビルドしようとしてるので、 置く予定の位置でビルドせにゃならんからやりなおし。
(00:33)
u の disk が主に四国のバックアップのせいであふれていた… おかげでゴルフ場の新しい投稿がいくつか消えてしまったぽいので、 再投稿していただければと思います…
(13:43)
というのがあって、 grep ってエラーを許すアルゴリズムの方が速いとか 聞いたことがあったので、インストールしてちょっと試してみたけど GNU grep の方が速かったみたいだ。 なんか勘違いがあるかもしれんが、たぶん agrep -1 でいいと思うんだけど
(20:38)
Perl6 はどうやら pugs じゃなくて rakudo ってのがあるみたいだ、 ということでインストールしてみてるんだけど、
rakudo/parrot_install/bin/parrot perl6_s1.pbc --target=pir src/gen_setting.pm > src/gen_setting.pir
の部分が洒落にならんくらい時間がかかる。 うーむ
(20:43)
あと少しでおわるなー
(20:52)
1時間くらいでさっくり読んだ。 さっくり本だと思う。 いい本だとは思うけど、まぁ初心者向けすぎる感は。 まぁそれでもいくつかああこんなコマンドあったんだってのがあったけど。
というわけで欲しいもの @gdb
(00:25)
どっちもありそうなもんなんだけどね…
(22:48)
どれも絶対あると確信してるんだが。
(22:53)
http://twitter.com/alohakun/status/5506693038
これで思い出して前に啓蒙書を貸してもらって読んだけど、証明をさっぱり忘れつつあるので記憶を再構成しておこうと思う。うぃっきぺたんを参考にしつつ俺メモ…
http://en.wikipedia.org/wiki/Four_color_theorem
まず一つの点から4本以上線がのびるような頂点があるグラフは考えなくてもいい。
×
があったら
v | ^
に変換しちゃえば3本のびるグラフに還元できるから。
2本しかのびてない頂点はつまり、単純に領域数増やしに関わってのは無視できて、孤立した円みたいなヤツも自明に関係なくて、全体を囲むやつとかも外っかわの色のせいで4色じゃ塗れなくなっているとすると、中もどうせ4色で塗れませんよね〜ということで忘れていい。でまぁこのケース忘れることから、隣国が1つしか無い国っていうのもいないとしていい。
次はオイラーの多面体公式
http://ja.wikipedia.org/wiki/%E5%A4%9A%E9%9D%A2%E4%BD%93
頂点の数(V) - 辺の数(E) + 面の数(F) = 2
を使う。なんかしらんけど色をぬる領域が頂点として、隣国との国境が辺、でまぁ地図上の頂点が面として考えている。ややこしいな…
3本線が生えてる頂点しか無いことから、 2E = 3F 。 6V - 6E + 6F = 12 につっこむと、
6V - 2E = 12
頂点から出てる線の数を i とした時に、そういう頂点の数を vi とすると、
6Σvi - Σi*vi = Σ(6-i)*vi = 12
ということは i<6 のものが最低一個無いと左辺が正にならないので、最低一つは隣国の数が5以下の国があるわけだ。そこを攻める。
攻める前に、背理法の準備。ここに4色で塗れない地図があったとして、その中で最小の国数となる地図 G を考える。つまり G から国を 1 つ取り除いたら4色で塗れるようになってしまうようなもの。
さて G は隣国2つしかない国を持てない。その隣国2つの国を取り除いて隣国同士をくっつけた地図も依然として4色で塗ることは不可能で、 G が最小という仮定を壊す。
G は隣国3つしか無い国も持てない。これも隣国3つを取り除いて頂点にしちゃった地図も依然として4色彩色不可能だから。
隣国4つもちょっと賢い理由で無理。隣国4つがそれぞれ全部違う色でかつ自分の色とも違ったとして、赤青黄緑の順でぐるりとまわっているのが隣国で自分が紫とかする。赤の国から出発して、黄→赤→黄→赤→…と交互にたどっていけるパスがあるはず。無いなら黄は赤でいいことになってしまう(はしょりすぎだが)。同じ理由で青と緑を交互にたどるパスもある。さてそれらはどうやって交差してるのでしょうかー無理ー。ということで隣国4つも無理。
5色定理はこの論法で隣国5つのケースも潰せるので、証明できる。ここまではそんなにむつかしくないというか、とても綺麗な論法だったわけだ。
で、5つがむずい。というかその、「隣国5つの国が1つはいるよね〜」という条件だけからではどう考えても矛盾が導けなかったので、「隣国 X の国の回りに隣国 Y の国があるようなパターンか、ほげほげなパターンか、あるいはふがふがなパターンか…のどれかは絶対あるよね〜」とかそんな感じで、パターンをどんどん増やしていって、一個一個潰していく感じでやっていった。でまぁ証明難しげなパターンがあったらそのパターンの中でまたパターン増やして…みたいなことをやって、片っ端からこんぴゅーた様で証明した、っていうような感じだったらしい。
でまぁそいうパターンが証明時で2000近くとかあったんだから、泥臭いことこの上ないという。
最後の部分なんかわかりやすいパターンの例とか本に載ってた気がする。今度立ち読みして再構成しよう…
(10:09)
TODO
(16:38)
をやろうとしたけどうまくいかんな…
とりあえず background.html にフラッシュ置いたら SEGV した :( まぁ置けないのはいいのかもしれんが SEGV はどうなんだと思ったので 報告するか今度眺めておこうと思う。
次に content script 側でページにフラッシュを つっこむ実装にしてみようとやってみた。 でもどうもうまくいかない。 なんでだろ。
(16:42)
おもしろかった。
BulletSML を聞いていて、 何か jsdmkun 作ってる時にコンパイルするアプローチだと アレが難しいよなーと思っていた、アレは何だっただろう… とひたすら思い出していたけど思い出せなかった。 その後一瞬で思い出したんだが単に継続だ。 BulletSML では普通に継続使ってるから問題ないのであった。
(17:20)
んで Shibuya.lisp 終わってから行ったら遅れてた。
というかそもそも今思い出したけど Shibuya.lisp 自体存在をきっちり忘れていて、 というか登録した記憶がきっちり無くて、 masa_edw さんの twitter を見て 「あー今日 Shibuya.lisp かー俺も行きたかったなぁ」 と思ってサイト見たら何か登録されていて 焦って飛んでいったとかいうそんなこんな。
で chrome の方はまぁなんかみんなよく知ってるなぁとかそんなこんな。 extension はやっぱこうまだ API 全然足りないよなぁ。
(17:29)
はまぁ悪くはなかったんだけど、 コードが無闇に長いしもう毎回クッキー読み書きする実装でいいんじゃね? と当たり前のことを思ったのでそいう実装を作ってみた。
http://github.com/shinh/w3m/commit/abcedbb2d7222f97157221cf52b00b3b600c6431
これでしばらく使ってみて良さげなら w3mcooksrv はもう捨てよう。
(20:03)
なんだ JS だけでできるんじゃないか… Linux でもすごくよく動いてるので、 もう chrome linux の omnibox とか忘れていい。
TODO がちまちまと消えていってうれしい
(22:25)
死んだみたいだ。
なんか常にオレンジ色のバッテリ表示が点滅しているし、 ためしにケーブル抜いてみたら死んだ。
別に困りはしないんだけど UPS つき PC として買ってるので なんか損した気がするね…
あとこの PC もファンがさわがしい…
(04:16)
なんか普通に javascript: とかは w3m に変更無しで 動いたりするようになったわけなんだけど、 https 困ったなーと思った。 普通の https プロキシみたいな動きじゃなくて、 https の URL を HTTP で拾いに行くような挙動を ブラウザがしてくれないと色々めんどうくさい気がする。
(04:20)
なんで無いのー
そしてこのパッチがどうやって当時動いてたのか、さっぱりわからない…
http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200010.month/1195.html
さっぱりわからんから自分のカンでやるか…
(12:35)
http://github.com/shinh/w3m/commit/c64a257e6bee7bf8b27f6f21892447846b980b02
実装した。 本当に動くかなんか知らない。
(14:04)
w3m で JS を動かす計画の一環として、 とりあえず休日にごろごろしながら WebKit API 使った HTTP プロキシとかを作っていた。 Gtk+ port の WebKit API (WebKit は環境ごとに API が違う) はまぁなんかあまりなにもできなさそうに見えて実は結構色々できて、 普通の GET くらいはストレスなく動く感じになった。
onload までのタイミングで実行された JS はちゃんと反映されているはず。 画像とか iframe を読みに行くのとか、 layout を走らせようとするのは殺せたと思う。
Gtk+ port は、なんかヘッダだけじゃダメで、 cpp 見ないと signal の仕様とかよーわからんのがキツかった。
でもなんか request のヘッダで 書き換えれないものがあるように思うのがキツい。 wireshark で調べるに、 Cookie が通らない。 Cookie は WebKit 側で処理しちゃってもらってもいいかもだけど、 Accept-Encoding とかも書き変わっちゃって そのへん後々困るかもなぁという感じ。
書き変わってるのは、
とこの2つだけか。
あとまぁそのへん気付いたのは ログイン系の挙動がおかしすぎるからなんだけど、 ログインに関しては cookie を WebKit が処理してくれてれば 勝手にうまいこと行ってくれてもいいはずで、 このへんよくわからんちん。
選択肢としては、
などがある気がする。
クッキーはまぁ SoupCookieJar とかに自分でつっこむのもいいし、 WebKit に任せられるならそれもいい気がする。 Accept-Encoding が落ちるのは微妙だねえっていうか これいじってるのはなんでなんだ。 Gtk+ ポートがアホだからとかそんなだったら悲しいから調べる価値はありそう。 まぁ見てる感じ Qt の方が熱心に開発されてはいるんだよな。
HTML に対して loader 使うのをやめるのは悲しいけど、 まぁ実害はそんなにないかもしれない。 あーでも圧縮の展開とかは soup は面倒見てくれない感じかな。 だとするとちょいめんどいか。
プロキシをやめるのはどうせ JS の処理は proxy としてだけではうまいこといかんので、 最終形態としては悪くはないんだけど、 プロキシにしておくと wget とかからも使えていいので なるべくなら避けたい。
Gtk+ やめて Qt に行くのはまぁ十分な API があるならアリ。 ただ調べるのめんどうという理由だけで避けれるなら避けたい。 あと Chromium port の WebKit API の が upstream されたら それでも良さそうな気はする。 user script とかありそうなのは良い。
あともっともっと些細な問題として user stylesheet 読めないってのがある。 layout tests controller とか読む感じでは そもそもサポートされてなさそうな感じがするんだけど、 API はあるんだよな。 Qt もこのへんは無いように見えるのがにんとも。
(16:48)
SVNリポジトリ変えたというかマシンぶっとんで変わったから、 既にチェックアウトされてるものを切り替えるスクリプトを書こうと思って、 適当に ~/bin/svnswitch とかいうファイルを作ろうと開いたら、 既に望みのものがそこにあった。 名前まで一致するのはなんともですね。
それはそうと github はパッチとか簡単に表示されるのはまぁいいんだけど、 git って一人で使うには不便だよなぁと思う。 なんていうか master だけあればいいわけで、 git push/pull でわざわざ sync するのが割とめんどい。 まぁなんかスクリプト書くかな。
(06:25)
共有っていうか今のセッションの ヒストリは別に持ってて欲しいんだけど、 保存は常に見た順でしておいて欲しいよね。
クッキーは w3mcooksrv で処理してる今となっては 一番 w3m のうざい部分の一つになってたんだけど、 まぁ別に各プロセスで同期とかして欲しくもないので、 こっちは特にサーバ化とかするまでもないのであった。
http://github.com/shinh/w3m/commit/53a5adaecee42d46efb5b458defe0f1f03ccbeaf
ていうかクッキーも必要なタイミングで毎回読むっていうのも まぁありっちゃありなんだよなぁ。
(15:15)
i@um ~/wrk/sevil> ./dump Sat Oct 31 17:00:08 um dump[13353] <Error>: kCGErrorInvalidOperation: _CGSFindSharedWindow: WID 40 Sat Oct 31 17:00:08 um dump[13353] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. Screen size: (1280, 800)
CGSValue で string 受けるのが CFString になったのかなぁ という感じだったので変えてみたらそれでもなんかエラーが。
(17:01)
仕事が楽しいとかは本気で本当によくないと思っているので、 本当に本気でこれはいけないと思う。
しかしそろそろ本気で英語なんとかならんもんかなぁとか 思うようになってきた。 もちろん努力をする気とか自分のお金を使う気とかは 依然として全くないのだけど、 こう、ラクしてというか何もせずに、 ある日突然うまくなっているべきだと思う。
このままではいけない。 こんな本質的でない問題はいつのまにか勝手に 乗り越えられているべき問題なのである。 例えばアメリカで日本語全面採用とか。 そういう問題意識ばかりがつのっていく。
(16:50)
x86 では "A" とかで受けてやればそれだけでいいわけなんだけど、 x86-64 では色々大変みたいだ。
http://d.hatena.ne.jp/rero/20071208/p1
よくわからんけどポータブルな rdtsc としては こんなかんじでいいのかね。
http://github.com/shinh/test/blob/2a7a2bf7dbffae14851725154e187a636bb269ff/rdtsc.c
(17:05)
前 | 2025年 9月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ usa9 [agrepはBit-Parallel Algorithmだったと思うので、かなり短いパターン(ワード長以下とか)じゃ..]