Home日記コラム書評HintsLinks自己紹介
 

2005年10月のアレ

まあ日記というのか、そういうものだ。

← 2005-09 | 日記一覧 | 2005-11 →

2005年10月31日

200,000 hits 達成!

途中、完全に死に体になった期間が1年以上あったにしては、 なかなかいい感じというか、 170,000 あたりで停止したような気がしないでもないが。

§

chat で、1か月後は12月? という話題が。 10月31日の1か月後は、という話。 月単位なら、10月の1か月後は11月なのだが、 10月31日の1か月後は11月31日がない、 とはいっても12月1日だとすると、 2か月後みたいな気がする。

§

昨日入れるの挫折した画像とか。 渋谷から表参道まで歩く途中にある信号。 DiMAGE X1 で撮影。 オリジナル画像を縦横ともに1/8 に縮小した。

Shibuya Omotesando 2005-10-30

とりあえず画像は入った。 何に挫折したかというと、 たいしたことはないのだが、 この日記ページは Apache Forrest で生成したものを、 site/ の下に配置して、 その中からトップの index.html の一部を抜き出して、 ~/index.html を生成するような仕組みになっている。 この処理は perl でやっているのだが、 ~/site/index.html が参照する画像は img タグ内に src で指定してあって、 これをそのまま ~/index.html にコピーしてしまうと、 位置がずれるので、画像が表示されない。

かなりやっつけ仕事だが、こういう処理を perl のスクリプトに追加して解決している。 真似しない方がいい。

    if (index($line, '<img') >= 0) {
      # <img alt= … src="…"> のマッチ
      if ($line =~ /^(<img\s.*)\ssrc=\"diary\/images\/(.*?)\">$/) {
        $line = "$1 src=\"site/diary/images/$2\">";
      }
    }

もう一つ先送りにしている内容があって、 これを毎月の日記に分割するときに、 もう一度大変なことになる。 また画像の相対パスが変わるのだ。 絶対パスで書けばよさそうなものだが、 そうすると途中にファイルの状態で内容を確認できなくなってしまう。 base とか指定すればもしかして桶?

2005年10月30日

久々に渋谷とか歩く。 ってつい最近歩いたか。 画像をここに入れてみようと思ったが、 何か面倒っぽいので挫折。

vsftpd の件、 もしかして selinux 絡みなのか? とか思ったので、自宅サーバ確認。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

同じやん…。

2005年10月29日

メールが使えなくなったというので、 緊急にアジトに行って pc のメンテナンスをすることに。 天気もいまいちだし。

行ってチェックした方がいいだろ、と思ったのがだいたい10時頃で、 支度とかして新宿に着いたら10分前。 ここから中央線のあずさ出発のホームまでがこれまた遠い。 新南口で5分前。 とりあえず130円の切符を買って入って、 12:00 発のあずさに乗ったら自由席が意外と混んでた。 とりあえず座れたが、 八王子あたりで満席、通路立ち状態。 こんなに混むのか。

ちなみに、帰りは駅に着いたのがあずさの出発時刻0分前、というかぎりぎり。 ただ、あずさの上りは少し遅れることが多くて、 今日も2分程度遅れて来たので助かった。 これ乗り遅れると、1時間ほど待つことになってしまうのである。 逆に考えると、 今日はやけに電車の待ち時間が少なくて済んだわけだ。

で、メールの件だが、 Netscape のメールの保存フォルダがなぜか変更になっていた。 元データがどこにあるか分からない状態だったが、 何とか検索とか駆使して発見、 設定を元に戻して作業完了。 とりあえずバックアップをとっておく。

§

Fedora Core 4 が up2date できないで挫折したという話、 これのことか?

vsftpd の話は、 vsftpd Discloses Whether Usernames are Valid or Not にも出ている。 これに似ているなぁ。 みんな悩んで大きくなった?

2005年10月28日

今日の一言: 一緒懸命

vsftpd の件。 挫折しました。 どうしても login できません。 謎。

何の話かというと、 Fedora Core 4 をインストールしたマシンで、 ftp localhost でログインしようとすると 530 Login incorrect. となって、ログインできないという話。 多分、 コレ と同じ症状である。

web に出ていることはほとんどやってみました。 ただし、 firewall 無効にして linux 再起動、というのと、 vsftpd をソースからコンパイルしてインストール、 というのはまだやってませんが。 ただ、firewall 無効にしても、 そもそも localhost から ftp できない訳で、 やはり pam の設定のような気がする。

ということで、ftp はあきらめて scp でコピーする方向で考えている。

なお、 ftp が使えないというその pc と全く同じ手順で Fedora をインストールしたつもりの自宅のpcでは vsftpd が何の問題もなく使える、 ということだけ蛇足しておく。 一体どこが違うのかサパーリ分からん。

2005年10月27日

UTF-8対応 TeraTerm Pro をインストールしてみた。 手順。

1. UTF-8対応 TeraTerm Pro からソフトウェアをダウンロードして、 インストールする。 インストールは勘でできるはずなので手順は超省略。

2. 起動して、 メニューの Setup > SSH Forwarding を選択する。 TTSSH: Forwarding Setup という画面が表示される。

3. Add ボタンを押す。 SSH Port Forwarding という画面が表示されるので、 Forward local port のラジオボタンを check した状態で、 Forward local port は ftp を選択、 to remote machine は 127.0.0.1 を指定、 port は ftp を選択する。

てな感じで、 前から使っていた設定を追加。

10080 → 192.168.0.20:80
18080 → 127.0.0.1:18080
194 → 127.0.0.1:194 (irc)
5900 → 127.0.0.1:5900
5901 → 127.0.0.1:5901
6667 → 127.0.0.1:6667 (irc-alt)
6668 → irc.tokyo.wide.ad.jp:6668
8481 → 192.168.0.20:8481

ただ、これがよく分からんのですが、 10080 は常識的に想像できる通りだと思う。 8481 は想像できないかもしれないが、 多分、ライブカメラのポートだ。 ただ、192.168.0.20 というサーバーは現在存在しないので、 如何ともしがたい状態である。 18080 は、ssh で接続したサーバーで 18080 が servlet 管理という状態で使うためのもので、 そういう設定のサーバーがどこかにある訳だ。 irc 関係の設定は、 CATV から irc に接続できないという問題を解決するために、 グローバルIPを持っているサーバーを経由してアクセスするための設定。 確か「裏表」に書いた話。 5900と5901は vnc だと思う。

4. OK ボタンを押す。

5. Setup > Save Setup を実行する。 これを忘れると設定した内容が保存されない、と思う。

§

秋葉原でマウスを買った。

銀座線、末広町。 行きたい方向によって地上出入り口が分かれているのだが、 表参道の改修作業なんかする余裕があるのなら、 この駅を何とかして欲しいものだと思った。

2005年10月26日

VAIO Z、強制終了させたので chkdsk を実行。 何も出てきませんでしたけど。 ちなみに、デフラグした方がいいのだろうか?

今日の一言: 冬眠暁を覚えず

2005年10月25日

Fedora Core 4 を install してから up2date。 例によってかなりハマる。 殆ど解決したのだが、最後までこれとか残った。

GFS-kernel 2.6.11.8-20050601.152643.FC4 requires /lib/modules/2.6.13-1.1526_FC4

§

Eclipse で web.xml を XML Editor で編集するとエラーが表示される。 ただし、これってどの XML Editor なんだ、という状態。 結局、 <context-param> を先頭の方に移動するだけでエラーは消えたのだが、 context-param って他のエレメントより前に書かないといけないのでしたっけ? 何となく、今まで無頓着に後の方に置いていたようだ。

同じファイルを Amateras XMLエディタで開くと、 やはりエラーが出るのだが、 エラー表示のバルーンが1行で横に超長く表示されるために、 途中しか読めなかった。 そういうものでしたっけ?

もちろん、Exadel XML Editor を使うと、 Error - org/eclipse/wst/sse/ui/StructuredTextEditor となって cannot open、という状況は変わらず。 Web で調べた範囲では、 これはやはり ExadelStudio のバグらしくて、 同様のレポートはいくつかあるが、 開発チームは原因をつかんでいないような雰囲気。

ということで、ExadelStudio をこの状態で動かすのは挫折することにした。 ただし、実は解決方法は分かっている。 もたもたしていられないので、 とりあえず使えるようにした。 つまり、とりあえず全部 uninstall して、 Eclipse を新規インストールしなおして、 その上に ExadelStudio をインストールすれば動くはず。 実際動いた。

eclipse.ini の中を

-Xmx512M

にすることを忘れずに。 もちろん、それなりのメモリを積んでいて、の話だが。

§

MZone の無線LAN、不調。 10分ほど繋がらない状態。 IPアドレスを取得しています…のところで応答しなくなる。

§

Light Weight Java。 p.86, 表4-23の required の値が ture になっている。 true が正しい。 あと、p.64の図3-2で、 1「レビューの復元」と書いてあるのは「ビューの復元」が正しい。

まあこういうケアレスミスはどうでもいいのだが、 折角なので、 誤記ということで既出かどうかを確認してから連絡しようと思ったが、 連絡先が分からないし、そもそも正誤表のページが分からないので、パス。 いや、実際、正誤表のページは知っているのだが、 トップページからどう行くのか全然分かりませんでした。 google で検索したら一発で出る。

§

MySQL 5.0 ってどうですか?

MySQL 5.0 Now Available for Production Use

§

CORBA という言葉を久しぶりに聞いた。

2005年10月24日

NTT DoCoMo の MZone 接続ユーティリティ。 画面上に、 「最新版は3.80.41.0 (6月1日現在)」 と表示されているのだが、 とりあえず使っているバージョンを確認してみたら、

バージョン:
3.80.50.0

と表示されている。

そういえば、 最新というのは何かというのは、 BPL を昔、バージョンアップしていたときに痛感したことがある。

§

隣の席に座った人が、 社会に出てどういう役に立てるのか、というような話をしていた。

手持ちの札がいくつかあるとして、 どこまで見せるか、というような話をした方がいいのではないかと思ったのだが、 そういうレベルまで到達していないようだ。 あるいは、 札がないときのブラフがどうとか。

§

開発効率とかの話。 クリエイティブな作業の場合、 どれだけ自分の世界の中にのめりこめるか、というのが勝負だと思うわけだが、 そのためにどういうアイテムを揃えたらいいか。

§

server の setting に行ったら、1枚目のセッティングが終わってさあ始めよう、というところでエラーが出て落ちる。 というか、ばぐしらに連絡してにょ、みたいなメッセージが出て、 _| ̄|○。

モノは試しということで、 全く同じ手順をもう一度実行したら、 何の問題もなくインストールが始まったので、 さっきのは…?

今日の一言: 見なかったことにする。

まあたぶん、disk controller 周りの初期化とか…いやいや、まあなんだ。 それはいいとして、 IP とか route みたいな基本的な所の設定で数字を間違えるという初歩的なボケをやってしまってハマる。 おまけに fedora を新規インストールして up2date しようとしたら conflict でダメという基本ワザでハマる。

しかも、設定情報とかしっかりメモってあった内容が、 Web化してあまつさえ namazu で検索できるようにしてあったのに、 交換前のサーバーに入っていて、 新しいサーバーを立ち上げてしまったら見ることができない罠。

2005年10月23日

京都駅の新幹線ホームで、 駆け込み乗車で新幹線のドアにはさまれている人がいた。 これで発車が遅れたようだが、 ドア付近に駅員が立って、 駆け込み乗車を阻止すればすむような話だと思う。

駆け込み乗車するドアは決まっていて、 つまり、エスカレーターを上った所なのだ。 そこだけ駅員がいればいい訳だが、 なぜか駅員は別のところに立っていたりする。

で、東京に戻ってきたのだが、 無茶苦茶混んでるな、品川のエキナカのアレは。

2005年10月22日

最近のカーナビというのを見たのだが、 ルートを自動検索・自動再検索してくれるというのは、 なるほどと思った。 その反面、 割と最近できた道路には対応できないなど、 現実的には「なぜこれが」というような機能がまだ完成していないようだ。

最適経路をナビゲーションしてくれるらしいのだが、 想定していた道路と違うものを提示してくれたというのも面白い。 土地勘のあるドライバーなら、 普段走っている道は、 どういう時にどの道、というようなノウハウを持って運転しているはずだが、 もしかすると、それでは気づかないようなより適した経路をカーナビが知らせてくれる可能性もあるのである。

逆はどう? カーナビの知らない最適経路をドライバーが運転した場合に、 カーナビがその情報を学習するとか、 さらに、その情報を他の車と共有できるとか、 そのような機能はあるのだろうか?

あと、気づいたのだが、 この種のカーナビで、 運転に集中しろといっても 絶対無理。 特に、カーナビが何かアナウンスした瞬間に誰か飛び出してきたりしたら、 多分事故率は普段よりも高いはず。 逆に、誰か飛び出してきたときにカーナビが知らせる、 というような仕組みの方がいいのかもしれない。 ただしそれをすると、カーナビが故障したときに事故率が上がってしまうかもしれない。

2005年10月21日

ということでとりあえず大阪に移動。 新大阪は MZone のスポットのはずなのだが、 スケジュール的に確認できず。 果たしてインディアンカレーに行くことはできるのか。 というか、まだある?

MZone のスポット、 東京だととりあえず…なのだが、 大阪の場合、殆どないという感じがする。 もう少し何とかしてほしい。

§

クイズ: 次の()内を埋めるための選択肢を選べ。

1. 一寸先は( )。
2. 腐っても( )。
3. ( )をたたいて渡る。
4. 三度目の( )。 5. ( )の上にも三年。

選択肢

A バグ
B バグ
C バグ
D バグ
E バグ

もう思いつかない…。

§

東京ディズニーリゾート・オンライン。 ユーザー登録したら、 ID とパスワードをそのまま書いた確認メールを平文で送り返してきた。 最近この種のセキュリティを知らずに僕らは育った 系のサイトは少なくなったと思っていたのだが…。

2005年10月20日

今日の一言。 二階から胃薬。 とくに顆粒。

§

電車の中吊りで無料インターネットTVとかいうことで、 GyaO の宣伝を見た。 早速接続してみた。

GyaOをご覧頂くにはInternrtExplorer6以上のブラウザが必要です。

いきなり撃沈。 マイクロソフト系の会社なのか?

§

某所で流行っているという噂のアレ。 http://www.sonta.net/game/uwaki.html

ズバリ!! あなたが最後までしてしまう浮気人数(概算)は、20人です。
あなたが生涯費やす浮気費用はは、968704円です。
この費用であなた(達)は、こんな事をしてしまうようです。
あなたは、一生の間に、浮気の相手と「3泊程度の旅行にでかける」を、1回してしまうようです。
どうしようもないですね。 家庭の崩壊が見えるようです(笑)
あなたは、一生の間に、浮気の相手と「ラブホテルに行く」を、2回してしまい、そのうち1泊してしまうようです。
すでに1泊しているようです。 どうしようもないです。
あなたは、一生の間に、浮気の相手と「ディズニーランド・遊園地へ誘う」を、16回してしまうようです。しかも、もう8回行ってしまっているようです。
あなたは、一生の間に、浮気の相手と「夜、雰囲気の良いお店でデート(お酒も飲む)に誘う」を、8回してしまうようです。しかも、もう4回行ってしまっているようです。
あなたは、一生の間に、浮気の相手と「ディナーに誘う」を、6回してしまうようです。しかも、もう4回行ってしまっているようです。
あなたは、一生の間に、浮気の相手と「映画に誘う」を、12回してしまうようです。しかも、もう9回行ってしまっているようです。
あなたは、一生の間に、浮気の相手と「ショッピングに出かける」を、15回会ってしまうようです。もう既に9回は、どこかで会っているようです。

誠に勝手ではありますが、もう少し、あなたについて分析させていただきました。 

あなたの優柔不断度は「98 オロオロ」です。
押されると嫌とは言えないあなたは、恋愛も受け身になりがちです。
まぁ、相手がいいって言うんだから、いいんでしょうか。
あなたのH指数は、「128 えっち」です。
すみません、100越えてしまいました(笑)。測定不能です。
あなたは、異性を体で判断しているようです。 
あなたのオーラもエッチなのです。 
よく言うと、いつでも何処でもフェロモン全快!!です(笑) 
人類にとってはいいことなのですがねぇ。
あなたの誠実さは「90 しっかり」です。
あなたはかなり誠実な方のようです。
逆に言うと、相手には物足りなく映ってしまうかも知れません。
実は「浮気され度」が 90% だったりします。ご用心!!
あなたの浮気したい指数は、「88 ふわふわ」です。
あなたは浮気がしたくて仕方ないようです。
かなりチャンスをうかがっているようです。 
街を歩いてるだけで足より先にきょろきょろしすぎで首が痛くなったことはありませんか?(笑)  
注)これを彼女(彼氏)とやっていて、喧嘩になっても当方は責任を負いかねますので(笑)
あなたの度胸指数は、「86 ドキドキ」です。
あなたはかなり無鉄砲なようです。 
きちんと見分けないと、気付いたらヤクザな相手と関係してたなんて事に……

浮気したい!度とあなたの心から、こんな事がわかってしまいます
あなたは、とにかく危険(笑)。
ごめんなさい、最悪の結果です(笑) 
かなり浮気に興味があってさらにチャンスを狙っているあなたは、かなりの確率で浮気をしてしまうようです。
もう、してたりして(笑)  
※注) くどいようですが、これを彼女(彼氏)とやっていて、喧嘩になっても当方は責任を負いかねます(笑)

あなたにとっての浮気とは、
何をやっても浮気ではない! 
………と出てしまいましたが?

あなたが出来る浮気の範囲は、このくらいのようです。
お泊まりまで。ラブホに一泊。くらいは出来そうです。 確信犯でしょう。

128というのはキリのいい数字だ。

Exadel Studio 3.0.5 をインストールしたのだが、 Eclipse から JSP editor が起動できない。

------Type your additional comment here--------

-----------------------------------------------
org/eclipse/wst/sse/ui/StructuredTextEditor
java.lang.NoClassDefFoundError: org/eclipse/wst/sse/ui/StructuredTextEditor
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.defineClass(DefaultClassLoader.java:370)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.defineClass(EclipseClassLoader.java:227)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.findClassImpl(DefaultClassLoader.java:343)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.findClass(DefaultClassLoader.java:235)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.findLocalClass(AbstractClassLoader.java:183)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.basicFindLocalClass(EclipseClassLoader.java:141)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:68)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
    at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:37)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:386)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.defineClass(DefaultClassLoader.java:370)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.defineClass(EclipseClassLoader.java:227)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.findClassImpl(DefaultClassLoader.java:343)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.findClass(DefaultClassLoader.java:235)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.findLocalClass(AbstractClassLoader.java:183)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.basicFindLocalClass(EclipseClassLoader.java:141)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:68)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.defineClass(DefaultClassLoader.java:370)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.defineClass(EclipseClassLoader.java:227)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.findClassImpl(DefaultClassLoader.java:343)
    at org.eclipse.osgi.framework.adaptor.core.DefaultClassLoader.findClass(DefaultClassLoader.java:235)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.findLocalClass(AbstractClassLoader.java:183)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.basicFindLocalClass(EclipseClassLoader.java:141)
    at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass(EclipseClassLoader.java:68)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:337)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:389)
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
    at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.exadel.model.ui.editor.EditorPartFactory.<init>(EditorPartFactory.java:21)
    at com.exadel.model.ui.editor.EditorPartWrapperExtension.init(EditorPartWrapperExtension.java:70)
    at com.exadel.model.ui.editor.EditorPartWrapperExtension.getInstance(EditorPartWrapperExtension.java:21)
    at com.exadel.model.ui.editor.EditorPartWrapper.computeEntity(EditorPartWrapper.java:83)
    at com.exadel.model.ui.editor.EditorPartWrapper.init(EditorPartWrapper.java:58)
    at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:773)
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:572)
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:365)
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
    at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:258)
    at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1216)
    at org.eclipse.ui.internal.EditorManager$5.run(EditorManager.java:944)
    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
    at org.eclipse.core.runtime.Platform.run(Platform.java:783)
    at org.eclipse.ui.internal.EditorManager.restoreState(EditorManager.java:939)
    at org.eclipse.ui.internal.WorkbenchPage.restoreState(WorkbenchPage.java:2535)
    at org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1819)
    at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:2566)
    at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:2515)
    at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1514)
    at org.eclipse.ui.internal.Workbench$16.run(Workbench.java:1263)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:346)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:291)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:447)
    at org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:1258)
    at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1512)
    at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1491)
    at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1374)
    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
    at org.eclipse.core.runtime.Platform.run(Platform.java:783)
    at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1318)
    at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
    at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:700)
    at org.eclipse.ui.internal.Workbench.init(Workbench.java:1034)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1636)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
    at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
    at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
    at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
    at org.eclipse.core.launcher.Main.run(Main.java:973)
    at org.eclipse.core.launcher.Main.main(Main.java:948)

しかし別マシンに入っている Eclipse は何事もなく動いている。 VAIO Z だけヤバい。 何だろ? とりあえず、Eclipse が 3.1.0 であることが問題なのか、と思って、 update を H" なんかでやれる訳がないので、 無線LAN 接続できる環境に移動。 相変わらず、Mzone は、最初の接続で瞬間的に拒絶されることが多いのだが、 多分、firewall のどこか開けておかないとダメ、 という話ではないかと思って、 Ethereal でパケットをモニタしてみようとすると、 なぜか繋がってしまうので訳が分からん。

Eclipse 3.1.0 から 3.1.1 に update する方法が謎。 実はここに書いてある。 http://www.eclipse.org/eclipse/platform-releng/updatesfor3.1.1.html

要するに、こういう話が書いてある。

Help > Software Updates > Find and Install > Search for New features to Install を実行。

Update sites to visit という画面になる。 ここで、右のボタンに、 New Remote Site というのがあるので、click。

ダイアログが表示されるので、 Name: のところに、 Eclipse SDK 3.1.1 Updates 、 URL: のところに、 http://update.eclipse.org/updates/3.1 と入力して OK を押す。 すると、更新用のサイトが追加されるので、 finish をクリック。

Search Results に Eclipse SDK 3.1.1 Updates が出てくるので、 チェックして、Next を押す。 後はだいたい手なりでokのはず。

ところで、 この情報は、次のページから知ったのですが、 ちなみにこのサイトって何語なんですか?

http://www.blogjava.net/kukoo/archive/2005/10/06/14853.html

2005年10月19日

IE が応答しなくなった。 終了させようとしたら「応答していません」ということで、 Microsoft に報告しますか、というダイアログが出たので、 報告した。

報告完了のダイアログが出て、 この問題を解決するには何たらというリンクがあったので、 クリックしてみると、 IE が起動して、 SP2 にしろとか、スパイウェアが云々、というような内容の書いてあるページが表示された。

詳細はよく分からない。 というのは、途中でこのIEが応答しなくなったからである。 何かクリックしたら Microsoft に報告しますか、というダイアログが出たので、 報告した。

とりあえず、忙しいので IE は使わないことにした。

§

今日はバス停に着いたらすぐにバスが来た。 平均すると普通の待ち時間、ってことか。

§

ちょっとネタ的に遅いけど。

http://ca.konicaminolta.jp/information/important/ccd/

これって3年殺しみたいに、 ある日いきなりダメぽ化するのだろうか?

2005年10月18日

今日の一言。 言ってもムダ

§

Windows 2000 をインストールしたときのメモ。 ネットワークに接続できなかった。 C:\DELL にドライバが入っていた。 適当にそれっぽいのを入れたら動いた。

教訓: C:\ を見るべし。

§

ロッテがパリーグ優勝したそうだが、 プレーオフ制度を見直すという案が出ているという。 どこを見直すのかよく分からないが、 今年のプレーオフは割と公平な感じがした。 というか、 これでもしソフトバンクにアドバンテージ1とかあったらすごく不公平な気がする。

だいたい、野球というのは戦略的なゲームであって、 強いとか弱いとか、そう簡単に決められるものではない。 例えば1チームだけ無茶苦茶強いチームがあったとして、 あるチームが、対戦相手がそのチームのときだけ試合を全部捨てて戦力温存、 他のチームに勝つ、という戦略で勝率を稼いだりすることもできる。 そこまで偏らなくても、実際、相性というのはあるのだ。

あと、ありがちなのが選手の故障。 特に、後半になっての怪我で戦力低下、という場合にはプレーオフは不利だ。

強い弱いの話はともかくとして、 プレーオフ制度というのは、盛り上がりはありますね。 ビジネス的にもショー的にも、そういう面白さは、あっていいのではないか。 クイズ番組のように、 最後の問題だけ1000点です、みたいな、 それ答えたら優勝というのはアレだけど。

§

隣に座っていたカップルが延々と、温泉に行く話をしていた。 行くのか行かないのか、はっきりしてほしい。

2005年10月17日

「■えるC言語」だが、 どこに原稿書いているか訳が分からなくなってきた。 最初 @nifty に書いていたのでそれ系のディレクトリの下に原稿があったのが、 今は jugem だから、というだけの理由。 こういうのは「原稿」というディレクトリを作っておいて、 そこに入れた方がよさそうだ。

§

Windows Update したと先日書いた通りだが、 念のため Windows Update を実行してみたら、 異常終了するようになっていた。 私は一体これからどうすればいいのでしょうか?

ちなみに、同じことを2回やってダメでしたが、 3回目は正常に続行できたので、 同じ症状に遭遇した人は3回やってみるのが吉。 今日の格言。

三度目の正直

前回の Windows Update を適用したら障害が発生することがある ことをマイクロソフトが発表したらしいが、 関係なさそう。

§

Light Weight Java に添付の CDに、 index.html というファイルがあって、 「Eclipse プロジェクトでの利用」 という説明があるのだが、 Java プロジェクトを作成しろと書いてある。 で、その後どうすれば動くのか謎。 というか動かない?

こちらで動作させた手順だが、 まず、Java プロジェクトではなく Tomcat プロジェクトを作成。 Project contents に、 例えば、chap2.2.1 (のコピー) を指定する。 これが仮に chap221 というディレクトリであるとする。 Web アプリケーションのルートとするサブディレクトリは、 /web と指定する。

Properties を開いて、 Java Build Path の、 chap221/WEB-INF/src に、 chap221/src に入っているソースを移動する。 これは Eclipse の Package Explorer で、ドラッグしてやればいい。

Build Automatically が指定されていれば、 これでコンパイルできて、 とりあえず動く。 何かいろいろやったときにヘンな振る舞いをしたような気もしたが、 気のせいだろ、多分。 なお、ソースは UTF-8 で書いてあるので、 MS932 がデフォルトの環境だと、 Properties の Info で、 Text file encoding を UTF-8 に指定しないと文字化けする。 この後タグがないとかエラーが出て大騒ぎになるのだが、 よく分からない。 他のエディタに jsp を全コピーして全戻ししたらエラーが消えたりするから、 文字コードの問題?

要するに、 Java プロジェクトでプロジェクトを作成すると、 tomcat の server.xml に Context を追加しないから、 サンプルプログラムを処理しないのでは、という話ではないかと思うのだが。

2005年10月16日

日曜日に「今週」というと、次の日の月曜日を含むのか、 それとも、前日の土曜日を含むのか? カレンダー的には、横並びが今週と解釈すれば、 1週間は日曜から始まる。 ただ、私の感覚的には、 一週間というのは月曜日から始まって日曜日に終わるという先入観がある。

キリスト教的には、 神様が世界を作るときに、 最初の6日間仕事をして、7日目に休んだということになっていて、 1週間は最初の6日働いて最後に日曜日を休む、 という感じなのだと思うが、 よく考えてみると、 神様が月曜日から仕事を始めたとは限らないような気もする。

§

Ameba Blog のトラックバック管理画面をソース表示すると、 org.apache.struts.taglib…とかいう文字列か。 そうなのか。 まあとにかく、これをラップして携帯からトラックバック削除するのは大変そうだよ。 もっとも、ココログも似たようなものだが。

§

アンメルツよこよこ、を背中に塗った後に、 指の怪我しているところをうっかりかすってしまった。

ということで、 こういうときは、思わず口にくわえるというのが基本技なのだが、 もちろん、基本に忠実に行動した。

ぐえ _| ̄|○

舌のコリが取れたかどうかは定かではありません。 とりあえず苦かったです。

2005年10月15日

お祭りというか縁日に行ってきたけど、 若干雨模様。 去年も雨だったような気がするし、 雨の神様なのだろうか。

§

VAIO Z の底についてるゴムが、 ついに2個目が脱落してしまって、 かなり大変なことに。 老いてもすべるのである。

_| ̄|○ 老いたらすべるのかと言われてしまった。(18日追記)

§

メール通知ソフトに手を入れて、 送信のトリガーを変更。 このソフト、一体何なのかというと、 指定した pop3 のメールボックスを定期的にチェックして、 新着メールがあったら、 指定したアドレスに「メールが来た」というメールを送信する、 というものである。

それが何の役にたつのかというと、 私の場合、 cocolog のコメントとかトラックバックがあったら携帯にメールして知らせたい、 というのが最近の主目的なのだが、 メールを扱うソフトで今最も問題になるのは spam の扱いだろう。 spam ごとに携帯にメールを送られてはたまらないので、 spam は無視する機能が必要になる。

最初、一所懸命考えて、 spam のアドレスを覚えるようにするとか、 本文からパターンを検出して、指定の条件を満たしたら spam と判定するとか、 「裏ご意見番」に書く予定だが、 特定の URI へのリンクがあったら spam と判定するとか、 いろいろ工夫したわけだが、 結局、私の場合は9割以上 spam という異常(普通?)事態なので、 何か無駄な気がしてきた。

つまり、spam をカットするという発想は、 spam でないメールの中から spam を選り分けるというもので、 殆ど spam だったら、 最初から全部無視することを前提にして、 spam でないものだけを特別に扱う、 という発想の方が効率的だと思った訳である。

そこで、 方針を変更して、 指定したアドレスから来たメールとか、 指定したタイトルのメール、だけを処理の対象とするようにロジックを変更した。

こういうソフトだが、 使いたい、という人がいるかもしれないが、 まだ非公開。 というのは、パスワードとか直書き状態なので、 誰でも使えるようにするためには、 例によって暗号化して保存、みたいな処理を書かないといけない。 Mawou のソレを流用すればいいのだが、 コピーして使える状態ではない。 汎用的に作ったつもりでも、 汎用的でない、というのがこういうときに暴露してしまう。

2005年10月14日

Windows update ですか。 そろそろ、かなりきりのいい状態になってきたので、 XP を SP2 に上げたいのだが、 Cドライブの容量的には大丈夫なんだろうか?

2005年10月13日

ameba blog 不調。 メンテナンス後、画面が乱れる。 単にコメントの閉じ忘れのようだが。

§

Windows がおかしい。 タスクマネージャが起動しない、 というか、起動するのだが、画面が開かない、コンテキストメニューが表示できない、 という状況。 Eclipse も起動しない。 java を実行しようとすると、 戻ってこない。 というところまで考えると、何か java 系の処理がわるさをしているのか、 と思うわけだが、 だったらなぜ taskmgr.exe までハマるのだろう?

Windows 強制終了 + 再起動で直った。 何か壊れる予兆かも。

無関係の確率は高いが、 思い当たることといえば、 tomcat を起動したまま Eclipse を閉じた、ということ位である。

§

JSF の仕様。 http://java.sun.com/j2ee/javaserverfaces/download.html Chapter 5 の、 Value Binding and Method Binding Expression Evaluation あたりを読む。

2005年10月12日

JSF の話題。 Apache MyFaces というか tomcat 側の話なのかもしれないが、 hogehoge.jsp に書いてあるコードを修正してもページの表示が変わらないことがあって、 例えば、

<h:panelGroup id="hoge" rendered="#{item.type==0}">
  <h:outputText value="#{item.value}"/>
</h:panelGroup>

これを、

<h:panelGroup id="hoge" rendered="#{item.type==0}">
  <h:outputLink value="#{item.value}">
    <h:outputText value="#{item.value}"/>
  </h:outputLink>
</h:panelGroup>

このように変更しても、表示が元のままである。 ところが、最初の行を、

<h:panelGroup id="hoge2" rendered="#{item.type==0}">

のように、ID を変えてやると、表示が変わる。 ということは、ID に対して何かがキャッシュされているのか、 とか思うのだが、 このあたりの再処理のタイミングはどこで指定するのでしたっけ?

§

ひだまりの民って、 300万個売れたの? 今頃買ってへろへろしているのだが、 恐ろしいことに気づいた。

我が家のリビングは暗くて、ひだまりの民が踊らないっ!

before-after に出演するにも予算がない…。

§

ココログのメンテナンスということで、 裏裏は早めに書いておいたのだが、 明日早朝アメブロが定期メンテナンスというのは迂闊だった。

§

今日の一言: 全国の都道府県ごと1名様づつ

に送っているという spam メールが、 複数のアドレスに来ている罠。 しかもリンク先のページを開くと(よい子の皆さんはこういうリンクをクリックしてはいけません!)、 都道府県を入力しろというフォームが表示されたりするのは爆笑。 知ってるのなら入力させるなよ、みたいな。

2005年10月11日

愛・地球博の正式名称は、 公式サイトによれば、

正式名称は、「2005年日本(ニッポン)国際博覧会」です。
略称が「愛知万博」、愛称が「愛・地球博」です。

と書いてあるのだが、これは括弧とその中も正式名称に含むのではなく、 読み方が補記してあると考えてよいのだろうか?

§

今日の一言: どうしようもない。

§

用の美なんて言葉があるが、 料理というのは、 与えられた材料を使って「おいしく食べられるようにする」という目的と、 「安全に食べられるようにする」という目的があって、 どちらが主目的かよく分からないが、 相反するときにどうまとめるかが料理人の腕の見せ所、といった感じだろうか。

§

最近、目がかゆい。 症状としては花粉症っぽいのだが、 花粉が飛んでいるのだろうか?

2005年10月10日

「裏裏」の「カコログ」(過去ログ)を生成するアルゴリズムの話は、 Cマガジンのコラムにも書いたのだが、 実際に使っていたプログラムが、 bk1 で作成したリンクをうまく表示できなくなっていた。 <div> の処理に問題があった、 というか、 <div> は全て除去するような処理になっていたのが原因である。

そこで、bk1に関係する <div> だけは残すように処理を修正した。 ParserCallback を extends したクラスの中で、

    private void handleStartTagDIV(HTML.Tag tag,
            MutableAttributeSet attributes, int position) {

        String strClass = getAttributeValueString(attributes, "class");
        if (strClass != null) {
            if (strClass.equals("content")) {
                divStack.setActive(true);
            }
        }

        // active でないときも stack に積む
        divStack.pushDiv(strClass);
    }

この処理の最後に、 次のような処理を追加した。

        if (isActive()) {
            if (strClass != null && strClass.startsWith("bk1")) {
                appendStartTag(tag, attributes);
            }
        }

同様に、 div の終了の処理も追加する。 if (isActive()) … というところが追加した処理。

    private void handleEndTagDIV(HTML.Tag tag, int position) {
        String divString = divStack.popDiv();

        if (isActive()) {
            if (divString != null && divString.startsWith("bk1")) {
                appendEndTag(tag);
            }
        }

        if ("content".equals(divString)) {
            flushBuffer();
        }
    }

これで動作は問題ないのだが、 問題が山のように残る。

・bk1 という文字列がコードに埋め込まれている。 これは <div> で指定されている class が「bk1」という文字列で始まるようなものだけ処理の対象としているのだが、 オプションで指定できるようにして、 コードの中に埋め込まないようにした方がいい。

・そもそも、bk1 のリンク作成ツールが生成したコード中の <div> の class が、 「bk1」で始まる文字列になっている、という保証がどこにもない。 今はたまたまそうなのだが。

・特定の class に該当する div だけ有効にする、 というような考え方でいいのか? 本文中の div は全て対応すべきではないか?

§

このページが w3c validator で invalid になってしまった。 原因は、 アフェリエイト系のリンク先 URI に、 & が直接書かれていたため。 とはいっても、実は原稿の XML ファイルは次のように書いてある。

<a href="http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2
 &amp;camp=247
 &amp;tag=phinloda-22
 &amp;creative=1211
 &amp;path=ASIN/4861460794/qid%3D1128363027">萌えブログの作り方</a>
<img src="http://www.assoc-amazon.jp/e/ir?t=phinloda-22
 &amp;l=ur2&amp;o=9" width="1" height="1" alt=""/>

実際は改行なしの1行だが、& の前で改行してある。 これは別に問題なさそうに見えるが、 xslt を通したら、これが次のように変換されてしまう。

<a href="http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2
 &camp=247
 &tag=phinloda-22
 &creative=1211
 &path=ASIN/4861460794/qid%3D1128363027">萌えブログの作り方</a>
<img src="http://www.assoc-amazon.jp/e/ir?t=phinloda-22
 &l=ur2&o=9" width="1" height="1" alt=""/>

forrest の、 site2html.xsl の中に、

<xsl:template match="a">

という箇所があるのだが、 その一部の処理。

       <xsl:when test="not($disable-external-link-image='true') and
         contains(@href, ':') and
         not(contains(@href, //skinconfig/group-url)) and
         not(contains(@href, //skinconfig/project-url))">
          <a href="{@href}" class="external">
            <xsl:apply-templates/>
          </a>
       </xsl:when>

document 2.0 の a tag の処理はここを通る。 ここで、attribute のう href の内容は、{@href} で参照されていることが分かるが、 これを通るときに、「&amp;」という文字列が単独の「&」に置き換えられてしまうようだ。

では、attribute のこのような置換を行わないようにするには、 どうすればいいのか? 本文中のエスケープを無視するのと同様、 disable-output-escaping="no" と指定すればできそうな気がするが、 attribute にそれを指定する方法が分からない。 いろいろ強引にやってみたが挫折。

結局、この問題は、原稿を書くときに、 次のようにするということで、 強引に解決している。

<a href="http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2
 &amp;amp;camp=247
 &amp;amp;tag=phinloda-22
 &amp;amp;creative=1211
 &amp;amp;path=ASIN/4861460794/qid%3D1128363027">萌えブログの作り方</a>
<img src="http://www.assoc-amazon.jp/e/ir?t=phinloda-22
 &amp;amp;l=ur2
 &amp;amp;o=9" width="1" height="1" alt=""/>

つまり、& と書きたい場合は、 原稿のレベルで「&amp;amp;」と書いておくのである。 すると、HTML に変換したときに、&amp; という文字列は & に変換されて、 「&amp;amp;」は、「&amp;」になる。 結果は期待通りなのだが、書くのが面倒。 何かうまい方法はないものかな?

2005年10月9日

池袋、噴水広場にいったら、 連休中はコンサートというか、ステージになっているというのが想定外。

§

PostPet on Web だっけ、 複数選択はどうやってやるのだろう?

複数選択って、単純な form でもできる。 <select> に multiple を指定すればいい。 複数のターゲットを選択して一気に同じ処理をするというのは、 コンピュータでは最も基本的なUIの一つである。 一つずつ同じ処理をユーザーに強制するとどうなるか、想像してみればいい。 また、実装はそれほど難しくないはずだし、 何か見落としているのかもしれないが、 少なくとも ctrlを押しながらクリックとか、 shift を押しながらクリック、というような、 (Windowsで)標準的な動作では複数指定できなかった。

§

以前は「裏ページ」で google 検索したらトップに表示されていたこのページも、 最近はトップ10に出ないような状況である。 内容的には member の頃と変わらないのだから、 google の採点方法に何か鍵があるのかもしれないが、 URI を安易に変えて平然としているプロバイダの考え方が理解不能。 逆に考えると、 URI を変更させることで、 利用者を減らすことが可能、ということになる。

包丁人味平というコミックで、 ホテルがどうしても大量の空室を確保したいという状況になって、 料理人がヘンな料理を出してキャンセル客を出す、 というストーリーがある。 毒を混ぜたとかいうのではなく、 イライラするような食べ物を出した、 ということで合法ではあるのだが、 こういう合法的なコントロールは結構あるのだろう。

退会キャンペーンという言葉が昔あったが、 あからさまに「退会してください」とか「サービスを止めます」というのは世間体がナニだというときに、 URI を変えるとか、 ユーザーインターフェースを劣悪にして、 利用者をイライラさせるとか、 そういう手法を用いて利用者を減らす、 というような戦略が考えられる。 プロバイダのような業種の場合、 かなりの会員を獲得しないと利益が出ないと言われているので、 数が確保できないときには、 自発的に退会してもらうように工夫するというのも一つの手かもしれない。

2005年10月8日

JSF (MyFaces) を使ったプログラムのデバッグが済んで、 デバッグメッセージがうるさい(起動するだけで10MB程度のログができる!)ので、 ログのレベルを WARN に変更しようとしたのだが。 tomcat/common/classes/logging.properties に書いてある、

org.apache.myfaces.level = ALL

これを、

org.apache.myfaces.level = WARN

に変更したのに、ログのサイズが変わらない。 ちょっと考えたが、 同じところにある、 tomcat/common/classe/log4j.properties には、

log4j.logger.org.apache.catalina=DEBUG, R

と書いてある。 これはいけない。 ということで、ここの DEBUG を WARN に修正して解決したが、 そもそもこういう情報を複数に書いたところで間違っている。

§

アフェリエイトの件、 確認したというメールが来たので、 バックナンバーに bk1 関係の記事も投稿できるようになった。 ただ、 cocolog のログから table に変換する処理の中で、 div を除去しているせいか、 うまく表示できていない。 プログラムを修正する必要がありそうだ。

2005年10月7日

深夜アニメというか早朝アニメというか、 さすがにこれだけ重なると如何ともしがたい罠。

§

裏ご意見番」だが、ランキングが上がらないし下がらないし、横ばいですね。 キルヒホッフの法則というよりは、 リピーターしか見ていない、というのが正しいような気がする。 もう少し書かないとどうしようもない、というところか。

§

So-net ブログの記事管理は、削除リストにチェックを入れて「削除」ボタンを押したら、 確認もなにもせずに消してしまうのか。

§

ということで、裏裏の「バックナンバー」をどんどん書いていたりするのだが、 bk1 のアフェリエイトに、 nifty.ne.jp がまだ登録されていることに今頃気づいた。 ミラーサイトとして、 homepage1.nifty.com も登録してあるので、 そこにアフェリエイトのリンクがあるのは問題ないのだが、 hompaeg.2.nifty.com が未登録になっている。 ちなみに、Amazon はどちらも登録してある。

こういう情報を一元管理できるようにするには、 例えば私の管理しているサイト一覧を Web service で公開するとか。 あるいは、指定したページに単にテキストで羅列するだけでもいいのだが、 そういう方法で、 一箇所に情報を集中させておいて、 eコマースサイトは、そこを見て状態を更新する、という手があるのだが、 毎日そこをチェックするというのはそれなりに無駄か。

代行サーバーがあればいいのですよね、 私がどこかのサーバーに管理サイトを変更する情報を通知したら、 そこに登録されている、アフェリエイトサービス会社に連絡がいく、みたいな。 ビジネスになるかな?

2005年10月6日

歯医者に行ってきました。 定期的に行っているので何となく安心感があるのだが、 油断しているということかもしれない。

§

ココログに書いている内容のバックナンバーとか、 更新をさぼっていたので、少し追加しているのだが、 bk1 とか amazon のアフェリエイトになっている部分の HTML が、 そのままだと forrest の document 2.0 形式に落とせないので、 何か考えなければならない。

§

Apache MyFaces を 1.0.9 から 1.1.0 に。 http://wiki.apache.org/myfaces/From_1.0.9m9_to_1.1.0 に注意。 というか、1.1.0 は myfaces-all.jar に全部入っている形式になっているので、そっちにびっくりした。

2005年10月5日

時計が1日遅れているのに今頃気づいた。 9月は32日…いや、30日までしかないのだが、 この時計はそのあたり対応していないので、9月31日になってしまうのだ。

§

Thunderbird を 1.0.7 に update。

Eclipse も 3.1 から 3.1.1 でしたっけ、 update したいのだが、 タイミングを逃していますねぇ…。

2005年10月4日

いきなり1年半分もコンテンツが出てきてびっくりした人もいるかもしれないが、 何で公開していなかったのかというと、 単に面倒だから 以外の何の理由もない。

じゃあなぜ公開するのも面倒なのに、 裏裏とか裏表のようなページではなく、 こちらに書いているのか、意外とこれが重要かもしれない。

理由は簡単で、 インターネットに接続していなくても書けるからだ。 blog に書くには、インターネットに接続するのが必須である。 接続していない環境で書いて、 後で投稿、というのも不可能ではないが、 その手間を考えると、ここに書いた方が楽なのだ。 つまり、書く手間自体は、それほどでもないのである。 後で検索したとき便利というか、 メモ代わりなので。

§

フレックスタイムについて。 あるところでフレックス制度を導入しているのだが、 担当者に連絡が付かないことがあまりにも多いので、 フレックス廃止にする、という話。 似たような話が昔いた会社でもあったので、 顛末とか思い出してみる。

その前に、まず因果関係が重要。 担当者に連絡が付かないというのは、 要するに担当者の所在が分からないということで、 つまり、担当者の所在が分かれば問題は解決するわけだ。 私の経験は20年も前の話で、 今の若い人には信じられないかもしれないが、 携帯電話というものがそもそも存在しないという世界だった (自動車電話という大きな箱型の移動可能な電話機はあったかもしれない)。 というか、 今だったら携帯電話持たせておけば殆ど解決する話だと思うのですが。

実際、私も何度か、緊急の要件を携帯で受けたことがある。 それは駅のホームだったり、マンガ喫茶の中だったり、まあいろいろな場所だが、 インターネットに接続可能な場所なら、 その場からサーバーにログインして処理ということが何度かあった。 今なら無線LANのスポットも多数あるし、 携帯電話、PHS を使ってモバイル環境で接続することも可能なのだから、 「その場にいる」という必然性は、より希薄になっていると思う。 むしろ、 どこにいても対応できる環境が構築できないか と考えるのが効率的ではないか。

もう一つ重要なポイントは、 担当者不在だとどうにもならないという状況を作らない、 ということだ。 担当者がたまたま急病で入院して数日連絡が取れない、 みたいなときに、 代替のスタッフがすぐに対応できるようにするのは当たり前の話である。

で、思い出話に戻ると、 そのときは、フルフレックスからコアタイムを設定、 さらに、コアタイムの中で基準の時刻を定めて、そこからずれるときは要申請、 というように縛りを強くしていった。 このような流れは、 ベンチャー企業が大きくなっていく過程で、よく見られるらしい。

で、その結果どういう効果が得られたかというか、 モチベーションが下がった というのが一番大きな効果だったと思う。 もちろん、確かに担当者に午前中に連絡が取れる確率は高くなった。 ただそれだけである。

開発に絞って話をすれば、 例えば 10:00 には出勤、と決めてしまえば、 ノッているときでも、19:00 には中断して帰宅するカー、ということになってしまう。 実際、 終電まで仕事しても 10:00 に出て来い、というのは強制力としてはよくあるのだが、 自主的にそうしているのと、 納期が理由で仕方なくそうしているのとでは、 開発効率がそもそも違うので、 生産性があがらなかったような気がする。

まあただ、私の場合そもそも当時は「帰らない」というワザがあるので、 どうでもよかった訳だが。

2005年10月3日

spam ネタ。

プロフィールが未設定となっております。

誰の?

というか、@nifty の SYSOP という役目は先月末で終了しているから、 そういう内容のプロフィールがあるブログやらページやらを修正しまくっているのだが、 分散しすぎていてどこがどうなっているのか謎。

§

裏裏で紹介した、萌えブログの作り方遊び方、 という本。

書評通りで、 技術的内容は全て無視して、萌え内容で買い、ということなのだが、 萌えついでに chat で紹介したコレ。

萌えろーん

説明のフラッシュ? が面白い。

§

現在の裏ページの forrest 生成部分、 tigris というスキンをちょっと変更しただけのもので、 今後おいおい変更していきたいのだが、 とりあえず色の変更だけした状態。 これは、 $FORREST_HOME/main/webapp/skins/tigris/skinconf.xsl を修正することで変更している。

注意: 直接 css のファイルを修正しても、 forrest の処理で上書きしてしまうので、うまくいかない。

§

Tapestry の 4.0-beta-9 が出ている。 最近、tapestry 頑張っているような。

§

このページ、久しく更新していなかったのだが、 ちょっと更新してみると、 結構敏感に google に拾われているような気がする。

§

某所の「小部屋飲み会」に行く。 明太子オムレツというのはそのまんまのモノだった。 最後に出てきた、もずくの上にいくらが乗ったお茶漬けの名前は何というのだろうか。 何かそのまんまのような気もしないではないが。

§

筋肉マウスの話。 google で検索したら、 ■コム☆ナビ編集部Blog(NTTコミュニケーションズ個人のお客さま向けサイトcoden.ntt.com) がヒットした。 トラックバックしたものか、悩む。

2005年10月2日

裏ページを更新してみた。 超久しぶりである。

forrest で生成したページの中から、 「最近のアレ」だけをトップページにコピーしているのだが、 そのときの処理。 perl。

sub line_action {
  my $line = shift;

  # <div> がある場合の処理
  if (index($line, "<div") >= 0) {
    if (! $active) {
      # <div class="h3"> があれば、active とする。
      if (index($line, '<div class="h3">') >= 0) {
        $active = 1;
      }
    }

    if ($active) {
      $div_count++;
    }
  }

  if ($active) {
    if (index($line, '<a name=') >= 0) {
      print HTML "<hr>\n";
    }
    print HTML "$line\n";
  }

  if (index($line, "</div>") >= 0) {
    $div_count--;
    if ($div_count < 1) {
      $active = 0;
    }
  }
}

これで w3c validator でチェックしたら、 <sdiv> が閉じてない、という意外なお達し。 よく見てみると、 </div> は $active の値に関わらずチェックしている。 これでは $active が 0 のときにもどんどん減算していくのでヘンになる。 ということで、後半を修正して解決。

  if ($active) {
    if (index($line, '<a name=') >= 0) {
      print HTML "<hr>\n";
    }
    print HTML "$line\n";

    if (index($line, "</div>") >= 0) {
      $div_count--;
      if ($div_count < 1) {
        $active = 0;
      }
    }
  }

てな感じで、 ちょっとナニするときは今でも perl が出てくるのだった。

§

また池袋に行く。 結構暑いんじゃないですか、今日は。

最近の怪しいspamの傾向について。

○○さんの希望より貴方様を無料会員として認定致します。

○○さんって誰?

メールをご拝読頂き、有難う御座いました。

まだ読んでないけど。 残りは読まずに通報だけして削除。

勝手にメールを送ってしまい申し訳ございませんが…

突然のメールで申し訳ございません。

基本的に spam というのは悪だというのは否定しないが、 まだこのあたりだと礼儀があるということで、それほど悪い感じはしない。

件名: 緊急のお知らせ

緊急というのにロクな知らせがあった覚えがないので、 こういうタイトルだと読まずに削除する。

貴方の宛先に会員(女性)からのご指名が有ったことのお知らせです。

誰の?

二度目の恋しませんか

ちょっと桁が足らないと思いますが。

困り果てて居る次第です。

私もです。

貴方様は下記女性様との「同行者(男性)付き旅行」権利を取得されました。

そういえば、つい先日、某有名メーカーの液晶モニタの保証(本体なし)をオークションサイト(?)で販売して、 ひっかかったのが大勢いたという話題で盛り上がっていたが、 アレはどうなったのだろうか?

全国の都道府県ごと1名様づつに、【この当選告知メール】を配信しております。

普通は「ずつ」ではないのだろうか。 まあ辞書には「づつ」も出ているのだが。

2005年10月1日

ということで、 @nifty の FPROG が消滅。 …といっても、まだ読み書きできるし。 カウンタがいつまで存在するかよく分からない。 とりあえずこのサイトからは外しておいた。

契約上は、今どういう立場なんでしょうね? 例えば、ブログに adult 系の trackback spam がきたら、どうするとか。 FPL は何度か adult trackback されたので、 その都度削除していたのだが、 現時点でそういうことされたら、 私が削除する訳にはいかないし。 そういうことをした場合、 極論かもしれないが、 パスワードの不正使用ということで私が逮捕されるリスクがあるという話。 事前に打ち合わせておけばよかった。

もっとも、事前に問い合わせてあった件について、 まだ返事来ないというのが現実でもあるが。 なお、しばらくはメールアドレスだけは使えることになっている。 つまり、SDI00344 に連絡すれば私に伝わる。 これは後処理の都合を考えて、そういう話になっているわけだ。

とはいっても、実際には99%がspamなんだけど、このアドレスに来るメール。

§

池袋で無線LANにチャレンジ。 西武池袋駅は椅子が少ないので試しにくいがok。 特急に乗るときの中の改札付近に少しだけベンチがあって、 ここが結構いい感じだ。

西武練馬駅。 これもいい感じだが、昼間だと明るくて厳しい。 使い方としては、とりあえずメールをチェックしておいて、 電車が来たら乗って読む、みたいな?

接続中にハイバネーションonになってしまい、 復帰時におかしなことになったというか、 接続するにはパソコンを再起動しろというようなメッセージが出た。 しかし、接続ユーティリティとブラウザをとりあえず終了させたら、 うまくいった。