トップ «前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|11|12|
2025|01|

ToDo:


2010-08-30

_ i agree!

http://planetrubyonrails.com/

Lots of requests to publish Tetsu Soh's memory profiler on Github. I agree! #rubykaigi

どっかにコード無いんかなーと探してたらこれを見つけた。

(01:49)

_ しりとりプログラミング

というのを漠然と考えた。新しい語の導入を許すと

puts sh = "Hello, world!"

とかで一瞬で解決して、許さないとすぐに無理ゲー感がただよってくる。

ていうか hello だけなら

"Hello, world!
".display

とかでたまたま解決したりするし、ゲームとして色々成立しない。

改行を出すのにムダに苦労してみるとか…

"Hello, world!".display
yield Dir rescue eval "loop { puts ; STDERR; raise exit }"

たぶんルールは

  • "Hello, world!".display ではじまる (つか h で終わる単語がない気がする)
  • NameError とか NoMethodError が飛びそうな場所があるとダメ
  • 新しい名前の導入は禁止
  • eval 以外の文字列ダメ。 eval の中でもしりとりする
  • 外部プロセス呼ぶの禁止
  • 同じ名前は使っちゃだめ
  • なるべく短く

とかか。 eval もなんか取ってつけたような感じだから禁止してもいいかも

"Hello, world!".display
yield Dir rescue END { DATA; ARGF; fail loop { puts; STDERR; raise exit } }
true
__END__

偶然だけど、 END fail raise exit と登場して、 true __END__ でシメててなんかかっこいい。

(02:40)


2010-08-29

_ なごや

続き

  • F# とか、 .Net 系言語はゴルフ場に入れていきたいんだけど簡単かな
  • first class module については話だけでは漠然としたイメージだけしかわからなかったんだけど、後で説明を聞くと D の最初の頃の template みたいなものを思い出す感じなのかなー
    • 実装どうなってるかも見たい
  • camlspotter さん話うまくて面白かった。面白かったなーと思って、しかし考えてみると俺 OCaml のコードとか別に検索したくないよなーと気付いて、うまくだまされた
  • FFTW は僕の印象では SSE のうまい使いかたって気がした。昔 SSE で FFT 書いたら勝てた記憶があるんじゃがーという話をしたら、当時は SSE はまだリリースされてなかったんじゃないかとのこと

その後

  • ネカフェでは何故かウシジマくんを読んで陰鬱な気分になることになってるので読んだ。あとは PSYCO+ は何故か面白いと記憶してたんだけど、読むと面白くなくてびっくりした
  • 味噌煮込みうどん。うどんの麺が固いとかなかなかにヘンな物体だなあと思った。でもおいしかったとおもう
  • 名古屋城…の付近で昼寝
  • 名古屋城…の前で武術大会とかが行なわれていて真剣でなんか切ったりしてた。面白かった
  • 名古屋城。シャチホコの実物が見たかった
  • ふらふらと港に
  • 南極に行った船を見たりとかそういう
  • そこらで夕寝
  • 名古屋でひつまぶし喰おうと思ったら並んでたので矢場とんにフォールバック

(23:57)


2010-08-28

_ 海外旅行

名古屋っぽいもの食いたい。 USB ケーブル無いから GPS 無いのが痛いかな

それはそうといろいろためになったとおもう。なんか忘れそうなんでなにか書いておく。

  • F# は int+float あるん?→無い→これはあると予想して、あるとしたら x+1 から x を int と推論してるのはなんでだろーという疑問だった
  • ins_sort ってリストだと O(N^2)? →そもそも array でも O(N^2) じゃボケ→ぐおおそうだ同じやりとりをほかでもした記憶があるよ…
  • 楽打普通に電卓として便利げ
  • 楽打どうせ Obj. に手を出してるんなら + とか overload してもよさそうな
  • しかしそれをすると電卓としての便利さはなくなる
  • '_a と 'a → 'a は本当になんでもいい。 '_a は一度決まったらそのまま
  • let rec f x = if false then f 1; 2 で x が int になるのが許せない→ f x の定義見てるときは '_a で一旦定義終わって残った '_a は 'a になるんじゃよ
  • πの話を聞いた。昔よりはイメージつかめる気がする
  • 名古屋に何が起きているのか→精力的な人が牽引したのが大きい。組み込みの人の理想と現実みたいななにか
  • なんで OCaml 使ってるん? fun と function とか、 .() と .[] などなどなど… OCaml の文法つらくないすか→意味論とか大事とても大事。文法それほど大事でもないでも意味論だいじ
    • これは C++ とかって const_iterator とかうざくねーといわれたときの自分の反応に近いよなーとか思った。まぁ瑣末なことだと思う
  • overload ほしくないすか→ほしい
  • つか汎用 print は→ほしい。なんか type から generate したりしてる
  • GCaml は→ほしい
  • バックトレース→ある
    • バックトレースフェチとしては今度みる

なんかまだあった気がするけどまぁ

あとは何度も定義読んだであろう Sort モジュールなー


2010-08-27

_ 暗号解読

http://www.amazon.co.jp/%E6%9A%97%E5%8F%B7%E8%A7%A3%E8%AA%AD%E2%80%95%E3%83%AD%E3%82%BC%E3%83%83%E3%82%BF%E3%82%B9%E3%83%88%E3%83%BC%E3%83%B3%E3%81%8B%E3%82%89%E9%87%8F%E5%AD%90%E6%9A%97%E5%8F%B7%E3%81%BE%E3%81%A7-%E3%82%B5%E3%82%A4%E3%83%A2%E3%83%B3-%E3%82%B7%E3%83%B3/dp/4105393022

これを読んだ。面白かった。

- 最初の方の暗号ってその時代に生まれてたら解けたんじゃねと思ってしまうけど解けないんだろうね。なんというか基礎教養的なものってのは案外強いんだよなーたぶん - まだ解けてない宝の地図とかあるのかーロマン - ディフィーさんとヘルマンさん (以下 DH) は別人 - DH より RSA の方が良いようだ…今一つメリットにどうもピンと来ないけど - RSA も DH も発見者は彼らじゃないそうだすげえ

(00:45)

_ ごるふ

http://golf.shinh.org/p.rb?Sort+by+Length+for+OCaml+Golf+Competition

これなんかうちに short coding とか二冊あるから 賞品とかにしたらどうでしょーとか 自分で言っておきながら持ってかえってくるの忘れて 帰省してた。

僕が優勝すればいいのではないか!

(01:07)

_ glibc を初期化したい

MacOSX のバイナリを無理矢理 linux で動かして遊ぼうとしている。 で、なんか、それなりには動くんだけど たいていのプログラムはどっかで crash する感じで、 どうも glibc の初期化ルーチン走ってないのが良くないかぁ という感じのものが多い気がする。 たとえば setlocale とかそういう。

で、 glibc を初期化したいわけだけど、 どうしたらいいかなーというのがあまりいい案がない。

  • Linux の crt1.o を適当にリンクする
  • ただし main は自前のルーチンに置き換え
  • __libc_csu_init とかは必要なんだろうか…必要そうでうざい…
  • main はなんか適当に stack の状態とかを起動状態に戻して entry point に jmp

とかになるのかなーと思うんだけど、 libc の初期化ルーチンを自前でリンクするとかめどい…

なんもしない main を書いて、 それを実行バイナリに落として、 必要な部分を自分の ELF binary にコピってくる… みたいな感じで動くんかなぁ。

リンカじゃなくてローダにすべきだった気がしてきた。

今からやるとするとどっちがラクかなー

(23:54)

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

_ isshiki [>暗号解読 ボクも数年前に読みました。感想は今となっては小学生の感想文レベルでしか語れないので控えますが、当時思っ..]


2010-08-26

_ x86-64 の ABI

ややこしいよなぁ…

http://www.x86-64.org/documentation/abi.pdf

これによると struct 返り値は hidden parameter でいいのかなー と思ってたんだけど、 なんか GCC の挙動違うぞ… と思って調べてみたところ、 どうも RAX と RDX に入るならそっち使う、 って感じかなー。

http://agner.org./optimize/calling_conventions.pdf

によるとややこしいなぁ…

(14:29)

_ u-n

http://twitter.com/ssig33/status/22043287159

ホントだと悲しいなあ…

(15:12)


2010-08-25

_ pacman

devquiz の pacman とかやってみる。 ダメぽ。

  • lv1 : 37手。
  • lv2 : 256手。手動の方が成績いいんだが…
  • lv3 : 490手。手動で解ける人えらいなぁ…

2010-08-21

_ さばいじり

おそらく熱暴走で reverse proxy の役目を果たしてた マシンが止まるという事件が 2 度ほどあったので、 OCaml meeting 前にこれは不安だろうということで、 ゴルフ場のマシンの方に reverse proxy の役割をうつした。 これでたぶん大丈夫かな…

(21:56)


2010-08-20

_ pimpl 死んじゃえというはなし

http://d.hatena.ne.jp/lyrical_logical/20100819/1282232382

そういう話なんかなコレ。 pimpl 死ね死ね派として。

元の話は

// header

class C {
public:
    C();
    void f();
private:
    class CImpl;
    CImpl* pimpl_;
};

// source

class C::CImpl {
public:
    CImpl() {}
    void f() {
        // ...
    }
};

C::C() {}
void C::f() { pimpl_->f(); }

// header

class C {
public:
    C();
    virtual void f();

    static C* create();
};

// source

class CImpl : public C {
public:
    CImpl() {
    }
    virtual void f() {
        // ...
    }
};

C* C::create() {
    return new CImpl();
}

の比較ってことなんじゃないのかな知らんけど。 pimpl とファクトリの比較って言ってるから pimpl とファクトリは組み合わせれるとかじゃなくて、 pimpl 的なことをファクトリでやる、っていう話かと想像した。 まぁいずれにせよ元の話が違っても 僕は後者の方が好きだという主張したいという話をしたい。

pimpl って何がダメってめんどくさすぎることで、 ただでさえヘッダのせいで二カ所に関数名書かにゃならんので DRY から遠ざかってるのに、 pimpl とかしたらに三カ所なってありえんというだけ。 まぁそれだけなんだけど、しかし三カ所に書くってホントありえんと思うんですよ。 単に引数一個増やすだけであちこち書き直していくとか完全におかしい。

たぶん後者の話の弱点は仮想関数呼び出しとか ヒープアロケーションのオーバヘッドくらいなわけだけど、 たぶん pimpl 使いたいと思うようなクラスを思い出してみると、 たぶんたいした個数作らないオブジェクトがほとんどなんじゃないかなぁと思う。 NantokaMgr とか NantokaController とか名前つけたくなるクラスが多いんじゃないかと。

(02:16)


2010-08-18

_ エディタ

http://shinh.skr.jp/m/?date=20100815#c

意外とみんな作りたいということがわかった。

僕が作りたいというかエディタを作るとしたら… という妄想としては二種類あるようだ。

まず一つ目は、 WM でいうところの sevilwm みたいな、 俺しか使わないから俺の必要な機能だけつけるよ系の何か。 僕の使う機能だけ、ってことならまぁ割と現実的に作れるんじゃないかな。 まぁそういうものでも多少 scriptable な方がやりやすそうなので、 まぁ JS あたりは乗せるのかなぁ、どうだろ。

もう一つの方は明らかに単なる妄想で、 Emacs lisp の部分を JS にして シングルスレッドやめた Emacs みたいな何か。

ほとんどのコードを JS にしておくことによって、 ネイティブアプリとしても、ブラウザ上でも動くよ的な妄想。

まぁブラウザで動かすって方は テキストを持つデータ構造を好きにできないので、 大きいファイル相手にすごく重くなって全く実用的でない予感しかしないけど。 裏で超かしこく range 指定での query を繰り返せばなんかできるかもしれん。

(00:37)

_ 最近のこと

会社が六本木に引越したので近くて出社がラク。

六本木には卓球台があるのでやたらやってる。 卓球ですらケガできる子なので生傷がたえない。

Star Craft 2 を遊んでいる。 面白いと思う。

ただ SC2 はアカウントロックされて悲しいことになった。

  • Windows マシンに入れてみた。遅い。
  • Mac book pro に入れてみようと思って、別の IP でインストールして遊んでみる
  • それは suspicious activity らしく、アカウントロックされる
  • どうもパスワードリセットしないといけないようだ
  • パスワードリセットには秘密の質問に解答しないといけないけど、ランダム文字列だったので解答不能
  • しゃーないので Blizzard の web form からなんか聞く
  • 2日くらいかかって部署違うからこっちに聞いてちょとメールが来る
  • その違う部署の方にメール
  • しばらくしてから返信、 FAQ をテンプレとしてはっただけ的な解答とともに、これで解決しない場合はメールしなおしてねと書いてある
  • それに全然返事来ないもんだから、そっちの部署っぽい web form の方でも聞いてみる
  • 2日くらいたって、秘密の質問に答えてパスワードをリセットしてね☆とかえってくる。当然秘密の質問覚えてないことは書いたんだけど
  • しゃーないので国際電話。30分くらい待ち時間あったけど、リセットしてもらえた。電話代が3800円とかになってアホかと

電話自体は大変親切で、英語電話としてはこれまでに無いくらいスムーズだった。 片言でも英語喋れて良かったね的な…

あと思ったのはついでに秘密の質問も再設定してもらうべきだった。 どうもログインできても変更できないみたいだ…

(00:49)

_ canvas

知ったかぶりコメントを書いた。

http://d.hatena.ne.jp/mindcat/20100815/1281877127#c1282062678

まとめておくと、

  • Firefox - cairo - 挙動 A
  • Mac Safari - Core Graphics - 挙動 B
  • Chrome - skia - 挙動 B
  • Epiphany - cairo - 挙動 B
  • Rekonq - Qt - 挙動 C (たぶん論外)
  • Win Safari - Core Graphics (を Win32API で実装したもの) - 挙動 B
  • Opera - ??? - 挙動 A

って感じかな。 Opera は linux 上での結果だけど、まぁ win とか mac も同じだろうと思う。 てか IE9 はどうだろ。 今 Win 無いので明日見てみようと思う。 僕のカンでは Firefox に一致するんじゃないかな。

WebKit は同じ WebKit でも結構環境依存で 挙動が変わる部分があって、 こいう議論の時はうざいことこのうえないことだと思う。 ただ、 WebKit の環境ごとに最速な方法で 実装する手段を与えますよーていうやり方で、 共通レイヤ作りがちで速度的な面で不利になりがちな Gecko より速くなりがちなので、 一概に WebKit うんこというわけではないんだよー という話かなぁと思う。

(01:48)

_ strstr

この実装はちょっと面白いなと思った。

http://trac.webkit.org/browser/trunk/JavaScriptCore/wtf/text/StringImpl.cpp?rev=65493#L511

何度見てもこれは内容を忘れるものの一つだと思うのでまた今度読もうと思う…

http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%8C%E3%83%BC%E3%82%B9-%E3%83%A2%E3%83%AA%E3%82%B9-%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E6%B3%95

こういうのもあるらしい。

http://ja.wikipedia.org/wiki/%E3%83%9C%E3%82%A4%E3%83%A4%E3%83%BC-%E3%83%A0%E3%83%BC%E3%82%A2%E6%B3%95

でこの StringImpl 見てて思ったんだけど、 これメモリもうちょいケチれね?

(02:10)

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

_ Rui [WebKitのstrstrは確かに面白いけどBMより遅そうではないですか? なぜBMを使わないのか謎です。]

_ もわ [JSなんですね!JSな人になちゃったんですね! それはともかく2の方は真面目に作れればemacs捨てられそうで..]

_ shinh [今 BM の説明読みました。メモリ使用量かなーと思いましたがどうでしょうね。 WebKit の場合単に知らなかったと..]


2010-08-15

_ エディタ

が作りたい欲があるんですが。

マジメな話どのくらい大変なんだろうなぁ

(02:06)

_ data order

http://golf.shinh.org/p.rb?data+order

ソートしない方針は思いついたけど、 Array#count が refe で出てこなかったから、 あれー無かったっけーと思ってやめてしまった…

(05:05)

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

_ もわ [作りたいですね。]

_ sa-y [libtexteditor ってないかなーとか時々思いますね…]

_ isk8086 [じゃあつくろう<ぇ]


2025年
1月
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.isshiki(2010-08-27 03:40) 2.shinh(2010-08-18 12:30) 3.もわ(2010-08-18 09:02)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h