トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|

ToDo:


2009-11-10

_ 欲しいもの

  • NASDAQの株価の変遷を日本円で表示してくれるサービスかなにか
    • データソースをラクに scrape できるサイトでもいいし
    • GOOG だけでいい
  • twitter の新着のオレンジを押すキーバインド

どっちもありそうなもんなんだけどね…

(22:48)

_ 欲しいもの @git

  • git stash && git stash clear と同じ意味を持つコマンド
  • git pull した時に同じファイルがある場合強制的に上書きする方法
  • 既にあるブランチに --track を後からつける方法

どれも絶対あると確信してるんだが。

(22:53)

本日のツッコミ(全2件) [ツッコミを入れる]

_ shinh [おしえてもらった - stash & stash clear => これは reset やろアホと前も聞いた気がす..]

_ shinh [さらにおしえてもらった - あとから track => git branch -f --track master ..]


2009-11-08

_ Cプリプロセッサ

http://d.hatena.ne.jp/qnighy/20091107/1257587259

高校1年でこれかーすごいなぁ。

(10:08)

_ 四色問題

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

  • ゴルフ場の続き
  • Snow leopard で sevil/w3mimg
  • Snow leopard で SDL
  • るびま
  • メガデモ
  • chrome linux の omnibox のコピー(よくわからんがめんどくさそうだ…)
  • GCC とたわむれる
  • syard とたわむれる
  • syard の script.js をちょっと書き直す
  • blokus (オワタ)
  • テトリス
  • TCC は -run をあと少しリファクタリングして push
  • TCC x86-64 asm が出たら見てみる
  • w3m であそぶ
  • chrome key でコピーができると良い
  • chrome key は chrome 側の変更が必要 http://shinh.skr.jp/m/?date=20090823#p01
  • kevil がなんかおかしい件
  • 定額給付金をくれと電話する
  • ベッドについて思いをはせる
  • bfx は忘れてた
  • ada は忘れてた
  • grub コード整理

(16:38)

_ chrome key でコピー

をやろうとしたけどうまくいかんな…

とりあえず background.html にフラッシュ置いたら SEGV した :( まぁ置けないのはいいのかもしれんが SEGV はどうなんだと思ったので 報告するか今度眺めておこうと思う。

次に content script 側でページにフラッシュを つっこむ実装にしてみようとやってみた。 でもどうもうまくいかない。 なんでだろ。

(16:42)

_ Shibuya.lisp

おもしろかった。

  • 行ったら UtiLisp の話をしていた
  • hcons ってなんか聞いたことあったけどそいうものだったんだなあ
  • 24bit address space 楽しそうだなぁ
  • 現行の機械だけにあわせてなんか作るとか楽しそうだなぁ
  • でも発表者は今はポータブルにした方がいいよねと言ってたそうですね…
  • 当然タグポインタ
    • 80 binary cell, atom
    • 90-F0 unused
    • --- signedness ---
    • 00 ret etc.
    • 10 24bit integer
    • 18 floating
    • 20 1 dim array
    • 30 elem array
    • 40 string
    • 50 io stream
    • 60 native function
    • 70 atom
  • 大型命令って今ではむしろ…
  • optional parameter の実現が面白い。引数の数に応じて call するアドレスを変えることによって引数が少ない時のチェックは消すらしい
  • どんな関数でも引数6つぶんくらいのエントリポイントを作って引数がそれ以上だった時のエントリポイントも用意すれば最大チェックも消せるかなぁ、でも引数個数が少ない関数でのオーバヘッドとか大きいかなぁとか妄想した
  • あとキーワード引数で似たようなことやれそうだなぁとか妄想した
  • Mosh は JIT で速くなりましたかーとか聞いた。 30% とかそのへんの数字らしい。やっぱそんなもんかー。
  • 次は竹内先生の昔話
  • くだらないシャレになってる命名はいいなぁ。 LIPQ とか USO 800 とか
  • プロシンで見たカレンダーがパワーアップしてた
  • なんかメモしてなかったからあんまり印象に残ってることがないな…
  • あと LT
  • github.com/mokehehe/bulletsml
  • メル尺度

BulletSML を聞いていて、 何か jsdmkun 作ってる時にコンパイルするアプローチだと アレが難しいよなーと思っていた、アレは何だっただろう… とひたすら思い出していたけど思い出せなかった。 その後一瞬で思い出したんだが単に継続だ。 BulletSML では普通に継続使ってるから問題ないのであった。

(17:20)

_ chromiumExtensionDevCon

んで Shibuya.lisp 終わってから行ったら遅れてた。

というかそもそも今思い出したけど Shibuya.lisp 自体存在をきっちり忘れていて、 というか登録した記憶がきっちり無くて、 masa_edw さんの twitter を見て 「あー今日 Shibuya.lisp かー俺も行きたかったなぁ」 と思ってサイト見たら何か登録されていて 焦って飛んでいったとかいうそんなこんな。

で chrome の方はまぁなんかみんなよく知ってるなぁとかそんなこんな。 extension はやっぱこうまだ API 全然足りないよなぁ。

(17:29)

_ w3mcooksrv

はまぁ悪くはなかったんだけど、 コードが無闇に長いしもう毎回クッキー読み書きする実装でいいんじゃね? と当たり前のことを思ったのでそいう実装を作ってみた。

http://github.com/shinh/w3m/commit/abcedbb2d7222f97157221cf52b00b3b600c6431

これでしばらく使ってみて良さげなら w3mcooksrv はもう捨てよう。

(20:03)

_ こぴー

なんだ JS だけでできるんじゃないか… Linux でもすごくよく動いてるので、 もう chrome linux の omnibox とか忘れていい。

TODO がちまちまと消えていってうれしい

(22:25)


2009-11-07

_ thinkpad r61 のバッテリ

死んだみたいだ。

なんか常にオレンジ色のバッテリ表示が点滅しているし、 ためしにケーブル抜いてみたら死んだ。

別に困りはしないんだけど UPS つき PC として買ってるので なんか損した気がするね…

あとこの PC もファンがさわがしい…

(04:16)

_ HTTPS

なんか普通に javascript: とかは w3m に変更無しで 動いたりするようになったわけなんだけど、 https 困ったなーと思った。 普通の https プロキシみたいな動きじゃなくて、 https の URL を HTTP で拾いに行くような挙動を ブラウザがしてくれないと色々めんどうくさい気がする。

(04:20)

_ 中二

http://www.nicovideo.jp/watch/sm1613775

コメントがすばらしすぎた。 何がどうなったらこうなるんだろ

(04:43)

_ <button> タグ

なんで無いのー

そしてこのパッチがどうやって当時動いてたのか、さっぱりわからない…

http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200010.month/1195.html

さっぱりわからんから自分のカンでやるか…

(12:35)

_ <button>

http://github.com/shinh/w3m/commit/c64a257e6bee7bf8b27f6f21892447846b980b02

実装した。 本当に動くかなんか知らない。

(14:04)


2009-11-02

_ WebKit proxy

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 とかも書き変わっちゃって そのへん後々困るかもなぁという感じ。

書き変わってるのは、

  • Accept-Encoding: gzip, compress, bzip, bzip2 => identity
  • Cookie: ほげほげ => 消えた

とこの2つだけか。

あとまぁそのへん気付いたのは ログイン系の挙動がおかしすぎるからなんだけど、 ログインに関しては cookie を WebKit が処理してくれてれば 勝手にうまいこと行ってくれてもいいはずで、 このへんよくわからんちん。

選択肢としては、

  1. クッキーどうにかならんかとか落ちるヘッダがあっても大丈夫かなど、もうちょっと調べてみる
  2. loader 使うのはやめて、 soup で自力で html ひろってきて読ませる実装にする
  3. w3m が拾ってきた html を渡す実装にする(プロキシをやめる)
  4. Qt ポートも見てみる
  5. 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)


2009-11-01

_ SCM

SVNリポジトリ変えたというかマシンぶっとんで変わったから、 既にチェックアウトされてるものを切り替えるスクリプトを書こうと思って、 適当に ~/bin/svnswitch とかいうファイルを作ろうと開いたら、 既に望みのものがそこにあった。 名前まで一致するのはなんともですね。

それはそうと github はパッチとか簡単に表示されるのはまぁいいんだけど、 git って一人で使うには不便だよなぁと思う。 なんていうか master だけあればいいわけで、 git push/pull でわざわざ sync するのが割とめんどい。 まぁなんかスクリプト書くかな。

(06:25)


2009-10-31

_ w3m で history 共有

共有っていうか今のセッションの ヒストリは別に持ってて欲しいんだけど、 保存は常に見た順でしておいて欲しいよね。

クッキーは w3mcooksrv で処理してる今となっては 一番 w3m のうざい部分の一つになってたんだけど、 まぁ別に各プロセスで同期とかして欲しくもないので、 こっちは特にサーバ化とかするまでもないのであった。

http://github.com/shinh/w3m/commit/53a5adaecee42d46efb5b458defe0f1f03ccbeaf

ていうかクッキーも必要なタイミングで毎回読むっていうのも まぁありっちゃありなんだよなぁ。

(15:15)

_ w3m -ppl 14

screen で画像ずれるのってどうするのがいいのかなーと 考えた結果、書いた通りにフラグセットするのがとりあえずよさそう。

(16:24)

_ セレン

i@uco ~> grep '^se ' /usr/share/skk/SKK-JISYO.L
se /セレン/Selenium/┌;罫線/┏;太い罫線/

これなんだろう

(16:25)

_ すのーれぱーど

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)

本日のツッコミ(全2件) [ツッコミを入れる]

_ ょゎ [> ┌;罫線/┏;太い罫線 罫線が南(s)と東(e)に伸びてるってことかも。]

_ shinh [なるほど! たしかに正解のようです。 i@uco ~> grep '^se ' /usr/share/skk/SK..]


2009-10-30

_ なんだろうね

仕事が楽しいとかは本気で本当によくないと思っているので、 本当に本気でこれはいけないと思う。

しかしそろそろ本気で英語なんとかならんもんかなぁとか 思うようになってきた。 もちろん努力をする気とか自分のお金を使う気とかは 依然として全くないのだけど、 こう、ラクしてというか何もせずに、 ある日突然うまくなっているべきだと思う。

このままではいけない。 こんな本質的でない問題はいつのまにか勝手に 乗り越えられているべき問題なのである。 例えばアメリカで日本語全面採用とか。 そういう問題意識ばかりがつのっていく。

(16:50)

_ rdtsc

x86 では "A" とかで受けてやればそれだけでいいわけなんだけど、 x86-64 では色々大変みたいだ。

http://d.hatena.ne.jp/rero/20071208/p1

よくわからんけどポータブルな rdtsc としては こんなかんじでいいのかね。

http://github.com/shinh/test/blob/2a7a2bf7dbffae14851725154e187a636bb269ff/rdtsc.c

(17:05)

本日のツッコミ(全3件) [ツッコミを入れる]

_ naruse [shinhさんがすーぱーくりえーたーになれば、 ぐーぐるさんが通訳さんを用意してくださるんじゃないでしょうか]

_ n [ぐーぐるさんも英語が苦手 http://d.hatena.ne.jp/Ozy/20080916 何とかならんでしょう..]

_ shinh [まぁいくらかマシになったようではありますけどね… http://translate.google.com/tran..]


2009-10-27

_ dame_rev

http://d.hatena.ne.jp/camlspotter/20091026/1256567062

http://twitter.com/shinh/status/5194338611

http://twitter.com/shinh/status/5194346481

さて読もう!

08049860 <camlDame_rev__dame_rev_58>:
 8049860:       83 ec 04                sub    $0x4,%esp
 8049863:       89 c1                   mov    %eax,%ecx    # なんか知らんが第一引数は eax なのかね…
 8049865:       83 f9 01                cmp    $0x1,%ecx    # なんか知らんが nil の内部表現は 1 なのかね…
 8049868:       74 46                   je     80498b0 <camlDame_rev__dame_rev_58+0x50>
 804986a:       a1 40 b5 05 08          mov    0x805b540,%eax    # 0805b540 B caml_young_ptr なんだこれは! とりあえず GC 関係ぽい。 young って世代別とかそいうやつかいな
 804986f:       83 e8 0c                sub    $0xc,%eax    # なんか知らんが値減らして保存しなおしてるみたいだ!
 8049872:       a3 40 b5 05 08          mov    %eax,0x805b540
 8049877:       3b 05 44 b5 05 08       cmp    0x805b544,%eax    # 0805b544 B caml_young_limit
 804987d:       72 3a                   jb     80498b9 <camlDame_rev__dame_rev_58+0x59>    # これの行き先が GC なので、まぁ GC 関係
 804987f:       8d 58 04                lea    0x4(%eax),%ebx    # ここから本番。なんかたぶんリストの確保が終わってて ebx に入るのですよ、たぶん
 8049882:       89 1c 24                mov    %ebx,(%esp)   # たぶんこれがいま ebx=[]
 8049885:       c7 43 fc 00 08 00 00    movl   $0x800,-0x4(%ebx)    # (%eax) じゃないのか悩むが謎の定数を元の eax のところに入れてて、うーんこれはなんだろう
 804988c:       8b 01                   mov    (%ecx),%eax    # x を eax に入れた
 804988e:       89 03                   mov    %eax,(%ebx)    # ebx=[] の car を [x] にした
 8049890:       c7 43 04 01 00 00 00    movl   $0x1,0x4(%ebx)    # ebx=[] の cdr に 1 (やっぱ nil やね) をつっこむ
 8049897:       8b 41 04                mov    0x4(%ecx),%eax    # xs を eax に入れて
 804989a:       e8 c1 ff ff ff          call   8049860 <camlDame_rev__dame_rev_58>    # 再帰呼び出し
 804989f:       8b 1c 24                mov    (%esp),%ebx    # スタックに置いておいた [x] を持ってきた
 80498a2:       83 c4 04                add    $0x4,%esp
 80498a5:       e9 16 08 00 00          jmp    804a0c0 <camlPervasives__$40_167>    # 0x40 は '@' なのでまぁそういうことだろう
 80498aa:       8d b6 00 00 00 00       lea    0x0(%esi),%esi    # 何これここ来ることあるんか!!! → とりあえず gdb で break しかけても止まらない。
 80498b0:       b8 01 00 00 00          mov    $0x1,%eax
 80498b5:       83 c4 04                add    $0x4,%esp
 80498b8:       c3                      ret    
 80498b9:       e8 3a d7 00 00          call   8056ff8 <caml_call_gc>
 80498be:       eb aa                   jmp    804986a <camlDame_rev__dame_rev_58+0xa>

わかったことは引数は eax, ebx と入れて渡す呼び出し規約だということだった。 あと GC まわりのコードはこれだけではよくわからん。 てか [x] のために allocate ぽいことしちゃうのはちょっといけてないなー

さて次は @ を読もう!

0804a0c0 <camlPervasives__$40_167>:
 804a0c0:       83 ec 04                sub    $0x4,%esp
 804a0c3:       83 f8 01                cmp    $0x1,%eax    # 第一引数がカラだったらさっさと終わろうね☆
 804a0c6:       74 48                   je     804a110 <camlPervasives__$40_167+0x50>
 804a0c8:       8b 50 04                mov    0x4(%eax),%edx    # 第一引数の cdr
 804a0cb:       8b 08                   mov    (%eax),%ecx    # 第一引数の car
 804a0cd:       89 0c 24                mov    %ecx,(%esp)   # car の方は保存しておいて
 804a0d0:       89 d0                   mov    %edx,%eax    # cdr の方を次の関数 call の第一引数にして
 804a0d2:       e8 e9 ff ff ff          call   804a0c0 <camlPervasives__$40_167>   # 再帰! (ebx=第二引数は触ってないのでそのまま)
 804a0d7:       89 c1                   mov    %eax,%ecx    # 帰ってきたリストを ecx に。この時点で第二引数はくっついてるはず
 804a0d9:       a1 40 b5 05 08          mov    0x805b540,%eax    # また GC ゾ〜ン
 804a0de:       83 e8 0c                sub    $0xc,%eax
 804a0e1:       a3 40 b5 05 08          mov    %eax,0x805b540
 804a0e6:       3b 05 44 b5 05 08       cmp    0x805b544,%eax
 804a0ec:       72 28                   jb     804a116 <camlPervasives__$40_167+0x56>
 804a0ee:       8d 40 04                lea    0x4(%eax),%eax    # まぁこれで eax にカラリストが入ったんだろう
 804a0f1:       c7 40 fc 00 08 00 00    movl   $0x800,-0x4(%eax)
 804a0f8:       8b 1c 24                mov    (%esp),%ebx    # 保存しておいた car の方を
 804a0fb:       89 18                   mov    %ebx,(%eax)    # 確保したカラリストの car に入れるよ
 804a0fd:       89 48 04                mov    %ecx,0x4(%eax)    # cdr は帰ってきた値ね
 804a100:       83 c4 04                add    $0x4,%esp
 804a103:       c3                      ret    
 804a104:       8d b6 00 00 00 00       lea    0x0(%esi),%esi   # また使われてなさそうなコードがあるね…
 804a10a:       8d bf 00 00 00 00       lea    0x0(%edi),%edi   # また使われてなさそうなコードがあるね…
 804a110:       89 d8                   mov    %ebx,%eax    # ここは第一引数がカラリストだった場合なので、単に第二引数をかえせば良い!
 804a112:       83 c4 04                add    $0x4,%esp
 804a115:       c3                      ret    
 804a116:       e8 dd ce 00 00          call   8056ff8 <caml_call_gc>
 804a11b:       eb bc                   jmp    804a0d9 <camlPervasives__$40_167+0x19>
 804a11d:       8d 76 00                lea    0x0(%esi),%esi

ええとこれは… 正直どうしてこうなった…と思ってしまうな… これが関数型かー

何が言いたいかというとなんで list を append するのに allocation が大量発生してるんだよ! っていう

でまぁどう見ても O(n^2) でしかないので、 まぁ GC でこんだけ遅くなるのかなぁ。

(15:31)

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

_ shinh [とりあえずこれかなーと読んでみました。 http://citeseerx.ist.psu.edu/viewdoc/..]

_ shinh [ところで OCaml くわしくないはつっこんだ方が良かったでしょうか :-))))]

_ kik [x86はよく知りませんがleaは6バイトnopのインテル推奨の書き方らしいですよ。]

_ shinh [ああ使ってるレジスタ違うから気付いてなかったんですがこれ nop なんですね。やまぁ padding なんだろうなぁ..]

_ shinh [ところで x86 くわし略 :-))))))))))))))))))]


2009-10-25

_ 修行

http://risky-safety.org/~zinnia/d/2009/10/#20091021-t0-h1-p3

個人的には topcoder とかならまだゴルフの方を真剣にオススメするのですが。 問題がまだ現実世界に近いという意味で。

id:sumim さんがやっておられるように、 ブログとかで話題になってる問題を解いてみるってのは結構いいなぁと感じます。 あとたまに wikipedia とかにのってるアルゴリズムを 実際に書いてみるとかするんですが、そいうのもいい気がしています。 こないだ mutex 書いてたのはまさにそんな感じ。

http://d.hatena.ne.jp/shinichiro_h/20091018#1255797222

(01:27)

_ 海外に持っていくべきものリスト

  • 財布
  • パスポート
  • ノートPC
  • ACアダプタ
  • USBケーブル * 2
  • LANケーブル
  • HHK
  • エネループ
  • (必要な国なら)コンセントコンバータ
  • 高価なカメラ
  • アンドロイド
  • ひげそり
  • 目薬
  • リップクリーム
  • アトピーのくすり
  • 壊れていない折り畳み傘
  • 祝福されたナイロン袋 * 3
  • 大きいゴミ袋
  • めんぼう
  • 重くない魔法書
  • ペン
  • 栓抜き
  • イアホン

本当は瞬間移動の指輪と瞬間移動制御の指輪も欲しいね。

(01:35)


2009-10-23

_ literacy

http://d.hatena.ne.jp/Hamachiya2/20091022/literacy

昨日はこれを一通り見て色々思ったのだった。 なんというか、表現が難しいんだけど。

まぁこれを見た時のインターネットパワーユーザ的な人とか、 良いサービスは課金されて当然と思ってるような 世代の人とかの反応はまぁ、 ゆとり乙という感じだと思うんだけど、 まぁそれはそれでいいと思う。

ただなんか、色んな意味でサービス提供側というか 彼らが客になりうる、プログラム書く系の人が これはひどい的なことを言うのは、 まぁ気持ちはわかるけどあぶなっかしい面もあるかなぁという。

全員をひとくくりにはできないけど、たぶん彼らの多くは 良質なサービスがインターネット上で無料であることに慣れていて、 かつそのサービス提供側の中に無料でサービス提供しつつも 金儲けに成功してる会社が結構な量あること、 その多くが広告収入であることを知ってるんじゃないかなと思う。

でまぁそいう良質でかつ無料で使えるサービスなんてのは 今後も別に減りゃしない気がするので、 そいった人々は今後も同じような考えを持ち続けるんじゃないかなーと思う。 あっちは広告で金稼いでて無料なのに なんでこっちは金取ろうとしてるの? 広告でもうけられるはずじゃないの? 的な。

でまぁ今が過渡期で「リテラシ」と呼んでるものが浸透して そういう人々の人口が減るって前提ならまぁいいんだけど、 僕はあんま減らなくてむしろ増えるんじゃないかなぁとか思っていて。 その前提ではこの人達がネット慣れしてないんじゃなくて、 僕たちが古いネットにだけ慣れしていて 最近のネットの感覚に慣れてないって話なんじゃないかなぁと思う。

でまぁ普通は別に感覚のズレがあってもあんまり問題ないんだけど、 少なくとも自身よりコンピュータとかネットとかに詳しくないであろう 彼らを客とする身分である以上、 単にコイツらリテラシ足りねえプギャーとかで片付けるのは まぁなんか違うんじゃないかなぁと。

サービス提供側は今のユーザはこいう感じだからどうもうけようか、 って考えるとか、 プログラマは今のユーザはバグとかあんま牧歌的に許してくれないから ちゃんと作ろうって考えるとか、 まぁそっち系の考え方をする方が安全な気がした。

そういうことを思った。

(11:13)

本日のツッコミ(全3件) [ツッコミを入れる]

_ naruse [ぐーぐる「ゆとりはてめーらだよプギャー」ということですね。 いや、まぁ、全くもって同意する所なんですが、彼らがそう..]

_ shinh [ここに書いてあることは全て私的な意見であり会社を代弁するものではありません、とかバカなこと書きたくないので勘弁してく..]

_ shinh [あ、会社うんぬんは naruse さんがどうこうというより、うっかり引用とかされちゃった時のための安全弁程度のアレな..]


2024年
10月
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 31
1.shinh(2014-05-24 02:05) 2.shinh(2014-05-24 02:05) 3.かめぞう(2014-05-24 02:05)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h