nDiki : 2006年03月上旬

2006年3月1日 (水)

Blender とテンキー

マウスも買ったことだしと、昼休みにご飯を食べた後 Blender を起動してポチポチと操作方法を確認。

ショートカットでテンキー使用しまくり。 困った。 ……と思ったら、設定で数字キーも使えるようにできるのか。

しかしそれにしても、やはりノート PC だと画面が狭いな。

スポンサード リンク
[ 3月1日全て ]

2006年3月2日 (木)

FreeBSDApache::Htpasswd

WiKicker認証ドライバの1つとして、まずは Apachehtpasswd パスワードファイル(AuthUserFile ディレクティブ用パスワードファイル)形式のものを作成することにする。 これなら htpasswd で作成することができるので、最悪最初の段階では WiKicker に登録・削除機能を入れないで済む。

Perl からこのパスワードファイルを扱うモジュールとしては Apache::Htpasswd や、Authen::Htpasswd がある。 CPAN にある CGI-Application-Plugin-Authentication は前者を、Catalyst-Plugin-Authentication-Store-Htpasswd では後者を使用している。

機能的にはほぼ同じか。 Authen::Htpasswd の方がユーザ名に対応するオブジェクトを取得するメソッドがあり便利といえば便利だが、まあなくても困らないだろう。

ということで今回は、依存モジュールの少ない Apache::Htpasswd を選択した。 Perl 5.005_03 にはない warnings プラグマが使われているが、Htpasswd.pm の

 use warnings;

1行を削除すれば問題無し。

FreeBSD 4.4-RELEASE #3 + Perl 5.005_03 + Apache-Htpasswd 1.7 だと、crypt 関連のテストケースが失敗する(not ok 17)のがちょっと気になるところ。 MD5 ベースのパスワードの読み書きは問題ないので、この環境ではこちらを使うことにしよう。

WiKicker へのセッション管理/認証/承認機能追加開始

書き始めると結構なコード追加になりそうな感じ。

上記機能を使わないオープンな Wiki としてももちろん使えるようにしておきたいので、その辺り慎重にコーディングしていく必要あり。 現在 WiKicker が持っているサーバサイドセッション管理をともなわない、Cookie オンリーのプリファレンス機能との連携をどうするかも課題。

それにしてもやはり、WWW::Mechanize::CGI 便利だわ。

nDikiサイドバーを右に移動

WiKicker開発でログインフォームとその CSS の検討をしているうちに、全体の CSS が興味が移ってしまった。

nDiki の日付見出し部分の背景画像をグラデーションに変更。 ページの印象がちょっと明るくなったかな。

それからサイドバーを右側に移動。 基本的には、今までメイン部分の左マージンを大きくとって position: absolute; で左側にサイドバーを配置していたところを、メイン部分の右マージンを大きくとるようにして、サイドバーを右側からの position: absolute; にしたぐらい。

左側にサイドバーがあると、メインである記事を読む時にちょっと目がチラチラするかなと以前からちょっと感じていたので。

変えてすぐは自分でもかなり違和感があったが、しばらくいじっている間に慣れてきた。

有給休暇 - フリーソフトウェア開発をするために会社を休む

今年1回目。

(計算が当っていれば)残26日 (去年分12日 + 今年分14日)。

今日と明日は会社を休んで集中的に WiKicker開発をする予定。 とはいえ、家にいるとついついだらけてしまいがち。

[ 3月2日全て ]

2006年3月3日 (金)

サーバ高負荷状態につき DiKicker 機能修正とサーバ設定変更

www.naney.org をホスティングしているサーバが重いと思ったら、同じサーバ上のあるユーザの CGI プログラムが5プロセス無限ループしてるっぽい……。 load average 20前後。

あおりを受けて、nDiki が大変なことになっている。

nDikiSpeedyCGI を使っているのだが、バックエンドの speedy_backend が捌ききれず、フロントエンドの speedy が大量に待ちに入ってしまっている。

MaxBackends を調整しても駄目(下手にバックエンドプロセス数を増やしても、結局処理が追いつかない)。

ということで急遽対策。

高負荷時にはてなブックマークへのアクセスを停止

load average が高い時には、はてなブックマーク上の検索結果を表示させるために行なっているはてなブックマークへのアクセスを休止するように変更。 24時間に設定してあるキャッシュの有効期限が切れていても、高負荷の時にはアクセスにいかないようにする。

これで DiKicker の処理時間を短縮。相手側サーバへの負担も軽減。

Google Desktop からのアクセスを一時的に拒否

おかげ様でここ最近 nDikiRSS へのアクセス数が増えてきている。 ありがたい事である。

しかしながら DiKickerRSS レスポンスは、あまり賢くなく毎回データベースから最新記事情報を抽出して生成しているため、それほど処理が速くない。

なのでアクセス頻度を高くしている RSS リーダがどこかで同時に起動しているとちょっとしんどい。 特にここ最近 Google Desktop からのアクセス数が増えている感じ。

さすがに今日はサーバの負荷が高く処理が追いつかなくてどうしようもないので、一時的に Google Desktop を拒否することに。

.htaccess に設定を追加。

 BrowserMatch "Google Desktop" denybrowser
 deny from env=denybrowser

近日中に、RSS 処理を改善してすぐに解除する予定。

robots.txt に Crawl-delay: を追加

効果があるかどうかは不明だが、Crawl-delay: に対応するというクローラ (Slurp、msnbot) 向け設定を追加。

 User-agent: Slurp
 Crawl-delay: 20

 User-agent: msnbot
 Crawl-delay: 20

アクセス数としては Googlebot と Slurp がダントツ。 しかし Google は無下にする訳にもいかないしなぁ。

有給休暇 - フリーソフトウェア開発のための休暇2日目

有給休暇今年2回目。

(計算が当っていれば)残25日 (去年分11日 + 今年分14日)。

WiKicker 開発 (のつもりであるが、DiKicker 改良にも追われる)。

[ 3月3日全て ]

2006年3月4日 (土)

さらにサーバ負荷状態悪化。対応に追われる。

CPU パワーを消費し続けているプロセスが昨日の 5 個から、今日は 21個に増えている……。

対応するも、焼け石に水か。

データベースロックタイムアウト時間を短く

120秒から60秒に。

生成した RSSキャッシュするようにする

生成した RSSCache::FileCache で有効期間30分でキャッシュするように変更。 あわせて Google Desktop からのアクセス拒否を解除。

旬カレンダーナビゲーションをキャッシュするようにする

ページ下部にある各月上中下旬へのリンクは、どこに記事が追加されたかディレクトリをスキャンするしか知りようがないので毎回そのようにしていたのだが、これが結構重くなってきたので、これも有効期間1時間でキャッシュするように変更。

高負荷時のページ更新停止機能を改善

DiKicker では新しいキーワードが追加されると、過去の記事についてもアクセスがあり次第、自動リンクし直していくようになっている。

高負荷時にはこの機能が止まるようにしてあったのだが、「キーワード記事」については止まるようになっていなかった。 また「1記事のみのページ」へのアクセスの場合も(1記事ぐらいの更新ならいいだろうということで)止まるようにしていない。

このためこれらへのアクセスあると、(必要であれば)アップデート処理が発生。 データベースの排他ロックも必要となるため、全体のレスポンス低下につながっていた。

これらも、高負荷時には止まるように修正。

[ 3月4日全て ]

2006年3月5日 (日)

今年のトレンドは数珠

と一緒に銀座へ買い物へ。プランタン銀座松屋三越など。

今年の女性の春物のマネキンは、ことごとく数珠を首から下げているなぁ。 業界は今年、数珠をはやらせたがっているのか?

[ 3月5日全て ]

2006年3月6日 (月)

DebianRSS リーダフレッシュリーダー」をインストール

2006年3月1日にリリースされた RSS リーダ フレッシュリーダー(Fresh Reader)を昨日 Debian GNU/Linux sid 環境へインストールして試用を開始してみた。

Debian GNU/Linux sidインストール

ノート PC 上で動いている Apache2 にインストールPHP が必要なので、libapache2-mod-suphp をインストールしておく。

 apt-get install libapache2-mod-suphp

他のプライベートな Web サイトと分離するために、バーチャルホストを1つ作ってそこへインストールすることにする。 libapache2-mod-suphp を使って、自分のユーザ権限で db に書き込むように設定。 また自分だけが使えるようにアクセス制限しておくことにする。

/etc/apache2/sites-available/freshreader を作成:

 <VirtualHost *>
   ServerAdmin naney@naney.org
   ServerName freshreader
   SuexecUserGroup naney naney

    DocumentRoot /var/www/freshreader
    <Directory />
      Options FollowSymLinks
      AllowOverride None
    </Directory>
    <Directory /var/www/freshreader>
      Options Indexes FollowSymLinks MultiViews ExecCGI
      AllowOverride All
      Order deny,allow
      Deny from all
      Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
 </VirtualHost>

で、次にバーチャルホストを有効にする。

 #mkdir /var/www/freshreader
 #chown naney.naney /var/www/freshreader
 #a2ensite freshreader
 #emacs /etc/hosts                # 127.0.0.1 に freshreader を追加
 #/etc/init.d/apache2 reload

続けてフレッシュリーダーインストール。 基本的にはアーカイブを展開するのみ。

 $cd /var/www/freshreader
 $tar zxvfp ~/sffr10lin.tar.gz
 $chmod 700 db

Web ブラウザから

 http://freshreader/freshreader/index.html

にアクセスする。これで基本的なインストール終了。

それから1時間に1回自動巡回するようにしておく。 今回は自分のユーザアカウント (naney) でインストールしてあるので、自分の crontab 設定に追加する。 自分の場合は、1時間に1回 run-parts されるディレクトリがあるので、そこに

 #!/bin/sh
 /usr/bin/php5 -f /var/www/freshreader/freshreader/crawler.php

というファイルを作成しておく。

あとはマニュアルの通りWeb ブラウザでユーザを作成したり、巡回先を登録したりしていく。

感想

現在のところ Web 巡回は

と用途ごとに分散してしまっている。

集約したかったのだが、なかなかこれというのが無かった。

フレッシュリーダーだと

  • MyRSS.jp のエンジンを使って、RSS フィードのないサイトも登録可能
  • ローカルで動かせるので、プライベットネットワーク上の RSS フィード、プライベートな RSS、ローカルホスト上の RSS を集約できる
  • Bloglines に同様の未読管理
  • Web ブラウザベース (記事中のリンクもそのまま Firefox 上で閲覧していける)

と望んでいる機能が入っている。

早速 Bloglines から登録一覧を OPML でエクスポートして、インポート。

動作も軽快だしいい感じだ。 「一度に表示する未読記事の数」が設定できるのが非常に気にいった。

未読記事を表示したらそのページ(タブ)を閉じる前に全部目を通さなければならない(でないと、読んでいないものも既読になってしまう)。 Bloglines だと前回見てからの未読が1度に全部表示されるので、間隔をあけてしまった時に辛い。 この点でフレッシュリーダーは便利。

現在「無制限」「約100件」「約1000件」が選べるが、ここは自由に数値で指定できるとなお嬉しい(50件づつぐらいにきざみたい)。

Web 巡回は、基本的にこれに集約しようかな。

ということでブロガーライセンス(自身でブログ/ホームページを運営されている方向けの優待ライセンス: 無料)を申請。

YAMAHA のルータ RTX1100 と RT107e 到着

naney:108902328

会社用ルータのリプレースのためにぼちぼち選定をしていて、「やっぱり YAMAHA かな」とあたりをつけていたのだが、今日「どれがいい?」と聞かれたので、現時点での候補を提案。

夜には届いた。ハヤッ。

ヤマハルーター

  • イーサアクセスVPNルーター RTX1100
  • イーサアクセスVPNルーター RT107e
[ 3月6日全て ]

2006年3月7日 (火)

ファイナルファンタジーXII ポーション (青色1号)

naney:109191980

セット買いした人が、オフィスに約2名。

キャップがプラスチックなのが非常に惜しまれる。 少々試飲させてもらった。瓶から直接飲むと気がつかないかもしれないが、カップに注ぐと結構毒々しい色だ。

味は、まあドリンク剤。

[ 3月7日全て ]

2006年3月8日 (水)

DHCPIP アドレスを割り当てられているノート PCWindows BOX からいろいろな名前でアクセスする

Debian GNU/Linux ノート PC 上で動かしているフレッシュリーダーWindows BOX からアクセスできるようにしたい。

しかしそのノート PCDHCPIP アドレスを割り当てているので Windowshosts ファイルに書くのも毎回書き換えが必要で面倒。 DNS がどうのこうのという大袈裟なこともしたくない。

何かいい手はないかなと考えていたら、nmbd の事を思い出した。 もともと Windows だと NetBIOS 名で URL のホストを解決できているので、これを使う手がある。

今回は Apache の名前ベースのバーチャルホスト 'freshreader' に置いてあるフレッシュリーダーに、Windows BOX からアクセスしたいので、 Samba の 'netbios aliases' 設定を使用する。 smb.conf で 'netbios aliases' としてバーチャルホストと同じ名前の指定しておいてあげれば OK。

フレッシュリーダーブロガーライセンス取得

申請していたフレッシュリーダーのラインスが発行された。

3日前から使い始めているのだがなかなかいい調子。 なので、会社にいる時に昼休みなど Windows BOX 上の Firefox からもアクセスできるように Apache の設定を修正しておく(ローカルホストから以外の時には、Basic 認証を必要とするように設定)。 サーバ型なのでこういう使い方をするには便利。

にんにく?

naney:110250537

社長コレクションより。絵とおそろいのオブジェが出てきた。 かぼちゃらしいが、どうみてもニンニクだ。

Mule-UCS の設定

reStructuredText では表を作る時は文字数で桁揃えして、表セルを表現していく。 ASCII 文字などフォント幅がいわゆる半角幅であるものだけならば、良いのだが全角幅の文字がある場合はちょっと厄介である。

文字数的には1文字なのだが、プレーンテキストファイル上では2文字分の幅を取るので見た目上桁が揃わなくなってしまう。 というかそれを忘れて桁を揃えておくと、パーサに怒られる。

このためにパッチがあったり、Docutil 0.4 ではこの対策がほどこされたりしている(不完全であるが)。

さらに厄介なのが Unicode 変換がからむところで、 Emacs + Mule-UCS ではいくつかの(いわゆる)全角文字は UTF-8 で保存すると違う文字に変換されてしまい、これまた Docutils のパーサに、桁があっていないと怒られることになる。

できるだけ全角文字はそのままにしておくということで、以下の設定を追加しておいた。

 (require 'un-define)
 (un-define-change-charset-order
  (append '(ascii japanese-jisx0208)
          unicode-basic-translation-charset-order-list))

またバックスラシュと円記号の方も混乱が少ないように

 (require 'un-supple)
 (un-supple-enable 'windows)

を追加してく。

[ 3月8日全て ]

2006年3月9日 (木)

三原山噴火での出会い

今週の「奇跡体験! アンビリバボー」は伊豆大島の全島避難の話。

1986年11月の三原山の噴火当時、中学生テレビでみていた噴火であるが、島民の避難で思いがけず身近なものになった。 避難してきた中学生の何人かが、自分の通っていた御成門中学校で一緒に学ぶことになったのである。

どんな内容だったか忘れてしまったが当時心ないあだ名を考えたりした記憶があり、その事を思い出すと今でもちょっぴり後ろめたい気持ちになるのである(もちろんイジメたりはしていないのだけれども)。 避難してきた彼らにとって不自由の生活の中、見知らぬ土地での見知らぬ学校での生活は、今思うと大変だったに違いない。

約1カ月後島に戻ったクラスメイトから、感謝の印として椿の実のキーホルダーがおくられてきた。 実には彼の名前と私の名前が彫られていた。

その後時が経ち、平成の時代へ。 大学時代に出会ったの、大学の親友は伊豆大島出身だ。 そのの親友が、結婚する。

その相手が、あの時の彼。

中学生のあの時から1度も会う機会はなかったのだが、人間つながっているものだ。

あれからもう20年。 思い出の品の箱の奥にキーホルダーはまだ眠っている。

健康診断の結果は高脂血症

健康診断の結果がきた。 去年高かった総コレステロール値とGPT(ALT)値は基準値におさまったものの、中性脂肪(TG、トリグリセライド)が基準値オーバー。

脂質検査報告書の裏には「高脂血症」の文字が。 ショック。

やっぱり昼の弁当とおやつを考えねばならないな。

[ 3月9日全て ]

2006年3月10日 (金)

Linux kernel を 2.6.15 にしたらハードディスクへのアクセスが遅くなった理由

2週間ほど前に ThinkPad X31 (2672-PHJ) の Linux kernel を 2.4.27 から 2.6.15 にしたのだが、その頃からか何となく動作がもったりするようになった。 コマンドを実行した際のレスポンスが遅くなったし、amaroK での音楽再生時にもちょっと負荷が上がるとすぐ音が切れるようになってしまった。

まさか kernel の性能が落ちたとは考えにくいので、設定のせいであろう。 感じからして、HDD まわりのようだ。

もしかして DMA?

 #hdparm -t -d /dev/hda

 /dev/hda:
  using_dma    =  0 (off)
  Timing buffered disk reads:    8 MB in  3.10 seconds =   2.58 MB/sec

ビンゴ!

 #hdparm -t -d1 /dev/hda

 /dev/hda:
  setting using_dma to 1 (on)
  HDIO_SET_DMA failed: Operation not permitted
  using_dma    =  0 (off)
  Timing buffered disk reads:    8 MB in  3.05 seconds =   2.62 MB/sec

おや?

[Device Drivers] ---> [ATA/ATAPI/MFM/RLL support] ---> [Intel PIIXn chipsets support] (CONFIG_BLK_DEV_PIIX) がモジュールになっていたのが問題のようだ。

組み込みにして Debian kernel パッケージ構築しなおしてインストール再起動

 hdparm -t -d /dev/hda

 /dev/hda:
  using_dma    =  1 (on)
  Timing buffered disk reads:   84 MB in  3.05 seconds =  27.56 MB/sec

なおった。


[ hdparm ]

デジカメ写真管理ソフトウェア digiKam

4年前に DiMAGE X を購入してから、デジタルカメラを持ち歩く生活が本格的に始まった*1。 それほどたくさん撮るほどではないが、それなりに枚数がたまってきた。

撮るだけ撮って過去の写真をあまり見る機会がなくもったいないので、何か写真管理ソフトウェアを試してみることにした。 Flickr を使っていてタグによる写真管理の良さを感じているので、そのような機能のあるものを探してみる。 Linux で使えるやつだと KDE 系である digiKam が良さそう。 ということで早速インストールして、手持ちの写真を放り込んでみた。

*1DiMAGE X は3台目のデジタルカメラだが、その前の2台ではあまり撮影していない

使い勝手

  • タグはDBで管理される(画像ファイルに直接書き込まれないので良い)。
  • タグアイコン等一つ一つの要素が大きいので、画面が狭くなりがち。
  • サムネイルの大きさを変更すると、閲覧している位置がクリアされて先頭に戻ってしまうのがちょっと嫌。
  • digiKam のメインのウィンドウ内でプレビューできない。表示されるのはサムネイルのみで、画像の表示(と編集)は別ウィンドウが開く。

特に最後のは残念。gqview や ViX みたいに、同じウィンドウ内でサムネイル一覧とプレビューが表示できれば嬉しいのだが。

しかしながらタグ打ちは面倒だけれど、以外に楽しかったりする。 気がつけば随分長い間打ち続けていたり。

HTML アルバム作成や SimpleViewer 用エクスポートなどもできるし、Flickr へのアップロードもできる。 これ(と GIMP)があれば、大体やりたいことはできそうだ。

[ 3月10日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィの SNS の企画開発を行うグループでマネージャー・プロダクトオーナーをしています。CS 向上・ユーザーサポート・健全化などにも取り組んでいます。

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

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

月別インデックス
Process Time: 0.074164s / load averages: 0.64, 0.93, 0.66
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker