トップ «前の日(09-11) 最新 次の日(09-13)» 追記

おいぬま日報(不定期)

カテゴリ | 技術情報まとめWiki | 検索エンジンから来た人向け | RSS

2003年
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



2004-09-12

@ [mysoft] おこづかい帳 1.0.0 リリース

しました。初めてのVBAなので相当へなちょこです。動作速度も遅いし。

CVSは作ろうかと思ったんですが、近い将来ファイル構成とか代わりそうなのでここら辺が落ち着いてからにします。Excelのファイルなのでバグ修正などによるバージョンアップ時のデータ移行が今後の課題。

@ Wikiのトップページ

も更新して頂きました。またまたどうもです。 > たけぞうさん

@ [debian] manやinfoなどをWebで見れるように

してみました。これでドキュメントも読む気が出てきますねぇ

@ MSNMessengerは2箇所でログインできない

VMWareだとホストOSのクリップボードをゲストOSでペーストすることができるのですが、日本語*1をペーストしようとすると16進のコードになっちゃんですよね。それで思い付いたのが、ホストOS(Linux)でGAIMを立ち上げておいて、ホストOS側でもMSNMessengerを立ち上げておけばデータの受け渡しができるんじゃ? ってことだったんですが、ダメでした*2。当たり前といえば当たり前の仕様ですがちょっとがっくり。とりあえずはファイルの共有でデータを受け渡すことにします。

*1 というかマルチバイト文字全般だと思われ

*2 先にログインしていた方が強制的にログアウトさせられる

@ [fx] 先週のFX

+47,364円。不良債権の処理はできたのですが、EUR/USD 1.2292で12枚BUYという、また新たな不良債権が。。。長期的にみればEUR/USDは上がりそうですけど、ここ最近トレンドが読みにくいだけにかなり不安。

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

# 小人 [用途マスタを=OFFSET(マスタ!$A$2,0,0,COUNTA(マスタ!$A:$A)-1,1) にしてみてはどう..]

# おいぬめ [なるほどー。次バージョンで反映させますね。ありがとうございます。]


2006-09-12

@ [perl] 引数のハッシュ渡しとハッシュリファレンス渡し

よく「引数の数が多い場合はハッシュの名前つき引数で渡すべき」という話の延長で、1.ハッシュそのもので引数を渡すか、2.リファレンスを渡すかで意見が分かれたりします。

# 1. ハッシュ渡しの場合
method1(arg1 => 'test', arg2 => 'test');
# 2. リファレンス渡しの場合
method1({ arg1 => 'test', arg2 => 'test' });

2.だと{}つけるの忘れて「あーなぜか引数がうまく渡らねぇー」みたいによくはまるので、個人的には1.のスタイルが好きなのですが、2.を支持する人たちは「1.だと毎回ハッシュのコピーが起きて遅い」と言います。ではそんなに遅いのだろうかとちょっと気になったのでためしに以下のようなベンチマーク(引数7個、メソッド呼び出し3000回)を取ってみたところ、「メソッドに渡された引数を実際に参照する」というところまで考えれば、そう大差ない結果となりました。

#!/usr/bin/perl
 
use strict;
use CGI;
use Benchmark qw(:all);
 
sub hash_args {
    my %args = @_;
    # とりあえず引数を連結してみる
    my $str = '';
    for (sort keys %args) {
        $str .= "$_ = $args{$_} ";
    }
    return $str;
}
 
sub hashref_args {
    my ($args) = @_;
 
    my $str = '';
    for (sort keys %$args) {
        $str .= "$_ = $args->{$_} ";
    }
    return $str;
}
 
$ARGV[0] ||= 3000;
my $cgi = CGI->new;
timethese($ARGV[0], {
    HASH    => sub {
        hash_args(
            aaa => '文字列のテスト',
            bbb => 2,
            ccc => $cgi,
            ddd => [ 1 .. 10 ],
            eee => 1,
            fff => 'あいう',
            ggg => 'かきく',
        );
    },
    HASHREF => sub {
        hashref_args({
            aaa => '文字列のテスト',
            bbb => 2,
            ccc => $cgi,
            ddd => [ 1 .. 10 ],
            eee => 1,
            fff => 'あいう',
            ggg => 'かきく',
        });
    },
});
$ perl ~/tmp/args.pl 3000
Benchmark: timing 3000 iterations of HASH, HASHREF...
      HASH:  1 wallclock secs ( 0.22 usr +  0.00 sys =  0.22 CPU) @ 13636.36/s (n=3000)
            (warning: too few iterations for a reliable count)
   HASHREF:  0 wallclock secs ( 0.23 usr +  0.00 sys =  0.23 CPU) @ 13043.48/s (n=3000)
            (warning: too few iterations for a reliable count)

勝手な予想ですが、リファレンスで渡しても結局 $args->{hogehoge} みたいな感じでポインタをたどることになるので、全体的に考えればそんなに変わらないのではないかと。とにかくこれでハッシュ引数渡しを引け目なく推奨できそうです。


Bookmark: あんてな | ぶっくまーく | 覚え書き | Project Amateras | ExcelPettyCashBook | FreeStyle Wiki

2002|10|11|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|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|11|12|
2008|01|02|03|04|05|06|07|08|10|11|12|
人気ブログランキング - おいぬま日報(不定期)