トップ 最新 追記

2005-07-02 [長年日記]

_ 7月6日まで難民決定

おせぇ。

あれだな。なんつーかもう生活に必要なインフラというか、常時接続環境がないってことは、携帯を持ち始めてみんなに認知された頃に携帯を忘れたら不安でたまらなかったような、そんな感覚。つーか自宅サーバに繋がらないと不便で仕方がない。公開できるメモはここに書いていけばいいだけなのでそんなに困らないんだけど、何気なくいろんな使い方をしていたらしい。

そういえば昔、常時接続がほしいばかりにいつも大学に居たなぁ。*1アナログモデムに戻ったときは本当につらかった。今もつらいけど。ADSL が普及してきたのはそのあとなんだけど、実はそんなに遠い過去でもない。時の経つのはなんと早いことか。

でも回線が貧弱だと何かしら成果物ができあがったりするんだよな、これが :-P

Tags: Net 日々

*1 当時の常時接続よりも今は各家庭の常時接続の方が速いんだよなぁ…。


2005-07-04 [長年日記]

_ ADSL復活

長かった。予定より2日早いけど、それでも10日も常時接続が切れていたのか。まぁ平日の昼間は自分自身は IP reachable なわけだけど、その成果を自宅サーバやそれ経由の HDD レコーダに落とせないのがかなり不便だった。ダイヤルアップを共有したり、ルータを自分で作れるようにならないとダメかなぁとちょっと本気で考えてしまった。

まぁそれでもネットに繋がらないとやれることが減るので、家計簿整理したり住所録整理しようとしたり、なんか翻訳とかしてみたり、それはそれでなかなか充実した時間の使い方をするようになるもんだな、とは思った。調べ物とか手軽にできないのは痛いけど。

Tags: Net 日々

2005-07-05 [長年日記]

_ オライリールールわろた

オライリールール (はてなのモヒカン族のキーワード)

モヒカン族って元ネタが分からねーなぁと思いながらつらつら眺めていて見つけた。でもなんとなく見たことがあるような気がするから、前から有名な言葉なのかもしれない。というか otsune さんとこで見たのか? オライリーの本を読んで勉強するとき、妙に租借が大変であごが疲れる思いをするのはこれだったのかと納得。

Tags: Web ことば

2005-07-06 [長年日記]

_ Apache の mod_autoindex を利用したサービスで検索したい

どういうことかというと、例えば ring などを思い浮かべてもらうと分かりやすいんだけど、Web サーバの機能でディレクトリの中身をそのまま表示しているようなときに、それらのファイルに対して検索ができたら便利だなぁと。Explorer や Finder の検索機能を Web ブラウザから実行したいというわけだ。

あと個人的には AddDescription も大好きなので、ここに書かれている記述も読み取ってインデックスを起こしておいて、Ajax でインクリメンタルサーチなんてやった日にゃ、結構かっこいいファイルサーバになるんじゃなかろうか。

てなアイディアはずいぶん前からあったんだけど、とりあえずオープンにしておくと誰か作ってくれるかもしれないから書いちゃおう。ほんとは何も言わずにコードをバーンと公開する方がかっこいいんだろうけど。

※ mod_perl 環境で autoindex を perl module で置き換えてると楽なのかな?

Tags: Web Tool

_ Thunderbird 1.0.2 で「すべての新着メッセージを受信」

めったにメールのこない管理用のアドレスだったので気づかなかったけど、

「すべての新着メッセージを受信」ではパスワードを保存していないアカウントは無視される

のだな、これが。アカウントを指定して受信すればパスワードを要求するダイアログが出てきて分かるんだけど、「すべての新着メッセージを受信」のときには何も要求されないので設定ミスに気づかない。

間違ったパスワードが保存されている場合は延々エラーが表示されるのでいやでも分かる。動作を確認したのは OS X 版だけど、他のものはひょっとすると違うかも。

つーか正しく受信できるかどうか一度もチェックしないまま放置していたのか、おれは。何やってんだ。

Tags: Net Tool

2005-07-08 [長年日記]

_ Kwartz

http://www.kuwata-lab.com/kwartz/

平成15年度の未踏だってのに今頃知った。

  • 中間言語を採用してプログラムとプレゼンテーションビューとプレゼンテーションロジックを分離することができる
  • おかげでサポート言語も増やすことができる

のが特徴のようで、PHP, Ruby, Java, Velocity に対応しているらしい。

これ、Perl か ASP.NET のどちらかあるいは両方をサポートすると、とても現場受けのいいテンプレートになりそうな気がする。システム開発側は顧客に提案する際の言語の選択肢が増えるが、協力するデザイナとの間では共通のテンプレートでやり取りできるわけで、とても都合がよい。異なる言語で同じノウハウが通用するってのはやっぱ楽でいいですよ。(対応方法は何も考えてない。)

Rails 対応ということでも注目を浴びているようだけど、その辺はこっちが追えていないのでノータッチ。

Tags: Text Tool

2005-07-10 [長年日記]

_ optparse チュートリアル補完メモ

OptionParser は定義に反するオプションの与え方をすると例外を発生しちゃうんだけど、こんな書き方で対処できる。まぁ、optparse チュートリアルとマニュアルの例外処理のところを読めば誰でも分かるんですけど。

require 'optparse'
opt = OptionParser.new()

opt.on( '-f filename' ) { |src|
  @srcpath = src
}

begin
  opt.parse!( ARGV )
rescue => err
  puts err.to_s
end

チュートリアルには InvalidOption だけ書かれていたが、実際には

InvalidOption
未定義のオプションを指定した
MissingArgument
引数の必要なオプションに引数を与えなかった

で、いずれにせよ rescue では特に何も記述せずに補足でき、補足した例外をそのまま to_s するだけで十分使いものになる。

$ ruby opttest.rb -f
missing argument: -f
$ ruby opttest.rb -c
invalid option: -c

便利だなぁ。

Tags: Ruby

2005-07-11 [長年日記]

_ 最近携帯の動作を試さなくなったな

購入前の携帯、触って試せない?

店頭お試しだけじゃなくて、確か1日レンタルとかできなかったっけ? 今はできないのが普通なの? 昔、初めて cdmaOne にするとき(時代がバレますな)に確かレンタルしたような。量販店でできたかどうかは知らないけど。

今はもう携帯の機能性にはあまりこだわってない(使う必要がない方が嬉しい)ので、いちいちレンタルとか、電源入れて操作とかしないけど。ハナからたいして期待してないし。

Tags: 日々 Tool

2005-07-13 [長年日記]

_ FileUtils を作っていた

Ruby 1.7 で入った FileUtils ってモジュールがあるのに気づかずに、自分で FileUtils って class を作ってしまったorz まぁ別に車輪の再発明しまくったわけではないんで、名前変えるだけなんですが。

※ そのモジュールを使わないなら名前を変える必要がないのは承知のうえ。

Tags: 日々 Ruby

2005-07-14 [長年日記]

_ 非攻撃的なモヒカン族って

ishinao さんとこで見かけたので

モヒカンチェック!

やってみた。

結果はタイプ5 の非攻撃的なモヒカン族。教えて君に教えることもお隣ブログの巡回もしない、と。いやいや、そんなことないですよ。数は少ないですけどチェックはしてますよ。trackback に消極的なのはムラ社会的遠慮ですよ。(単に新しいものを使いこなせてないだけ。)

つーかね。ブログでお隣とかご近所とかって何?

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

_ ran [おれだよ、おれおれ!(早くも死語か?) おれもやってみたらタイプ5だった 教えてくんにものを教えるのは大嫌いだしね..]

_ wtnabe [もう一度やってみたらタイプ9になった…。モヒカンじゃなくて単に面倒くさがりなだけってのがバレたのかも。]


2005-07-18 [長年日記]

_ とりあえず古い記事はツッコミ不可に

週末留守にしていたらコメント spam にやられた。フィルタに手を加えるヒマはちょっとないので単純作業で

  1. spam を除去
  2. キャッシュを全削除
  3. あまりに古い記事は *.tdc を書き込み不可に
  4. ついでに役に立たない自作フィルタの適用をやめる*1

てな流れにして、まず tDiary のアップデートから始めるべきかも、との思いに至る。

Tags: Web 日々

*1 TrackBack を受けられるように直すのも今は面倒なのだ


2005-07-19 [長年日記]

_ PHP 4.4.0 か

またもやのファイルアップロード周りのバグや segmentation fault やら無限ループやらの修正がほとんど。4.3.x じゃないのは SORT_LOCALE_STRING フラグの追加が入ったのが大きいのかな?

http://nx.eth.jp/hiki.cgi?PHP-Changes-4.4.0

Tags: 日々 PHP

2005-07-20 [長年日記]

_ livedoor Wiki の記法って PukiWiki ライクなのね

http://wiki.livedoor.com/howto.html

こういう一覧は見やすくていいな。縦に長過ぎる説明は見る気にならないし。

見出しとリストとテーブル、引用、文字サイズやカラー指定は明らかに PukiWiki の影響がありますな。

ただ、対応する HTML が強調系で i と strong が並列で扱われてたりとか、なんだか微妙な気が。^ が pre で、空白と > が blockquote に対応するってのも分かったような分からないような。ただ、空白が blockquote になるっつーのはデフォルトのスタイルが適用された状態を想像すると分かりやすいっちゃ分かりやすいので、あぁなるほどなとも思う。改行がそのまま反映されるのもそういう理由なのかな?

段落はないのか。思い切ってるなぁ。まーでも普通に Word しか使ってないような人たちは段落なんて意識してないか?

Tags: Web

_ 岡村ちゃん逮捕って

あーあー。

しかも覚せい剤って、ものすごく今さらな感じがするよー。

なにやってんだよー。

Tags: News Music

2005-07-21 [長年日記]

_ 携帯キャリアの Errors-To の解釈

試してみたところ、

docomo.ne.jp効果あり(Errors-To で指定したアドレスにエラーメールがくる*1
vodafone.ne.jp未テスト*2
ezweb.ne.jp効果なし(From にエラーメールが返ってくる)

Errors-To は私の適当な解釈によると、こちらの指定したアドレスにエラーメールを返信させるためのヘッダ。のはず。なんだけど、この指定に対してどのように振る舞うかはサーバの設定次第なので、使えるとは限らない。まーそれは知ってたんだけど、実際どのように機能するのかを知っておきたかったので、確認したというわけ。

エラーは、携帯端末側で受信拒否の設定をしたアドレスからメールを送ることで発生させた。存在しないアドレスには投げていない。(存在しないアドレスかどうかなんて分かんないもん。)これはしかし Vodafone に関しては、存在しないアドレスに送った場合も同じようにエラーを返さない場合、アドレスリストの精度を上げる方法ってないんだなぁ。spammer にはいやなキャリアだけど、まともにメールを配信したい業者にもいやなキャリアですよ、これは。[8/3 追記]存在しないユーザーに投げた場合はエラー返ってくるようです。

ところで今回 Thunderbird にて Errors-To を設定するために以下を参考にした。

たーくんずろぐ / Thunderbirdにて任意のヘッダを追加する。

誰か拡張にしてくんないかなぁ(ぼそ)。と思ったら、そういえば xpi を勉強するとかなんとか以前考えていたことを思い出した。宿題ばっかだ。

Tags: Net

*1 ただし From と同じドメインのアドレスで実験している。

*2 今回実験した「受信拒否しているユーザーにメールを投げる」場合はそもそもエラーメールは返ってこない。存在しないユーザーにメールを投げた場合はエラーは返ってくるが、おいそれと試せないので、存在しないユーザーにメールを投げた場合に Errors-To が有効かどうかは未テスト。

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

_ ran [Erros-Toなんて使ったこともないや… ケータイで思い出したが、公式コンテンツ化するとIP制限を設けるわけだが..]

_ wtnabe [ネットマスクでイケるところはそうしてます。 本当は各キャリアがプレーンテキストとか XML とかでこの手の情報を流..]


2005-07-23 [長年日記]

_ カントリーサイン10コげと。

先週末に3泊4日で北海道をドライブした。すっかりどうでしょうバカの称号を得るレベルに達した私は当然のようにカントリーサインの撮影を行った。とは言えカントリーサインを見つけたら停車するってなことはしてないので撮れたものは見つけたものの一部に過ぎない。撮影に成功したのは以下のカントリーサイン。

あえてすべてノートリミングでどうぞ。全部自分で撮影したわけじゃないけど。

中富良野町中富良野町カントリーサイン
芽室町芽室町カントリーサイン
帯広市帯広市カントリーサイン
池田町池田町カントリーサイン
本別町本別町カントリーサイン
足寄町足寄町カントリーサイン
阿寒町阿寒町カントリーサイン
美幌町美幌町カントリーサイン
標茶町標茶町カントリーサイン
釧路町釧路町カントリーサイン
Tags: 日々 Photo

2005-07-25 [長年日記]

_ DUOGATE

http://duogate.jp/

ノーマークだったのでメモ。au と excite の作った duogate.

ケータイライフがもっと楽しくなるPCポータル

だそうで。ここで公式、非公式サイトの検索ができるので、QRコードもこれもある今、公式サイトって課金の仕組みを丸投げできる以外にはもうメリットないのかも。

Tags: Web

2005-07-26 [長年日記]

_ コンビニワークの最適化

JOJO の奇妙なコンビニ

わろたので。

つーかこんなネタを探してたんじゃないんだが。

Tags: Biz

2005-07-27 [長年日記]

_ pukiwiki.org が引けない

自宅からは引けるんだけどな。

あー dns2.pukiwiki.org に聞きに行っちゃうとダメっぽい。

$ dig @dns2.pukiwiki.org pukiwiki.org

; <<>> DiG 9.3.1 <<>> @dns2.pukiwiki.org pukiwiki.org
; (1 server found)
;; global options:  printcmd
;; connection timed out; no servers could be reached

traceroute するとその前で止まってるように見えるけど工事か何か?

dns2.pukiwiki.org has address 61.194.40.84
 9  g2-0-n-otemachi-core3.sphere.ad.jp (203.138.68.202)  50.919 ms  47.665 ms  47.557 ms
10  210.165.241.2 (210.165.241.2)  71.892 ms  68.190 ms  68.826 ms
11  nas931.sapporo.nttpc.ne.jp (210.165.249.86)  72.344 ms  71.625 ms  70.755 ms
12  61.194.40.81 (61.194.40.81)  80.247 ms  76.258 ms  72.517 ms
13  61.194.40.81 (61.194.40.81)  3068.324 ms !H  3065.929 ms !H  3070.033 ms !H

[8/1 追記] sourceforge.jp に DNS 関連のトラブルのアナウンスが出ましたが、IP アドレスでアクセスしても使いものにならないことを把握しておられなかったので、コメント投げておきました。いずれ解決するでしょう。

[8/17 追記] 相当に放置していたようで、まだまだ復旧しないと。しかし sourceforge のアナウンスはドメインの管理を担当していない heno 氏ばかりですな。ゆう氏はドメインの管理も、今回の顛末のアナウンスも書けないくらいに忙しい? これ、無策のまま時間が経つのを待つのだとしたら、ものすごく度胸があるってことだけは間違いないなー。

Tags: Net 日々

_ クロスメディアエキスパートってどうなんだ?

http://www.jagat.or.jp/cme/

今日知ったんだけど。

ものすごく範囲が広いような気がするけど、具体的にはたっかい講習とか受けないと中身分からないんだろうか。つーかこれを JAGAT がやるのもどうなのだろうと思ったり。

Tags: Biz
本日のツッコミ(全3件) [ツッコミを入れる]

_ ran [pukiwikiですが、確かに落ちとるようで。。。 http://sourceforge.jp/projects/p..]

_ wtnabe [いやこれ違いますよ。ここで上がっているのは6月時点での Web サーバダウンとそれに伴うマシンリプレイスのニュースで..]

_ ran [はぁ〜なるほどね dns2を聞きに行くネットワークだとアウトですか 自宅も会社もアウトやね つーか見に行けんし まぁ..]


2005-07-28 [長年日記]

_ 今度は RAA が繋がらない

Ruby Application Archive

Bad Gateway

The proxy server received an invalid response from an upstream server.

と言わはる。3つほどのネットワークのどこからでもエラーになるので、ここで言う proxy は reverse proxy さんだと思うんだけど、どうだろう。

[16:45 追記] 繋がるようになったみたい。

Tags: Web 日々

_ UltraVNC いつの間にか 1.0

http://ultravnc.sourceforge.net/

RC 取れたの知らずに昨日も RC のものをセットアップしちゃったorz しかもリリースされたの一ヶ月以上も前だし。

Tags: Net Tool

_ 名付けて mailread_ar.rb かな?

Ruby には mailread.rb というライブラリが標準で添付されている。これはヘッダをハッシュに、本文を配列に収めてくれるもので、凝ったメールを扱わなければ結構便利。

しかし複数ある、例えば Received ヘッダが一つのハッシュのうえで上書きされまくって最後の(Received の時系列で言うと最初の)ものしか残らないので、ちょっと不便。

そこですべてのヘッダ情報を配列を値に持つハッシュに収めることにした。

16c16,19
<         @header[attr] = $2
---
>           if ( !@header.has_key?( attr ) )
>               @header[attr] = Array.new()
>           end
>           @header[attr].push( $2 )
19c22,24
<         @header[attr] += "\n" + line
---
>           last = @header[attr].last
>           last += "\n" + line
>           @header[attr][@header[attr].size-1] = last

値を取り出すときは全部配列になっちゃってるから一手間増えるけど、まぁそれは仕方ないってことで。

※ これが PHP の場合は配列を扱う一手間がばかにならないから、もうちょっとなんか工夫しなきゃって気になるんだけど、Ruby なら楽だから。

Tags: Ruby

2005-07-29 [長年日記]

_ PukiWiki の calendar_viewer プラグインが惜しい

※ 相変わらず pukiwiki.org が引けないので hosts に書いちゃった

わたしゃ普段自分の活動記録を PukiWiki の calendar2 プラグインを利用して残しております。しかしこれって一覧性悪いなーとずっと(2年以上!)思っていたんだけど、calendar_viewer なんてプラグインがあったのね。

で、見てみたらアクションプラグインとしても使えるので、適切な引数がセットされるように InterWikiName を定義してやると、簡単な BracketName を書くだけで、ワンクリックで見たい月の記録がどーんと1ページに展開されるようになった。例えば

  1. Log というページに calendar2 を置くこととする
  2. 当然、Log というページに #calendar2 と書いておく
  3. InterWikiName で -[./?plugin=calendar_viewer&mode=view&file=Log&date= Log] と定義
  4. [ [Log:2005-07] ] ってリンクを用意すると 2005年7月の一覧へのリンクができる。

さらに Log に

-[[Log:2005-07]]
-[[Log:2005-06]]
-[[Log:2005-05]]
-[[Log:2005-04]]
-[[Log:2005-03]]
-[[Log:2005-02]]
-[[Log:2005-01]]
-[[Log:2004-12]]
-[[Log:2004-11]]

こんな風にリンクを並べておけば、今日の日付の内容とともに過去のページにさかのぼって確認するためのリンクも用意されてとても使いやすい。この程度は自動生成するまでもなく、手書きで十分。

…なんだけど、実はその日ごとのページに navi プラグインやら contents プラグインやらが埋め込まれているので、特に navi プラグイン周りでかなりおかしなことが起きていて、そこが不便。

calendar_viewer の出力を Document Map で眺めているところ

まぁ一覧のページそのものは Firefox の DocumentMap 拡張で当たりをつけてから見る*1ので、そんなに支障はないんだけど、ページ内容を詳細に見ようと思うと navi プラグインの嘘の情報が各日付の内容をサンドしているのでかなり見にくい。

今さら全ページの navi プラグインを外すのも邪魔くさいし、1ページずつ見てるときはこれはこれで便利だし、どうしよう。igonre_block_plugin オプションかなんかをつけて、

// 現状で閲覧許可がある場合だけ表示する
if (check_readable($page, false, false)) {
  $body = convert_html(get_source($page));
} else {
$body = str_replace('$1', $page, $_msg_calendar_viewer_restrict);
}

ここら辺で convert_html() する前に # から始まる行を捨てる処理でも加えりゃいいのか。でもオプションの渡し方がよく分かってないんだよな、実は。

Tags: Tool PHP

*1 当然、やった内容ごとに見出しをつけてあるので、これだけでほとんどすべて把握できる

_ 「なぜコンピュータに反対するのですか?」

NHK教育のドイツ語の番組でコンピュータに反対する立場の人が登場していた。思わずこのサブタイトルだけで録画して見たんだけど、いやー、もう全然ドイツ語分からない。そう言えば動詞を後置するなんて文法があったかも。

しかし内容がとても面白い。コミニュケーションの意味の違い、ビールとかサッカーとかオペラとかドイツっぽい話題。ドイツいいなぁ、ちくしょう。

Tags: TV 日々

2005-07-30 [長年日記]

_ やっぱり全部配列じゃない方がよかった

ということでまた mailread.rb をいじる。

16c16,25
< 	  @header[attr] = $2
---
>           if ( @header.has_key?( attr ) )
>             if ( @header[attr].class == String )
>               header = @header[attr]
>               @header[attr] = Array.new()
>               @header[attr].push( header )
>             end
>             @header[attr].push( $2 )
>           else
>             @header[attr] = $2
>           end
19c28,34
< 	  @header[attr] += "\n" + line
---
>           if ( @header[attr].class == String )
>             @header[attr] += "\n" + line
>           else
>             last = @header[attr].last
>             last += "\n" + line
>             @header[attr][@header[attr].size-1] = last
>           end

うぃー。

これで複数あるフィールドだけ配列になるだす。

Tags: Ruby

_ Unison マニュアル私的日本語訳

http://88171.net/UnisonManualJa

otsune さんの del.icio.us メモから知った。

自分でやってた Unison のマニュアルの和訳は Unison そのものを使わなくなったのでまったく手つかずで、まずいなぁと思っていた。これは助かる。もうこっちに誘導して、おまかせにしてしまおう。

Tags: Web

2005-07-31 [長年日記]

_ PukiWiki の calendar_viewer でページ内のプラグインを無視してみる

4番目の引数を与えると # から始まる行を無視する。4番目の引数は false 以外ならあるだけで ok

action プラグインとして使うときは ignore_blockplugin という引数を与えるとブロックレベルプラグインを無視します。

68a69
>         $ignore_blockplugin = false;
101a103,106
>         if ($func_args[4]) {
>           $ignore_blockplugin = true;
>         }
>
179a185,187
>                   if ( $ignore_blockplugin ) {
>                     $body = convert_html(strip_blockplugin(get_source($page)));
>                   } else {
180a189
>                   }
254a264,266
>                 if ( $ignore_blockplugin ) {
>                   $link .= 'ignore_blockplugin&amp;';
>                 }
288a301
>         $ignore_blockplugin = isset( $vars['ignore_blockplugin'] );
296c309
< 	$args_array = array($vars['page'], $page_YM, $mode, $date_sep);
---
> 	$args_array = array($vars['page'], $page_YM, $mode, $date_sep, $ignore_blockplugin );
325a339,352
> /**
>  * ブロックレベルプラグインを取り除く
>  *
>  * @param array $src Wiki ソース
>  */
> function strip_blockplugin( $src ) {
>   $result = array();
>   foreach ( $src as $line ) {
>     if ( !preg_match( '/^#/', $line ) ) {
>       array_push( $result, $line );
>     }
>   }
>   return $result;
> }

うん、見やすくなった。細かいことはまた今度考えよう。

Tags: Tool PHP