2006年10月の投稿
2006-10-02
きのう10月1日より、ボーダフォンがソフトバンクモバイル株式会社に変わりました。ウェブサイトの URI も変更になっています。新端末を13機種54色出すらしいですが、すべて 3G というのは意欲的な反面、PDC ユーザー (== J-PHONE 時代からのユーザー) をないがしろにしそうで注意が必要でしょう。
何より困ったことが、開発者向けページがリニューアル中で見られないことです。古い情報 (ボーダフォンロゴのまま) でいいので公開しておいてほしいよ〰。
[追記 2006-10-04 13:40] 2日の午後には、開発者向けページもリニューアル完了して公開されたようです。
10月1日は、阪急と阪神が経営統合した阪急阪神ホールディングスも誕生しました。村上ファンドの株買占め問題を発端に、阪急がうまいこと阪神グループを手中に収めた形になってしまいましたが、JR や自動車に対抗するには長年のライバルが手を組むのは悪くないでしょう。
でも、単に名前をくっつけただけの「阪急阪神」という名称のダサさは致命的です。当面はこのままで仕方ないと思いますが、50年100年を考えると、早い目にもっとマシな名前に変更する必要があるでしょう。双方がメンツにこだわらなければ「阪神急行ホールディングス」がベストだと思います;-)
2006-10-04
遅ればせながら、やっとコメント機能を作りました。ログイン中の閲覧者 (サイト運営者など) は、名前等の入力が不要という機能を作っていて、さらに、その機能を使ってコメントした人は、その人の過去の投稿が見られるという凝った仕組みにしました。Slashcode や phpBB などユーザー登録式の掲示板システムを意識したためですが、なりすまし防止にもなっています。
また、この機会に、記事末尾の投稿者の表示を「yuriko」から「ゆりこ」に変更しています。今後も Yuriko.Net をよろしくお願いします。
2006-10-06
今週末は3連休で鉄道の日きっぷが使えますが、JR 只見線・山形鉄道・左沢線 (あてらざわせん) に乗るという、ローカル線の旅にします (行程表などはリンク先参照)。JR 只見線も JR 左沢線も、全線通し列車は1日数本しかない超ローカル線なので、なかなか乗る機会がなく、非常に楽しみです。
旅行記ウェブログでリアルタイムレポートを試みますが、なんせローカル線で圏外の場所が多そうですから、期待しないでください。
[追記 2006-10-08 10:35] 強風の影響で奥羽本線が遅れ、左沢線が区間運休のため、山形方面の予定はあきらめました。代わりに会津鉄道の未乗区間 (西若松〜芦ノ牧温泉) に乗車することにします。詳細はリアルタイムレポートを参照してください。
先日、モバイル Suica の i アプリがバージョンアップされたので、更新してみました。今回は単純なバージョンアップではなく、3つあったアプリを2つに統合するので、作業が複雑です。
まず、改札の外でアプリを起動し、会員メニューからログインします。すると、バージョンアップのお知らせが表示されますから、それに従うと、IC チップに入っている情報をサーバーに移動させる処理が行なわれます。次に、モバイル Suica アプリと、Suica 設定アプリを削除します。それから、新しいモバイル Suica アプリをダウンロードして、サーバーから情報を戻してきます。
サーバーとの情報のやりとりは、機種変更手続きのプロトコルを使っているようです。なるほどと思いましたが、アプリのバージョンアップなのに「機種変更の手続きを行います」という表示になるのは不親切ですね:-)
新しいアプリは、メニューのフォーカスが分かりやすくなりました。以前はメニュー枠線の太さが微妙に違うだけという不親切設計でしたが、新アプリでは、選択した項目が、左右の幅が広くなって背景色が水色項目別の色に変わります。これなら一目でどこにフォーカスがあるか分かります。
それにしてもタダでさえ容量の大きかったモバイル Suica アプリですが、今回さらに容量アップしているようです。おかげで、アプリを1つ消すハメになってしまいました。
あさっては山形新幹線に乗車予定ですが、福島〜新庄は在来線扱いなので、福島以南の新幹線区間と直通する場合は、特急料金が複雑な体系になっています。単純に合算すると高くなってしまうため、通し乗車すると割り引きするためです。
しかし、あさって乗車予定は、郡山〜赤湯という区間で、全区間指定席の場合と自由席の場合で料金が1800円も違います。郡山〜福島が自由席特定料金が適用されるため、自由席が格安になっているのです。
しかし、つばさ号の自由席は少ないため、全区間自由席というのは不安があります。在来線区間だけ指定席にし、新幹線区間だけ自由席にすれば、費用対効果が抜群ではないでしょうか。そう思って料金を調べましたが、駅すぱあとではそういう乗り方の料金は検索できませんし、市販の時刻表でも不明でした。
仕方なく、みどりの窓口で尋ねてみましたが、応対した窓口氏はふざけた回答をしました。「一部区間だけ自由席に乗っても全区間指定席と同じ料金です」。これは明らかな誤答です。新幹線区間と在来線区間をバラバラに特急券を買えば確実に安くなるんですから、この回答が正しい訳がありません。
そう粘ると、窓口氏は、「では実際に券を出してみます」と言って発券してくれました。これを見ると、全区間自由席は1650円、全区間指定席は3470円。ここまでは時刻表通りです。果たして、福島〜赤湯だけ指定だと2010円でした!! バラバラに買うと2500円 (新幹線840円、在来線1660円) なので、490円も安くなります!!
危うく、駅員の知識不足で高い料金を払うところでした。そもそも山形新幹線 (秋田新幹線も同様) の特急料金が複雑なのが悪いのですが、新在乗り通したときの割り引きについて時刻表で詳しく説明していないのもよくないでしょう。その結果、乗客と駅員の両方が制度について理解が足らず、払わなくていい料金を払う事例が続発するのです。
ひどいことに、えきねっとや JR 東日本の指定席券売機では、一部区間だけ指定席という買い方ができません。つまり、みどりの窓口に並ぶことを強要されるのです!! これは、安い買い方をさせないために不便を強いていると言っていいと思います;-)
やまびこ→つばさ号と乗り継ぐ場合は、えきねっとでも前者を自由席、後者を指定席として購入でき、特急料金が2010円と表示されました。列車乗継の購入で同一列車を指定ができたらな〰。
2006-10-08
当初はJR只見線と山形鉄道・JR左沢線に乗る予定だった旅行ですが、只見線での SL 乗車は果せたものの、翌日の山形鉄道・JR 左沢線は中止して会津鉄道→野岩鉄道→東武鉄道乗車に変更しました。東北方面は大雨・強風による運転乱れのため、緻密な乗り継ぎが要求される予定を遂行できないと考えたためです。
その結果、運賃は余分にかかりましたが、楽な帰還ができました。旅行の様子はリアルタイムレポートを見てくらはい。
2006-10-09
おとといは只見線の SL に乗りましたが、季節運行である SL 走行が地元から熱烈に歓迎されているのは、びっくりすると共に安心しました。
まず、長岡〜只見の SL リレー号で、新潟の観光協会の人が乗り込んでいて、観光パンフレットを配ったりお弁当の販売をしているところから、気合いが入っています。次に、只見駅でのお祭り状態は強烈です。駅に「歓迎 SL 会津只見号」という看板や横断幕があるのは序の口で、駅前に出店が出ていたり、子供さんが「1日駅長」をしていて SL やリレー号の出発を見送ったり、SL 機関車の方向転換を行えるイベントがあったり……。

さらに、途中停車駅でも、地元の人が無料でお茶を振舞ったり、きのこ汁・お饅頭などの臨時販売をしていました。通過駅でも、ホームに立って見送ってくれる人がかなりいます。SL 運転が地元にとっても、特別な行事であることを物語っています。
そして、SL を撮影しようとする鉄道・写真マニアが相当多いことも特筆されるでしょう。只見から西若松まで、カメラを持った人、カメラを据えつけた三脚が至るところにあります。風光明媚な沿線を旧型客車を連れた SL が走るのは、すばらしい絵になることが確実ですが、それ以上の理由が何かあるかもしれませんね。
磐越西線の SL に乗ったときは、沿線にときどき立っている人が手を振る程度だったのと大違いでした。このときは、「SL は外から見るものだ」という印象を受けましたが、今回は「実際に乗っても楽しい」と思わせてくれました。単に走らせるだけではなく、地元の応援が必要だということです。SL 運行という特別な状況とはいえ、只見線が沿線から愛されていることを感じます。廃止されるかもしれないという不安を消し去ってさえくれます。
とはいえ、たった510円の指定席料金だけで運行するのは、どう考えても赤字だと思えます。運行を支える人的リソース・物的リソースが多すぎて、1500円ぐらい取らないとモトを取れないのではないでしょうか。でも、只見線なら1500円でも乗ってくれるでしょう。
きょうはおとといの只見線に引き続いて SL を体験してしまいました。鉄道の日きっぷが1回分余りそうだったので、消化試合として真岡鐵道と茨城交通に乗るべく出発しました。真岡鐵道はたまたま SL が走行する時間に巡り合ったので、乗車してみたわけです。その後予定変更して茨城交通はあきらめて JR 水郡線の支線に行きましたが……。

真岡鐵道の SL は、只見線にも増して地元に溶け込んでいました。乗客自体が、遠方からの鉄道ファンが少なく、周辺の住人と思われる家族連れが多数です。さらに、茂木駅やその周辺では、有り余るぐらいの人々が手を振っていました。逆に、ごついカメラで撮影する人をほとんど見かけませんでした。
すなわち、ファミリー向け SL というわけで、地元に根付いているものと言えます。こういう形態もいいですねーー。
ただし、真岡線は平坦地が多くて只見線みたいな渓谷はありません。緑の木々や桜並木などの風景を楽しむことになります。
2006-10-10
まことに残念ながら、中日ドラゴンズが読売ジャイアンツを延長戦にもつれつつ9-3で下して優勝しました。おめでとうございます。でもくやしい〰〜。
優勝監督インタビューでは、タイガースの猛追が苦しかったとおっしゃられていました。セ・リーグは当分、トラ・ドラの2強時代になるんでしょうか……。
NHK BS1 は優勝監督インタビュー後 22:30 に放送終了しましたが、G+ はまだまだ放送しているようです。いちおう東京ドーム最終戦でジャイアンツ側のセレモニーもありますから:-)
2006-10-11
Wiki ソフトの1つ、MediaWiki の最新バージョン 1.8.0 が出ました。MediaWiki は、玖伊屋辞書やJ2 関東 WIki で採用しているので、ヒマを見てアップグレードしてみます。1.8.0 はセキュリティー修正は含まれてないようなので、あわてる必要はないでしょう。
MediaWiki は、1.7.0 以後、3か月に1回はメジャーアップグレード (バージョン番号 0.1 のアップ) をすることになりましたが、それが守られているのはすばらしいことです。
2006-10-12
MediaWiki 1.8.0 が出たばっかりなのに 1.8.1 が出ました。MediaWiki は大抵 1.x.0 のバージョンにバグがあって 1.x.1 がすぐ出ているので、予想された事態でしたが……。
やっとこさ設置したコメント機能ですが、少し修正しました。
- メールアドレスかウェブサイトURLのどちらかを入力すればOKにしました。以前はメールアドレスは必須、ウェブURLは任意でした。
- 名前・メールアドレス・ウェブURLをクッキーに保存する機能をつけました。
あまりきちんとテストしてないのでバグがあるかもしれませんが、そのときはごめんなさい。
さきほど、パ・リーグのプレーオフで日本ハムファイターズが2連勝して優勝を決めました!! 引き分けでも優勝が決まるため 0-0 のまま延長戦になるかと思いきや、9回ウラで劇的なサヨナラ勝ちをしました。森本選手が守備でファインプレーを見せ、サヨナラのホームインも決めていて、注目の選手と言えるでしょう。
それにしても、3年連続でプレーオフを落としたホークスはかわいそうです。今年はレギュラーシーズン1位のチームが優勝という順当な内容だったので仕方ないですが、おととし、去年は1位通過なのに日本シリーズ出られなかったので。
テレビ放送は、テレビ東京、NHK-BS1、GAORA がありましたが、NHK-BS1 でも21:18に放送終了してしまいました。ペナントを掲げて記念撮影するシーンは流れませんでした。去年のタイガース優勝時は 21:29 の放送時間ぎりぎりまで中継して、選手が球場を1周するセレモニーまで全部流れたのと比べると、サービスダウンです。
GAORA は予定番組を潰して、記者会見から優勝特番までそのまま流すようです。すごい。
2006-10-13

Yuriko.Net は独自ウェブログシステムに移行しましたが、運営者が使う管理画面はまだ完成していません;-) 記事の作成・編集、カテゴリーの追加・編集、イベントの追加・編集は可能ですが、それ以外のデーターは phpMyAdmin 経由で MySQL データーベースを直接いじっています。phpMyAdmin が優秀なので、自前の管理画面がなくてもウェブログの管理ができてしまうため、開発をあわてる必要がないのです;-)
開発が遅い理由の1つに、わたしの PEAR ライブラリーの理解が十分でないことがあります。とくに、HTML_QuickForm と HTML_Template_Flexy を組み合わせる部分が悩みの種です。どちらも高機能なパッケージで使いこなすのが大変な上に、QuickForm で作ったフォーム部品のレンダリングを Flexy でやらせるという組み合わせ技になると、ドキュメントが非常に少なくて試行錯誤しています。
フォーム部品が固定の場合は使い方がなんとか分かりましたが、「記事一覧」のようにフォーム部品の数が変化する場合は完成していません。フォーム部品を描画させるところはできたのですが、フォームの入力内容を検証するルールの設定が分かりません。そのため、正当な値を入れた場合は先に進みますが、不正な値を入れた場合は処理がおかしくなってします。どうせ管理画面は自分だけが使うものなので、値の検証がええ加減でもいいわけですが、やはりきちんと作りたいものです。
フォーム部品を作る部分のコードは以下のような感じです (説明用に抜粋しています)。
$form = new HTML_QuickForm('ev-mod', 'post');
$rows = array($form->addGroup(array(), 0, NULL, NULL)); // add dummy
foreach ($list as $e) {
$cols = array();
if (year_of($e['date']) < 1900) {
$e['date'] = '2000-01-01';
}
$end = $e['end'] ? $e['end'] : $e['date'];
$cols[] = $form->createElement(’static’, ‘target’, NULL, $e['id']);
$cols[] = $form->createElement(’date’, ‘date’, ”,
array(’language’ => ‘ja’, ‘format’ => ‘Y年m月d日’,
‘minYear’ => year_of($e['date']) -5,
‘maxYear’ => year_of($e['date']) +5));
$cols[] = $form->createElement(’checkbox’, ‘has_end’, NULL,
‘終了日を設定’);
$cols[] = $form->createElement(’date’, ‘end’, ”,
array(’language’ => ‘ja’, ‘format’ => ‘Y年m月d日’,
‘minYear’ => year_of($end) -5,
‘maxYear’ => year_of($end) +5));
$cols[] = $form->createElement(’textarea’, ‘desc’, ‘説明’,
array(’cols’ => 48, ‘rows’ => 3));
$cols[1]->setValue($e['date']);
$cols[2]->setValue(isset($e['end']));
$cols[3]->setValue($end);
$cols[4]->setValue($e['description']);
$rows[] = $form->addGroup($cols, intval($e['id']), NULL, NULL);
}
$form->addGroup($rows, ‘list’, NULL, NULL);
$form->addElement(’submit’, ‘back’, ‘戻る’);
$form->addElement(’submit’, ‘modify’, ‘修正する’);
$rules = array();
foreach($rows as $id => $cols) {
$rule[$id]['date'][] = array(’開催日を入力してください。’, ‘required’, NULL, ’server’);
$rule[$id]['desc'][] = array(’説明を入力してください。’, ‘required’, NULL, ’server’);
$rule[$id]['desc'][] = array(’説明は512文字以内です。’, ‘maxlength’, 512, ’server’);
}
$form->addGroupRule(’list’, $rules);
$rend =& new HTML_QuickForm_Renderer_ObjectFlexy($page);
$form->accept($rend);
$page->mod_form = $rend->toObject();
$output = new HTML_Template_Flexy();
$output->compile(’events.html’);
$output->outputObject($page);
そしてテンプレート (events.html) の抜粋は次の通り。
{mod_form.outputHeader():h}
{mod_form.hidden:h}
<table class="list" border="1" cellspacing="0">
<caption>イベント修正</caption>
<thead>
<tr><th>ID</th><th>開催日</th><th>終了日</th><th>説明</th></tr>
</thead>
<tbody>
<tr flexy:foreach="mod_form.list,id,e">
<td class="id">{id}</td>
<td class="mod-date">{e.date.html:h}
<div class="error" flexy:if="e.date.error">{e.date.error}</div></td>
<td class="mod-date">{e.has_end.html:h}<br />{e.end.html:h}
<div class="error" flexy:if="e.end.error">{e.end.error}</div></td>
<td class="desc">{e.desc.html:h}
<div class="error" flexy:if="e.desc.error">{e.desc.error}</div></td>
</tr>
</tbody>
</table>
<div class="error" flexy:if="mod_form.errors.list">
{mod_form.errors.list}</div>
<div>{mod_form.back.html:h} {mod_form.modify.html:h}</div>
</form>
addGroup を2重にすることで、テンプレートは作りやすくなりましたが、ルールが上手く動きません。addGroupRule でうまくいきそうなんですが、これでは動作していません。うーん困った。
なお、QuickForm でのクライアント側検証は使わない主義です;-) (続きはリンク先エントリに移設)
(前エントリから移行)。わたしは、QuickForm でのクライアント側検証は使わない主義です;-) なぜなら、エラー表示がダイアログを出すいうユーザビリティーの低い仕組みだからです。エラー部分を直すためにはダイアログを閉じなければなりませんので、どこがエラーなのか記憶しておかなければなりません (サンプル)。
逆に、サーバー側検証は、不正な値のフォーム部品の真上/真下にエラー表示するという分かりやすいインターフェースになるので、こちらの方が親切です。クライアント側検証だとインターフェースが劣化してしまうのは、非常に問題です。PEAR 解説本ではクライアント側検証を勧めているようですが、現状の QuickForm が吐く JavaScript ではまるで勧められません;-)
将来、DOM をいじってフォームの真上/真下にエラー表示するという JavaScript を吐くようになれば、クライアント側検証をばりばり使ってもいいです。