わいえむねっと

Contents
Categories
Calendar
2026/05
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
Monthly Archives
~2000/01
Recent Entries
RSS1.0
Templates
Information
Processed: 0.055 sec
Chashed: -
2009/12/31 Thu
この書き込みで この日記の総日数が3653日となりました。書き込み数だと13201。
うるう年を3回経ての丸10年です。

2000年1月1日を節目として始めたこの日記ですが、
10年目の節目とかは特にないので 例によって惰性に任せていきたい。
うん。 我慢できずに購入してしまった D25HW で、外から自宅のマシンにログインしてみる実験。
sigmarionIIIで。

sigmarionIII は WN-G54/CF を差して ローカルでのリモートデスクトップは
利用可能な状態になっているので そのあたりは割愛。
あと、sshd 周りも割愛。

①D25HW と WN-G54/CF をWEPで設定
  WN-G54/CF の制限なので致し方がない
  気休めにSSIDステルスとかMACアドレスフィルタリングとか

②sigmarionIII に PortForwarder をインストール


③CE版の PortForwarder は SSH1 のみ対応なので、

$ cd ~/.ssh
$ ssh-keygen -t rsa1

$ cat identity.pub >>authorized_keys

  で鍵の作成と登録

④sigmarionIII に

Host RDP
  HostName x.x.x.x
  User foo
  LocalForward 3389 y.y.y.y:3389

  のような config.txt を用意し、identity を同じ場所にコピー

⑤PortForwarder を接続



⑥localhost に対してリモートデスクトップ接続


あっさり繋がった。
しかもそこそこ快適。
WEP+SSH1 というのが残念ですが、これは夢が広がるな…!
2009/12/30 Wed
以前書いたモジュールの AutoCommit を手当たり次第に切っていったら自動テストの出力に

Issuing rollback() for database handle being DESTROY'd without explicit disconnect().

とかいうのが混じるようになって ちょと調べたのでメモ。

use DBI;

my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
$dbh->{AutoCommit} = 0;
$dbh->do('update foo set bar=1');
$dbh->commit;
$dbh->disconnect;
まず普通に。

use DBI;

my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
$dbh->{AutoCommit} = 0;
$dbh->do('update foo set bar=1');
$dbh->commit;
#$dbh->disconnect;
disconnectを省略しても変化なし。

use DBI;

my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
$dbh->{AutoCommit} = 0;
$dbh->do('update foo set bar=1');
#$dbh->commit;
$dbh->disconnect;
commitを省略。警告はでない。当然、コミットもされない。

use DBI;

my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
$dbh->{AutoCommit} = 0;
$dbh->do('update foo set bar=1');
#$dbh->commit;
#$dbh->disconnect;
両方省略したところで件の警告。

モジュールを眺めたら、select の後の条件分岐で disconnect せずに抜けてる箇所があった。
disconnect の漏れはともかくとして、select でも commit/rollback が必要なものなのか。

use DBI;

my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
$dbh->{AutoCommit} = 0;
my $sth = $dbh->prepare('select * from foo');
$sth->execute;
undef $sth;
#$dbh->commit;
#$dbh->disconnect;
これだと警告。

use DBI;

my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
$dbh->{AutoCommit} = 0;
my $sth = $dbh->prepare('select * from foo');
$sth->execute;
undef $sth;
$dbh->commit;
#$dbh->disconnect;
警告でない。rollback でも同様。
SQLiteのデータ型がフリーダム過ぎる。

use strict;
use warnings;
use DBI;

unlink 'foo.db';
my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');

$dbh->do('CREATE TABLE foo(foo, bar INTEGER, baz TEXT, qux NULL)');
$dbh->do('INSERT INTO foo VALUES(1,1,1,1)');
$dbh->do("INSERT INTO foo VALUES('2','2','2','2')");
$dbh->do("INSERT INTO foo VALUES('a','a','a','a')");

foreach my $col('foo','bar','baz','qux')
{
    foreach my $val("1","'1'","2","'2'","'a'")
    {
        my $sth = $dbh->prepare("SELECT * FROM foo WHERE $col=$val");
        $sth->execute;
        $sth->fetch or warn "$col=$val";

        $sth = $dbh->prepare("SELECT * FROM foo WHERE $col=?");
        $sth->execute(eval $val);
        $sth->fetch or warn "$col=? $val";
    }
}

> perl datatype.pl
foo=? 1 at datatype.pl line 23.
foo='1' at datatype.pl line 19.
foo=? '1' at datatype.pl line 23.
foo=2 at datatype.pl line 19.
qux=? 1 at datatype.pl line 23.
qux='1' at datatype.pl line 19.
qux=? '1' at datatype.pl line 23.
qux=2 at datatype.pl line 19.

 (型省略)INTEGERTEXTNULL
1->1(*1)○/×(*2)○/○○/○○/×
1->'1'×/×○/○○/○×/×
'2'->2×/○○/○○/○×/○
'2'->'2'○/○○/○○/○○/○
'a'->'a'○/○○/○○/○○/○

*1)更新時の指定->参照時の指定
*2)ベタ展開/プレースホルダ
「スリッパ野郎!」

とか罵られつつ、スリッパを買いにぶらりと出かける。

なんというかこう、見るからにあったかそうなスリッパを買ってきました。
これで今年の冬を戦い抜ける…!

あと、フライパンの蓋を買ってきたりとか。
箸を買ってきたりとか。
イーモバイル端末を買い増ししてきたりとか。

Pocket WiFi (D25HW) イー・モバイル
http://emobile.jp​/products/hw/d25hw/

うん。
結局、我慢できなかったんだ。


ウィルコムとイーモバイルとイーモバイルとドコモ。

これでようやく、ウィルコムを解約する踏ん切りもついたよ!(遅すぎる)
今までありがとう、AH-N401C。
2009/12/29 Tue
部屋の中で、
コートを着込んで、
ヘッドセットを装着して、
膝にダウンジャケットをかけて、
足の下には厚手のタオルを敷いて、
喉がやられないようにマスクをして、
貧乏ゆすりをしつつキーボードを叩き続ける。

寒いよ!バカ!
2009/12/28 Mon
もやしと鶏ムネと豆腐の賞味期限が切れていたので食う。 鶏ムネが安かったので補充。賞味期限は12/28。
うん。
今日ですね。 Perl+SQLite のトランザクションについて言及しているサイトで $dbh->do('BEGIN')/$dbh->do('COMMIT') しているサイトと、$dbh->commit しているサイトとがあるけど、DBI的には後者の方が良いですよね。
前者によるメリットでもあるのかしらんと、とりあえず計測してみる。

use strict;
use warnings;
use DBI;
use Time::HiRes;

foreach my $begin_commit(
        ['', ''],
        ['$dbh->do("begin");', '$dbh->do("commit");'],
        ['$dbh->{AutoCommit} = 0;', '$dbh->commit;'])
{
    foreach my $do_execute([100,0], [50,50], [0,100])
    {
        my $sum = 0;
        my $min = 0;
        my $max = 0;
        foreach(1..10)
        {
            my $val = &transaction(@$begin_commit, @$do_execute);
            $sum += $val;
            $min = $val if $min > $val || $min == 0;
            $max = $val if $max < $val;
        }
        warn sprintf '%8.5f(%8.5f~%8.5f)', $sum / 10, $min, $max;
    }
}

sub transaction
{
    my($begin, $commit, $do, $execute) = @_;

    unlink 'foo.db';

    my $time = Time::HiRes::time();

    my $dbh = DBI->connect('dbi:SQLite:dbname=foo.db');
    eval $begin;
    $dbh->do('create table foo(foo)');

    foreach my $i(1..$do)
    {
        $dbh->do("insert into foo values($i)");
    }

    my $sth = $dbh->prepare('insert into foo values(?)');
    foreach my $i(1..$execute)
    {
        $sth->execute($i + $do);
    }
    undef $sth;

    eval $commit;
    $dbh->disconnect;

    return Time::HiRes::time() - $time;
}

> perl transaction.pl
10.00447( 9.81217~10.20283) at transaction.pl line 23.
10.13726(10.06212~10.31213) at transaction.pl line 23.
10.18888(10.14030~10.23409) at transaction.pl line 23.
 0.12704( 0.11595~ 0.14120) at transaction.pl line 23.
 0.12462( 0.10943~ 0.14125) at transaction.pl line 23.
 0.11114( 0.10413~ 0.11639) at transaction.pl line 23.
 0.12563( 0.11620~ 0.14054) at transaction.pl line 23.
 0.12695( 0.11620~ 0.14166) at transaction.pl line 23.
 0.11217( 0.10785~ 0.12078) at transaction.pl line 23.
>
> perl transaction.pl
11.79044(11.65592~11.89033) at transaction.pl line 23.
11.83569(11.79644~11.87464) at transaction.pl line 23.
11.83567(11.79658~11.89022) at transaction.pl line 23.
 0.14603( 0.13568~ 0.15803) at transaction.pl line 23.
 0.13457( 0.12304~ 0.14113) at transaction.pl line 23.
 0.12933( 0.10813~ 0.14678) at transaction.pl line 23.
 0.14184( 0.11892~ 0.15527) at transaction.pl line 23.
 0.13834( 0.13286~ 0.14959) at transaction.pl line 23.
 0.12602( 0.11557~ 0.13844) at transaction.pl line 23.

かわらんね。
2009/12/27 Sun
朝5時まで飲み続ける。
メンバーの半分以上は落ちてましたが。 店から追い出されて解散し、浅草線で乗り過ごしたり新宿線を往復したりしつつ、どうにかこうにか一之江にたどりつき、死ぬ。 復活。
二日酔いではないけれど例によって胃は痛い。
あと、アルコール分解に体力を使いすぎて疲労困憊。
2009/12/26 Sat
忘年会で五反田。
すげー懐かしい人と会う。
さらにすげー懐かしい人と会う。

マグロ食ったり焼酎飲んだり焼酎飲んだり焼酎飲んだり。
2009/12/25 Fri
いい加減にして欲しいので、明日から17連休ということにしてみたよ!
絶対途中で阻止されると思うけど!

有給も代休も腐るほどありますのでー。
夏期休暇も未取得ですのでー。
2009/12/24 Thu
お客さんからの要請を受けて工場まで調査に出向く。
プロジェクトルームに行ってみたら実機が転がされているだけでした。セットアップから何から完全丸投げか。
いいけどさ。

症状は予想通り。
対策は予想より若干面倒で、ちょっと手を焼いたもののなんとか。 帰り道のバスの中、帰りの電車の中から見かけるケンタッキーがどこも長蛇の列で、みんなフライドチキン大好きだな!と思いました。
「まるでクリスマスケーキ \140-」
ホワイトチョココーティングし、粉糖をトッピング。

まるでクリスマスケーキですが、要するにパンです。
2009/12/23 Wed
本を読んでいて気が付いたら4時。
依然として体調は良くない。というか、寝なさいよ。

そういえば夕飯食べてないなとコンビニに行ってきて、サンドイッチ食ってエリクサー飲んで寝る。 起床。
治った気がする。ということにする。プラシーボ。 忘年会で亀戸へ。
シキさん企画の ちゃんこ忘年会。

東京都 ちゃんこ つけ麺 【ちゃんこ時津浪】 江東区 西大島駅 食べ放題 飲み放題 宴会
http://www.tokits​unami.com/index.html​


中ジョッキが大ジョッキほどあると聞いていたけど噂の通り。
じゃあ大ジョッキはどんなだと思ったら、1リットルあるとかなんとか。中瓶2本分て。


上のはキンカン。
卵巣と思っていたけど、

青森からこんにちは きんかん
http://cqw21132.s​eesaa.net/article/132124921.​html
ちなみにキンカンって何か知ってますか?
たぶん調べれば、「鶏の卵巣」という説明があると思うのですが、
アレは実は後に卵の黄身となるために卵巣の中準備されている
ものです。それがキンカンです。
その為、味は玉子の黄身とほぼ同じです。
鶏の卵巣の中に入っているものがキンカンなのだから
キンカンを「鶏の卵巣」って呼ぶのは間違っていると思うのです。
たぶん果物の金柑に似ているからキンカンだと言うのでしょう。

とのことらしい。
ついでに、Wikipediaさんだと

キンカン (曖昧さ回避) - Wikipedia
http://ja.wikiped​ia.org/wiki/%E3%82%AD%​E3%83%B3%E​3%82%AB%E3​%83%B3_(%E6%9B%96%​E6%98%A7%E​3%81%95%E5​%9B%9E%E9%​81%BF)
ニワトリが鶏卵として産む前の卵黄。精肉店で内臓として販売される。「ちょうちん」、「玉ひも」、「鶏キンカン」とも呼ばれる。煮込みや醤油漬けなどにして食べる。

とのこと。 たらふくちゃんこを食った後は

ちゃんこ鍋をたらふく食べた後は、ジョナサンでパフェでも食べながらだべればいいと思っています。


有言実行。

話が繋がったり無理矢理繋げたりで展開し、最終的に眼科行けということで締め括る。
もしくは世間知らずのお嬢様が警備員として配備されればいいな!ということで締め括る。

お疲れ様でした!
2009/12/22 Tue
打ち合わせから戻ってきて、
後輩をあがらせて、
報告書をまとめて、
お客さんからの要請で休日明けに出向かねばならなくなった件の準備をして、
とかをいつものようにフロアに一人残って作業していたらみるみる体調悪くなってきた。