ToDo:
http://www.derkarl.org/why_to_tabs.html
斜め読みした感じ、先頭のヤツ以外はどっちも holy war くさい気がした。
とりあえず1文字単位のインデントがしたいケース、 まさに
SomeClass::SomeClass() _____.:.InheritingClass(false, false _____...................5, 10, true, _____...................bleh, blah) { // .... };
みたいなケースが面倒なのと、 あとタブの設定変えてインデントが深くても大丈夫、 っていうのはインデントが深い方が問題なので別にいいやとかそんな。
まぁスペースオンリーでいいじゃない。
(13:58)
_____if.(true)....//This should be replaced _____{............//with a proper boolean _____.....func(); _____}
このスタイルは結構アリかもとか。
(14:00)
Windows でも動いた。 問題点まとめ。
(04:16)
http://d.hatena.ne.jp/rubyca/20060419/1145459336
例えば。
class MethodCallingError < StandardError; end module CallOnce def self.included(cname) set_trace_func proc{|event, file, line, id, binding, klass| return if cname != klass return if event !~ /call/ def klass._define_method(id, &p) define_method(id, p) end klass._define_method(id) do raise "#{id} called twice" end } end end class C def f p "func" end def f2 p "func2" end end c = C.new c.f c.f2 c.f class C include CallOnce end puts "OK, let's forget." c.f c.f2 c.f
def klass._define_method がださい。
(19:15)
別にこれでいいのか。
set_trace_func proc{|event, file, line, id, binding, klass| return if cname != klass return if event !~ /call/ klass.send(:define_method, id) do raise "#{id} called twice" end }
もちろん二度目に include された場合の処理とかしてないので、 まぁそのへんは適当に。
(19:19)
http://t16web.lanl.gov/Kawano/gnuplot/
via
http://www.jmuk.org/d/?path=2006/04/18#d18t02
(01:01)
いつも忘れる分散のもとめかた。
まず普通にコヒーレントと内積取って二つくっつける。 この時点で積分三つ。
m の積分を持ってきてδ関数に変換する。 その際 φm を微分に変換する。
δ関数の微分は微分してδ。 つーわけでΓ関数の微分が登場。
http://en.wikipedia.org/wiki/Polygamma_function
このへんを参考に。 結論としては1乗の場合はΓ関数微分したところは消える。 2乗以降の場合は残る。
(01:08)
(11:02)
GI と思ったら KI だった。
i@u wrk/ruby/genwn> ruby genwn.rb エージェントシステム AgentSystem i@u wrk/ruby/genwn> ruby genwn.rb 麦酒マシン BeerMachine i@u wrk/ruby/genwn> ruby genwn.rb ビアマシン BeerMachine i@u wrk/ruby/genwn> ruby genwn.rb C言語コンパイラ CCompiler i@u wrk/ruby/genwn> ruby genwn.rb 基底変換 BaseConvert i@u wrk/ruby/genwn> ruby genwn.rb ダイナミックバインド DynamicBind
このへんは良い
i@u wrk/ruby/genwn> ruby genwn.rb ローレンツ変換 LowRentsuConvert i@u wrk/ruby/genwn> ruby genwn.rb 麦酒缶 BeerKan i@u wrk/ruby/genwn> ruby genwn.rb 地震 Jishin i@u wrk/ruby/genwn> ruby genwn.rb 死んでしまえ ShiNdeshimae i@u wrk/ruby/genwn> ruby genwn.rb ペペロンチーノ Peperonchi^no i@u wrk/ruby/genwn> ruby genwn.rb ラグナロク LagNaroku i@u wrk/ruby/genwn> ruby genwn.rb エクスカリバー Ekusukariba^ i@u wrk/ruby/genwn> ruby genwn.rb ログハウス LogHouse i@u wrk/ruby/genwn> ruby genwn.rb 弾幕 Danmaku i@u wrk/ruby/genwn> ruby genwn.rb 英国 Eikoku i@u wrk/ruby/genwn> ruby genwn.rb ロシア Russia
使えん。
(00:44)
http://d.hatena.ne.jp/rubymi/20060417#1145283941
使えない子、うびみ。使えない。
i@u ~/test/ruby> cat trace_func.rb dumping = false begin r = ARGV[0].reverse print "#{r}\n" rescue if dumping Tracer.off raise end dumping = true require 'tracer' Tracer.on retry end i@u ~/test/ruby> ruby trace_func.rb ahi iha i@u ~/test/ruby> ruby trace_func.rb #0:trace_func.rb:13::-: retry #0:trace_func.rb:3::-: r = ARGV[0].reverse #0:trace_func.rb:3:Array:>: r = ARGV[0].reverse #0:trace_func.rb:3:Array:<: r = ARGV[0].reverse #0:trace_func.rb:3:Kernel:>: r = ARGV[0].reverse #0:trace_func.rb:3:NameError::message:>: r = ARGV[0].reverse #0:trace_func.rb:3:NameError::message:<: r = ARGV[0].reverse #0:trace_func.rb:3:NoMethodError:>: r = ARGV[0].reverse #0:trace_func.rb:3:NameError:>: r = ARGV[0].reverse #0:trace_func.rb:3:Exception:>: r = ARGV[0].reverse #0:trace_func.rb:3:Exception:<: r = ARGV[0].reverse #0:trace_func.rb:3:NameError:<: r = ARGV[0].reverse #0:trace_func.rb:3:NoMethodError:<: r = ARGV[0].reverse #0:trace_func.rb:3:Exception:>: r = ARGV[0].reverse #0:trace_func.rb:3:Exception:<: r = ARGV[0].reverse #0:trace_func.rb:3:Exception:>: r = ARGV[0].reverse #0:trace_func.rb:3:Exception:<: r = ARGV[0].reverse #0:trace_func.rb:3::: r = ARGV[0].reverse #0:trace_func.rb:3:Kernel:<: r = ARGV[0].reverse #0:trace_func.rb:6::-: if dumping #0:trace_func.rb:6::-: if dumping #0:trace_func.rb:7::-: Tracer.off trace_func.rb:3: undefined method `reverse' for nil:NilClass (NoMethodError)
(01:39)
/usr/bin/gtk-update-icon-cache: error while loading shared libraries: libXrandr.so.2: cannot open shared object file: No such file or directory
/var/tmp/rpm-tmp.37855: line 3: /usr/X11R6/bin/mkfontdir: そのようなファイルやディレクトリはありません
/usr/bin/pango-querymodules-32: error while loading shared libraries: libXau.so.6: cannot open shared object file: No such file or directory
とか出てた。
あとでやること。
(02:15)
i@u ~> stow --version stow (GNU Stow) version 1.3.3 i@u ~> stow --vers stow (GNU Stow) version 1.3.3 i@u ~> stow --ver stow: unknown or ambiguous option: ver
…
} elsif ($opt =~ /^vers(i(on?)?)?$/i) {
...
(12:16)
http://www.atdot.net/~ko1/diary/200604.html#d3
面白そうすぎる。 インラインアセンブラ書けるのもステキだけど たぶんこれは強力な reflection にもなるわけで。 メソッドを逆アセして中身調べれば、
http://www.rubyist.net/~matz/20060401.html#c09
のへんの次世代チックな IDE も作れそう。
(00:55)
mf.rb の時も考えたことだけど Sample Oriented Programming というのは魅力的。
http://d.hatena.ne.jp/shinichiro_h/20050822#1124695279
まぁでもサンプルがあれば実装は自動的にされます、 ってのは妄言に近い。
ただ、サンプルがあればドキュメントが自動で書かれます、 ってのは良さげな気がする。 doc/ は書きたくないけど test/ は書いてもいいわけで、 assert とか見ればほらだいたいドキュメントくらい作れるじゃないか。
> sample_base_document_generator YAML::load YAML::load(io) io はたぶん IO 継承クラスっぽい。Fileかも知れんけど。 返り値はなんか色々帰ってるね。 Hash とか Array とかそのへん。
素直に doc/ から test/ 生成ですかそうですか。
(01:43)
これがエントロピーというものだよ
i@u ~/test/ruby> cat test_zlib.rb require 'zlib' abc = 'abcdefghijklmnopqrstuvwz' aaa = 'aaaaaaaaaaaaaaaaaaaaaaaa' zd = Zlib::Deflate.new abcd = zd.deflate(abc, Zlib::FULL_FLUSH) aaad = zd.deflate(aaa, Zlib::FULL_FLUSH) print "#{abc.size} => #{abcd.size}\n" print "#{aaa.size} => #{aaad.size}\n" zi = Zlib::Inflate.new p zi.inflate(abcd) p zi.inflate(aaad) i@u ~/test/ruby> ruby test_zlib.rb 24 => 32 24 => 9 "abcdefghijklmnopqrstuvwz" "aaaaaaaaaaaaaaaaaaaaaaaa"
手軽で良いわー
(02:07)
不思議さ。
http://www.sankei.co.jp/news/column.htm
http://ja.wikipedia.org/wiki/%E7%94%A3%E7%B5%8C%E6%96%B0%E8%81%9E
(14:19)
The following packages will be REMOVED: gphoto2 (2.1.6-1.1) gtkam (0.1.11-2) kdebase (3:2004_09_23-7) kdebindings (6:3.5.1-0.3.fc4) kdelibs (3.5.1-0.1.fc4) kernel#2.6.10-1.741_FC3 (6:3.5.1-0.1.fc4) kernel#2.6.11-1.14_FC3 (2.6.10-1.741_FC3) kernel#2.6.9-1.667 (2.6.11-1.14_FC3) kernel-utils (2.6.9-1.667) kudzu (1:2.4-13.1.49_FC3) lm_sensors (1.1.116.3-1) pcmcia-cs (2.9.1-3.FC4.2) sane-backends (3.2.8-4.12) sane-backends-devel (1.0.17-0.fc4.2) sane-frontends (1.0.17-0.fc4.2) system-config-soundcard (1.0.13-2) xinitrc (1.2.12-5.FC4) xorg-x11 (4.0.18.1-1) xorg-x11-tools (6.8.2-37.FC4.49.2) xorg-x11-xdm (6.8.2-37.FC4.49.2) xsane (6.8.2-37.FC4.49.2)
(19:34)
前に gzstore は作ったことがあったので zstore を作ってみた。
http://shinh.skr.jp/koneta/zstore.rb
http://shinh.skr.jp/koneta/gzstore.rb
ruby /usr/lib/ruby/1.8/pstore.rb 1.13s user 1.09s system 85% cpu 2.593 total ruby gzstore.rb 1.55s user 1.23s system 93% cpu 2.989 total ruby zstore.rb 13.62s user 5.12s system 92% cpu 20.313 total
とりあえず愕然とするようなパフォーマンスの悪さ。
(16:43)
http://shinh.skr.jp/koneta/zstore2.rb
ちょっとマシに。
ruby zstore.rb 9.45s user 3.70s system 84% cpu 15.503 total
(16:51)
一行紹介
るびーつかったらまけだとおもいつつ、Ruby。
プロフィール
飽きてきた。
(17:14)
(17:22)
今度調べるためのメモ。
i@u ~/src/ruby-1.8.1> time ruby -e 'h={}; for i in 0...1000000; h["str"]=i; end' ruby -e 'h={}; for i in 0...1000000; h["str"]=i; end' 2.21s user 0.02s system 99% cpu 2.252 total i@u ~/src/ruby-1.8.1> time ruby -e 'h={}; for i in 0...1000000; h[:sym]=i; end' ruby -e 'h={}; for i in 0...1000000; h[:sym]=i; end' 1.27s user 0.00s system 100% cpu 1.267 total i@u ~/src/ruby-1.8.1> ruby -e 'p "str".hash; p "str".object_id' 987610256 -604106804 i@u ~/src/ruby-1.8.1> ruby -e 'p :sym.hash; p :sym.object_id' 2627854 2627854 i@u ~/src/ruby-1.8.1> ruby -e 'p :a.hash; p :b.hash; p :c.hash' 2627854 2629902 2631950
これだとハッシュのヒット率落ちそうな気もするが。 要チェック。
(20:49)
#define FIND_ENTRY(table, ptr, hash_val, bin_pos) do {\ bin_pos = hash_val%(table)->num_bins;\ ptr = (table)->bins[bin_pos];\ if (PTR_NOT_EQUAL(table, ptr, hash_val, key)) {\ COLLISION;\ while (PTR_NOT_EQUAL(table, ptr->next, hash_val, key)) {\ ptr = ptr->next;\ }\ ptr = ptr->next;\ }\ } while (0)
まぁ Symbol の数なんて少ないんだから ハッシュのキーは Symbol が正解なんだろうな。
(20:52)
デバッグビルドのみ。
estmaster: estraier.c:5547: est_aidx_attr_put: Assertion `db && id >= 0 && vbuf && vsiz >= 0' failed. zsh: abort (core dumped) estmaster start casket
#0 0x080fcd41 in raise () #1 0x080bf910 in abort () #2 0x080bb1d6 in __assert_fail () #3 0x08079f4f in est_aidx_attr_put (db=0x818e1d0, id=-1, vbuf=0x81ad440 "mod_estraier", vsiz=12) at estraier.c:5547 #4 0x0806e2aa in est_db_edit_doc (db=0x818d9f8, doc=0x81a4320) at estraier.c:1946 #5 0x0808257d in est_mtdb_edit_doc (db=0x815d430, doc=0x81a4320) at estmtdb.c:193 #6 0x08056ff4 in sendnodecmdeditdoc (clsock=32, req=0xb5a43194, node=0x81a4160) at estmaster.c:3391 #7 0x08050020 in sendnodedata (clsock=32, req=0xb5a43194, user=0x815d1e8, path=0x815d0d6 "web") at estmaster.c:2037 #8 0x0804d5a3 in communicate (targ=0x81e0360) at estmaster.c:1545 #9 0x0808d402 in start_thread () #10 0x080f76ce in clone ()
doc->id が -1 になってる。 まだセットされてない or 必要ない、たぶん。 混入は 1.2 系の est_aidx_attr_put だと思う。
(22:29)
本文やらコメントやら通じて微妙に抵抗がある部分も多いんだけど。 なぜか。
http://d.hatena.ne.jp/sumii/20060404/1144111484
(14:45)
前 | 2024年 11月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
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扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ shinh [コメントテスト]
_ shinh [おかしい。]
_ shinh [めんどくさくなってきた。]