2009-01-01から1年間の記事一覧
http://sparsehash.rubyforge.org/ リリースしました。ファイルはCodoReposに置いてます。 http://coderepos.org/share/browser/lang/ruby/ruby-sparsehash
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-sparsehash/ext/sparsehash.cpp?root=svn&view=markup Linux上だと実用的な速度に見えなくもない。 [root@andLinux ruby-sparsehash]# ruby test.rb SparseHashMap 1000000 Sparsehash::SparseHashMa…
http://storehouse.sakura.ne.jp/tpp/ Firefoxは常時立ち上げているので、検索窓からTwitterに投稿する検索プラグインを作ってみた。追記 これ、検索と間違えて投稿してしまうなぁ…追記2 期待していなかった副作用として、選択した箇所を右クリックで投稿で…
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-sparsehash/sparsehash.cpp?revision=2640&root=svn&view=markup テンプレート、強力だなー。 key_compareの実装の仕方があっているのかどうか…。 rnum= 100 10000 1000000 Hash 0.454 sec. / 0.168 …
Sparse Hashに興味があったので、Rubyバインディングを作ってみた。http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-sparsehash/?root=svn #include "google/sparse_hash_map" #include "google/dense_hash_map" #include "sparsehash_internal.h" n…
一応、アクセス速度も測ってみる。 require 'sparsehash' require 'timeout' include Sparsehash [100, 10000, 1000000].each do |rnum| [Hash, DenseHashMap].each do |clazz| puts("#{clazz}: #{rnum}") hash = clazz.new (0...rnum).each do |i| buf = sp…
charを使えば少しは早くなるかもと思って、少し修正。 #include "google/sparse_hash_map" #include "google/dense_hash_map" #include "sparsehash_internal.h" #include <cstring> namespace { template <class T> struct Sparsehash { typename T *m; static void rb_sparse</class></cstring>…
1.9でruby_errinfoがrb_errinfo()になったらしい。 Tue Jan 2 10:29:54 2007 Eric Hodel <drbrain@segment7.net> * ext/zlib/zlib.c: fix to compile on YARV ruby_errinfo -> rb_errinfo() Mon Jan 1 08:07:06 2007 Koichi Sasada <ko1@atdot.net> * ext/tk/tcltklib.c: fix to compile on YARV r</ko1@atdot.net></drbrain@segment7.net>…
ジェネレータを使えば、呼び出し側トリガでread_bodyを回せるなぁ…と思って、少し頭をひねってみる。 #!/usr/bin/env ruby1.9 require 'net/http' require 'uri' require 'enumerator' class WebEnum def initialize(uri) @uri = URI.parse(uri) @http = Net…
Zip/Rubyには、ProcオブジェクトをZIPのストリームとしてファイルを開くという、無駄な機能があるので、少し活用してみる。 #!/usr/bin/env ruby1.9 require 'net/http' require 'uri' require 'enumerator' require 'zipruby' class WebEnum def initialize…
http://tenderlovemaking.com/2009/05/07/fat-binary-gems-make-the-rockin-world-go-round/ しばらくはgemとパッケージ名を分けるけど、アーロンさんの案には賛成。 なんか手伝えないかな…。
http://google-sparsehash.googlecode.com/ APIは普通のMapと変わらない感じ。 #include <iostream> #include <google/sparse_hash_map> using namespace std; using namespace google; int main() { typedef sparse_hash_map<const char *, const char *> cmap; cmap m; m["foo"] = "hoge"; m["bar"] = "piyo"; m["zoo"] = </const></google/sparse_hash_map></iostream>…
http://redmine.ruby-lang.org/issues/show/1063 今回のリリースでは直ったのかな?
http://rubypan.org/ なにこれ?
これか? 時間があったら追ってみよう。
https://wiki.mozilla.org/Performance This page is meant to provide a starting point for developers who want to improve performance in Gecko and Firefox. Leak Toolsのページはもうちょいよく読もう。
訳あってperl。 新しいのと古いのが混在していて、どこを参照すべきか分からないなぁ… #!/usr/bin/env perl use warnings; use strict; use Carp; package Foo; sub new { my $class = shift; my $self = { x => 100 }; return bless $self, $class; } sub f…
デストラクタがあることに少しびっくりした。 参照カウンタの成せる技かな。 #!/usr/bin/env perl use warnings; use strict; use Carp; package Foo; sub new { my ($class, $x) = @_; print "Foo::new($x)" . "\n"; bless { x => $x }, $class; } sub func…
非破壊的な置換ってどうやるんだろう? #!/usr/bin/env perl use warnings; use strict; use Carp; sub url_decode { my ($str) = @_; $str =~ s/%([\da-f]{2})/pack('C', hex($1))/egi; return $str; } my $x = "%83E%83B%83L%83y%83f%83B%83A"; print url_…
http://jp.rubyist.net/magazine/?0001-NoraTutorial 軽量Webフレームワークとしては昔からあるのに話題にならないなぁ。 テンプレートが独特だからかな?
http://www.theiling.de/projects/bar.html 使い方がいまいちよく分からない。 もうちょいよく読もう。
http://www.kiso.tsukuba.ac.jp/~makimura/text/node239.html 昔「cshはクソだ!」という趣旨の文章を読んだなぁ、と思って探したらあった。 これを読んで「cshはだめだめだ」と勝手に洗脳されていたけど、今は昔の話だなー。 最近のギーグな人たちはzshを使…
http://rubyforge.org/frs/?group_id=6124 名前がまぎらわしいと評判のZip/Ruby 0.3.0をリリースしました。 変更点は以下の通り。 Ruby 1.9に(一応)対応 add_io()/replace_io()/add_or_replace_io()で、IOのサブクラス(Fileとか)を引数にとれなかったバグ…
たぶん愚痴。 2〜3ヶ月前にちょっとしたリリースがあって、その前後でバグが発覚し、いろいろとごたごたしていた。いや〜な時間に電話がかかってきたり、いや〜な時間に出社したりと、よくあるトラブルに見舞われていたが、今は(一見)普通に動いているの…
http://gitextensions.sourceforge.net/ Visual Studioのアドインが含まれているらしい。 mingw版使ってんのかな?
fcloseで落ちてるっぽい。rubyの関数に置き換えられてんのかな? test.rb:3: [BUG] Segmentation fault ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]-- control frame ---------- c:0004 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC :open c…
ASRに含まれているrubyは、たぶんruby-1.9.1-p0-i386-mswin32。 VC 9.0だとだめなのかな? #include <stdio.h> #include "ruby.h" static VALUE myfunc(VALUE self) { FILE *f; char buf[256]; f = fopen("C:/foo.txt", "r+b"); fgets(buf, 256, f); printf("%s\n", b</stdio.h>…
いろいろやってみる。 /MT→だめ fopen_s→だめ ruby.hを最初にインクルード→だめ msvcrt-ruby191-static.libをリンク→うまくビルドできない…orz WSAAPIを定義してみる→ビルドできない fdopenしてfclose→だめ 追記 _fclose_nolockにしたら一応直った。 たぶん…
とりあえず、今月中のリリースが目標。 API的な不備はなかったからLinuxでもビルドできると思うけど、環境を用意しないと…。以下、VC2008ビルドメモ。 config.hのバージョンチェックをコメントアウト windows.hをインクルードしない zipruby側のプロジェクト…
http://ja.wikipedia.org/wiki/X_Window_System なかなか興味深い。 実際のアプリケーションでどうしても必要という場合以外は、新機能を追加するな。 システムが何でないのかを定義することは、何であるのかを定義するのと同じように重要である。あらゆるニ…