nDiki : 2004年02月中旬

2004年2月11日 (水)

品川

と買物に。

ウィング高輪EAST

品川グランドコモンズ

バーミヤンは子連れが多し。

スポンサード リンク

[ DiKicker ] ハイパー日記システム(hns) からのコンバータ作成開始

DiKicker のコードを書いている途中に「やっぱ先にデータがある程度ないとな」ということで、hns からのコンバータを作り始める。

hnf文法は非常にシンプルなのでコンバータの作成が簡単(RTをのぞく)。 あらためて感心。

RT のスパン記号

||、== で上、左のセルと結合できるのか。 WiKicker にも欲しいな(| はセル区切りに使っているで、別の記号にする必要があるけど)。

過去の今ごろ

過去の2月11日より。

[ 2月11日全て ]

2004年2月12日 (木)

過去の今ごろ

過去の2月12日より。

[ Perl ] Devel::SmallProf

行毎のプロファイリングを実現する Perl モジュール。 メジャーどころの Devel::DProf がサブルーチン毎なのに対して、こちらはより細かい粒度で実行回数などを計数できる。

WiKicker だと、PageName <-> FileName の部分がページ数が増えるに従って気になりだしたな。 PageName リストファイルとか作ってそれを読み書きするのとどちらが速いだろうか。

年次有給休暇休暇年度

ウチの会社は就業規則によると1月1日から12月1日が休暇年度。 「1年間継続勤務*1・全労働日の8割以上出勤」で付与。

2001年4月1日に入社なので、2002年4月1日から有給休暇が付与されることになるのだがさて各年度には何日休めるのか? 2002年は何日休めるの? 2001年はどうなるの(もう過ぎたことだが)?

調べてみると法的には2002年4月1日の基準日を2002年1月1日にずらしたという扱いになるのでこの時点で1年間継続勤務扱いで、付与が始まるということになるらしい。 ということで、

だな*2労働基準法だと6ヶ月から与えなければならないから、

となるはず。2007年1月1日付与時で、101 - 75 = 26 日も差が出ちゃうな。 これは進言した方がいいかも。

*1労働基準法的にはアウト(6ヶ月)

*2毎年+1日という加算だと労働基準法の日数に満たない。

休暇取得メモ

  • 2001年 - 7月31日、12月10日 + (9月新婚旅行期間7日休 - 特別休暇(3 + 2) = 2)
  • 2002年 - 06月27日、06月28日、08月01日、08月12日、10月03日、10月04日
  • 2003年 - 06月02日、10月20日、11月25日、12月29日
  • 2004年 - まだ

そういえば、6ヶ月経つ前にガンガン休んでたな。 就業規則通りなら、今年は計23日。 労働基準法通りだと、計26日。

[ Debian ] PIO -> DMA

この間設定したオフィスのメールサーバで「メールを残す」が有効にならないというので調査。 fetchmail で nokeep すると自分の環境では問題なくサーバに残るな。 たまに mail が取れなくなるという連絡もあるし、vpopmail がよろしくない状態なのだろうか。

そういえばソフトウェアIDE RAIDを組んでいるこのマシンのディスク書き込みが遅くて以前から気になっていたところ、昨日やまだ君から「PIOになっているんじゃない」というアドバイスをもらった。 そういえばチェックしていなかったな。

hdparm

apt-get hdparm する(つい hdparam と間違える)。 で、チェック。

 # hdparm -t -d /dev/hda

 /dev/hda:
  using_dma    =  0 (off)
  Timing buffered disk reads:  64 MB in 14.43 seconds =  4.44 MB/sec

 # hdparm -t -d /dev/hdc

 /dev/hdc:
  using_dma    =  0 (off)
  Timing buffered disk reads:  64 MB in 14.43 seconds =  4.44 MB/sec

dma on にする。

 # hdparm -t -d1 /dev/hda

 /dev/hda:
  setting using_dma to 1 (on)
  using_dma    =  1 (on)
  Timing buffered disk reads:  64 MB in  2.28 seconds = 28.07 MB/sec

 # hdparm -t -d1 /dev/hdc

 /dev/hdc:
  setting using_dma to 1 (on)
  using_dma    =  1 (on)
  Timing buffered disk reads:  64 MB in  2.26 seconds = 28.32 MB/sec

ビンゴ。

起動設定

woodyhdparm(4.5-1.2)だと init.d スクリプトが無い。 sidの(5.4.10)から、/etc/init.d/hdparm と /etc/hdparm.conf をもってくる。 hdparm.conf の /dev/hda、/dev/hdc ブロックでそれぞれ dma = on しておく。

update-rc.d hdparm defaults

して、設定おしまい。(Ultra* については今はまぁいいや)。

[ 2月12日全て ]

2004年2月13日 (金)

胃痛

月曜日の夜から結構シクシクくる胃痛に悩まされていたのだが、仕事の手を抜いたら(もとい心労の少ない仕事を優先するようにしたら)落ちついてきた。 医者に行こうかと思っていたのだが、快方に向かっているようなので保留にしておく。

過去の今ごろ

過去の2月13日より。

  • TRAMP 初体験
    • Unisonを使うようになってからローカル・リモートのどちらで編集しても気にせず同期できるので TRAMP の使い勝手も良くなった。けど、まぁそんなにしょっちゅうは使わないけど。

Cygwin XFree86

ThinkPad X31Galeon を、仕事で使っている Windows BOX に持ってこようかと思い、Cygwin を入れてみた。 しばらく使わないうちにインストールがいろいろ良きにはからってくれるのだな。 X も問題なく起動するし。

で、SSH経由で、Galeonをひっぱってきてみた。 そのままだと日本語が入力できないのだが、まぁWebブラウズする分にはいいかな。 速度はちと遅い。 使い続けるかどうか微妙。

[ 2月13日全て ]

2004年2月14日 (土)

バレンタインデー

例年通り実家で用意済みというので、受け取りにいく。

ついでに、ナイスプリントショップMITAに、写真焼き増しを。 1.5hでできた。

ついでにF3も持って歩いたのだが、1枚も撮らず。 最近ほんとフィルムが進まないなぁ。

過去の今ごろ

過去の2月14日より。

[ WiKicker ] WikiPageHTMLレンダリング結果のキャッシュ

ようやく、HTMLレンダリング結果のキャッシュに着手。 cookie ベースでユーザ毎のカスタマイズ(名前やTZ)があるので、デフォルトのまま表示リクエストのみキャッシュが効くようにする。 キャッシュによる高速化を受けるのでは投稿してくれている常連ではなく検索エンジンから飛んできた一見さんということになるが、サーバの負荷が下がれば間接的に常連さんへのレスポンスも良くなるかと。

変換されたHTMLフラグメントをMemcachedキャッシュ。 最初、キャッシュを有効にすると逆に遅くなってしまって「まいったな」と思ったが、リクエスト処理終了毎にdisconnect_all するようにしたら、キャッシュの効果を体感できるぐらいの速度が出るようになった。

[ 2月14日全て ]

2004年2月15日 (日)

過去の今ごろ

過去の2月15日より。

まりも水交換

しばらくぶり。ビンがちょっと汚れていたが、マリモはノープロブレム。

[ WiKicker ] Memcachedメモリ使用量

現在 NaneyOrgWiki には946のページあるのだがHTMLフラグメントをMemcachedキャッシュさせて、メモリ使用量が 24MBぐらい(検索結果キャッシュも含まれる)。 キャッシュの expires は2時間(AutomaticLinkが無効な時にキャッシュした場合は30分)。 こんなものかな。 現在 max 32MB で Memcached を起動しているけど、20MBぐらいにして積極的に古いのは削除させてもいいかもしれない。

[ DiKicker ] URIの検討

DiKickerURI体系

基本的には、「日記ページ + キーワードページ」になるので、時間による範囲指定とキーワードによる指定ができればよいのだが、すっきりとまとめるのはなかなか難しい。 特にキーワードには '/' を含められるようになり path_info にのせると path segment 数が不定になるので、一番最後に持ってくる必要があるというのがポイント。

ここ最近ずっと悩んでいたのだが、えいやと決めた。

[ 2月15日全て ]

2004年2月16日 (月)

[ Perl ] DB_File - DB_BTREEロック

ということで、DB_File::Lock が本命か。

Search::InvertedIndex では、key/value の value に next key と prev key を持たせていて(正確にはindex番号)、hash の中に自前でリンクリストを作ってしまっている。 これって十分なスピードが出ているのだろうか?

もしそうなら DB_BTREE をやめて、MLDBM::SyncDB_HASH で使うという手もあるのだが。

過去の今ごろ

過去の2月16日より。

  • 甜茶購入
  • 今年は飲まないぞ。(私には)効き目が無いのなら、別のうまい訳でもないし。

[ お仕事 ] Word による文書書き

テンプレートにスタイルを集約させてみたり、ちょっといじってみる。 すぐに嫌気がさす。

やはり TeX ファミリにしたい。

エセライブカメラ再開

GIMP のプロセスがどんどん残る問題が発生していたため停止していたが、今日つないだら何もしていないけれど直っていた。 GIMP-1.3 の方の問題だったのだろうか?

また気がむいた時につないでおく事にする。

近谷研究室OB会(3月20日)のお知らせ

実家に葉書が来ているとの事。

多分詐欺ではないだろうけど、出欠連絡先が @hotmail.com っていうのが嫌だな。 学部か研究室のメールアドレスならもうちょっと安心できるのだが。 関係者に確認しておこう。

[ 2月16日全て ]

2004年2月17日 (火)

過去の今ごろ

過去の2月17日より。

  • Poseidon for UML Community Edition 1.5.1
    • 最新は、2.1.2 か。結構上がっているようだ。Java Web Start するので手軽に試してみれるのはいいね。って 16.6MBか。手軽なサイズではもはやないな。基本的な構成は同じようだけれど、いろいろギミックが増えた感じ。かなり軽快になった感じがするけど、これはマシンを乗り換えたせいか。

[ お仕事 ] ドキュメント書き

今日も。 しかしWordのスタイルは、あるスタイルを修正すると他のスタイルのインデント量が勝手変わったり、それの戻したら別のが変わったりと。 非常に生産性が悪い。 よくわからん。

[ DiKicker ] インデックス作成は別プロセスで

記事のHTMLフラグメントへの変換インデックス作成について、 WiKicker と同じく CGI プログラムが適宜処理するつもりだったが、「無駄が多い・速度がでない・ロック処理まわりが繁雑になりそう」ということで何らかの方法で別プロセスで処理しようかと考える。

[ 2月17日全て ]

2004年2月18日 (水)

過去の今ごろ

過去の2月18日より。

健康診断結果オールA

2月2日の健康診断の結果がでた。 オールA。問題なし。 まだまだ若いな。 いや、それとも何か見落されているだけ?

Subversion

遅ればせながらチェック。CVSから簡単に移行できるかな? ブランチの扱いが便利そう。

[ 2月18日全て ]

2004年2月19日 (木)

過去の今ごろ

過去の2月19日より。

  • migemo のユーザ辞書
    • DynaBook の時はいつのまにか妙に処理が重くなりメモリもガンガン食うようになったので、ユーザ辞書をコンバートして使うのをやめたのだが変換に失敗していたのだろうか。最近どうかな。

略称「アル中」はイヤ! 生徒の声受け校名変更 岐阜(asahi.com)

http://www.asahi.com/national/update/0218/026.html

私の通っていた中学は略称「オン中」だったが、外部では「オナ中」と略されていた。

御成門中学校

[ Perl ] PDL::PP で C extension を書く

PDLを使ったPerl数値処理プログラムによりインタラクティブ性が求められるようになってきたので、一部をCで書いて高速化する事を検討。 問題は Linux でも Windows + ActivePerl でもすんなり動くかどうか。

.pd ファイルを書く

とりあず PDL::PP のサンプルから sumit 関数あたりを MathEx.pd に書いておく。

Makefile.PLを修正する

Foo::Bar パッケージの中の Foo::Bar::Math の一部を Foo::Bar::MathEx に移して、C extension 化したい。 ということで lib/Foo/Bar/MathEx.pd として、Makefile.PL の各種設定をしてみる。

がどうもうまくいかない。 PDL::PPMakefile.PLサポートは、Makefile.PL と同じ位置に .pd がある事を想定しているようなので、いろいろと小細工をしなければならない。 一方 PerlXS は Foo::Bar のベース名から Bar.so を作る前提になっているようで、これまたパッケージの中の一部のモジュールをどうもXS化しにくい。

Makefile.PLを作る

Perl の ext/SDBM_File を真似て、子 Makefile.PL を使ってみることにした。

 Foo-Bar-x.xx
   |
   +- Makefile.PL
   |
   +- lib
   |    |
   |    +- Foo
   |         |
   |         +- Bar.pm
   |         |
   |         +- Bar
   |              |
   |              +- Math.pm
   |              |
   |              +- MathNoEx.pm
   |              |
   |              ...
   |
   |
   +- blib/...
   |
   +- MathEx
   |    |
   |    +- Makefile.PL
   |    |
   |    +- MathEx.pd
   ...

パッケージディレクトリの下に MathEx ディレクトリを作り、そこに Makefile.PL と MathEx.pd を置く。 Makefile.PL は MathEx.pd 専用になるので、PDL::PP の標準的なものでOKになる。

全体のパッケージング・PPM化・インストール等が面倒にならないかと心配したが、Foo-Bar パッケージ化で perl Makefile.PL、make xxx を実行すれば子Makefile.PLまできちんと面倒をみてくれる。 MathEx 以下でビルドしたものもパッケージの blib に一緒に入れてくれるし(=一緒にインストールできる・PPM化できる)。 逆に make dist の際には子Makefileの方は余計なとりまとめはしないで、親Makefileが一括して tar.gz に入れてくれる。 これはよい。 MathEx.pd もきちんと Foo/Bar/MathEx.so になった。

XSが使えない環境との両対応

XSが使えない環境のために、PerlとPPの両方で関数を書いておく。 XSが使えれば MathEx を、使えなければ MathNoEx.pm を使うように。 表向きのAPIは Foo::Bar::Math とし、ここで AUTOLOAD を使ってどちらか一方を呼び出すようにする。 間接呼び出しにして遅くなるのはいやなので、シンボルテーブルを直接設定する。

 use vars qw($IMPLEMENT_CLASS $AUTOLOAD);
 BEGIN {
   $IMPLEMENT_CLASS = 'Foo::Bar::MathEx';

   eval "use $IMPLEMENT_CLASS";
   if ($@) {
     warn "Can't load $IMPLEMENT_CLASS: $@";
     $IMPLEMENT_CLASS = 'Foo::Bar::MathNoEx';
     eval "use $IMPLEMENT_CLASS";
     die $@ if $@;
   }
 }

 sub AUTOLOAD {
   my $name = $AUTOLOAD;
   $name =~ s/.*://;
   my $implement = $IMPLEMENT_CLASS . '::' .$name;
   no strict "refs";
   *{$name} = \&{$implement}; # ここでシンボルテーブル設定
   return &{$implement}(@_);
 }

最初は、AUTOLOAD の最後の行で die したら、trap してエラーメッセージ中のパッケージ名(Foo::Bar::MathEx や Foo::Bar::MathNoEx)を呼び出された Foo::Bar::Math に置換して die し直すようにしようかと思ったが面倒なのでやめ。

ActivePerl 5.6 + Visual C++ 6

使っているWindows BOX には Visual C++ 6 が入っているので、XSも問題なくビルドでき PDL extension もうまく動いた。

 PPM化までここで済ませば、他のPCにも持っていけるはず。

さて

これでバシバシPPで書けるわけだが、PPがこれまた難解で最初は苦労しそう。

[ 2月19日全て ]

2004年2月20日 (金)

[ photo ] リバーサルフィルム現像受け取り

昨日久しぶりに現像に出したリバーサルフィルムを受け取ってくる。

ThinkPad X31 英語キーボード(08K5073)注文

若松にも入荷しなさそうだし別ルートで購入しようと思って調べたら、日本IBMの部品センターから直接購入できるらしい。 しかも、店頭や通販より安い。 ということで注文。

9:00 部品センターへTEL

ThinkPad X31英語キーボードを注文したいと告げると、ThinkPadの型番(2672-PHJ)を聞かれる。キーボードの型番(08K5073)は直接伝える必要なし。

  • 6610円 + 配送手数料1000円 + 税金 = 7990円
  • 「日本語キーボードからの交換ですか?」「はい」「保証がきかなくなりますがよろしいですか」「はい」
  • 現在在庫なし。発注までしばらく時間がかかる。
  • 注文の流れの確認。
  • 名前・電話番号・ファクス番号を伝える。

等のやりとり。 サービス部品購入申込書がファクスされてくるので、指定されている銀行口座に振り込みの上、配送先を記入してファクス返送をすることになる。

自宅にファクスがないので、会社のファクス番号を指定。

10:00 サービス部品購入申込書

会社のファックスに届く。見積もり・簡単な説明・配送先記入欄があるA4一枚。

13:00 振込みを済ませて申込書をファックス

申込書にATMの振り込み控えをのせてコピーし、配送先を記入してからファクス送信。

後は待つのみ。

過去の今ごろ

過去の2月20日より。

  • SureFire E1E-HA + KL1
    • うーん。結局去年はキャンプにも行かなかったし活躍してないなぁ。Arc-LS はいつも腰にぶらさげているのでたまに使うのだが。コイツのためだけに旅に出たい。
[ 2月20日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.053222s / load averages: 0.45, 0.55, 0.57
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker