« 2005年12月 | Main | 2005年10月 »

2005年11月30日

1.0.4 のバグを修正した 1.0.5 がリリース

ここまで来るともう開き直ってきてしまう。僕は未だに 1.0.2 のままメインのブログの更新すらままならないというのに 1.0.5 がリリースされたのだ。1.0.2 のリリースから 1.0.3 までの時間を考えると作者さんは最近、俄然やる気になってるのかもしれない。

取り敢えずダウンロードしたのだが、変更点だけは追っておこう。

  • ハイパーテキストタグ に tidy_html 属性を使っていると "shape=rect" 属性をリンクタグに加えられてしまうバグを修正した。

    1.0.3 をまだ使っていなかったから「ふーん」という感じ。

  • テンプレートタグの属性から空白がはぎ取られてしまうバグを修正した。

    1.0.2 のソースを見ていた限りではそうは見えなかったから 1.0.3 以降に発生したのかな。

  • "均等割付け(justify text)オプションをエントリエディタに加えた。

    なんでも Thingamablog が使用している Swing's JEditorPane にはバグがあって見た目はセンタリングになってしまうらしい。Java 1.5.0_06 では解消されているそうだ。

    でもエントリエディタは日本語の Mac OS X では極めて苦痛というよりも使い物にならないから使ってない。だから関係ないや。

2005年11月25日

1.0.4 がもう出た

僕はまだ 1.0.3 をダウンロードしただけでソースファイルを展開しただけなのだが、もう 1.0.4 が出た。What's New によるとこのバージョンには日本語リソースが入った。前回同様 What's New を和訳して引用してみる。

  • hypertext タグで “strip_html” 属性を使用すると、アンパサンが実体参照(&)に変換されない。

    これは気付かなかった。そうだったんだ。

  • Thingamablog に日本語翻訳と適正な日本語の日時の書式が備わった。(ありがとう Tatsuya!)

    これは「思いつくまま-足助から-」の Key さんのことだと思う。Key さんの成果は日本のユーザにとても役に立つと思ったから作成された日本語リソースを Bob さんに寄贈してみてはとコメントしてみた。ついでに半角カタカナから全角カタカナにしてもらえるといいなあと書いたらそれも聞き入れてもらった。これで日本ユーザにもフレンドリーになった。Key さん Bob さんありがとう。

  • ログインダイアログのパスワードフィールドが visible になったとき(訳注: GUI 部品が表示状態になること)最初からフォーカスが当たるようになった。

    これは FTP や SFTP による転送をするときのことかな。

  • Hypertext タグに検索/置換機能が加わった。

    これはいいぞ。エントリ「こういう機能が増えたらいいなあ」で言及した機能を部分的に実現したものだ。

    今のところ Hypertext タグの中だけだからそれほど自由度が高いわけではないが、例えば iBlog+iblogPatcher でやるように、自分のブログのベース URL を “[$DocumentRoot$]” と書いておいて後から置換する技が使える。この技を使うとブログの移転でベース URL が変わっても置換の設定を変えるだけで全エントリの中に書いた URL が適切に置き換わってくれる。

    説明を読むとどうやら一つしか置換を定義できないようだ。こういうのを複数、テンプレートの外で指定できるとカスタマイズしやすさが飛躍的に上昇する。

2005年11月24日

拡張子を変えて使っている人はいるのかなあ

ブログの設定パネルには各種ページのファイル名や拡張子を指定する欄があるのには Thingamablog を使っていればすぐに気付くと思う。これってあまり言及されたところを見たことがないけれど凄いよね。

何が凄いかって、例えばこういう使い方ができるからだ。

  • 拡張子を php にして PHP が利用できるサーバでやりたい放題。

    PHP でデータベースと統合するなど動的な内容を持ったブログが作れてしまうのだ。

    いや、.Mac で PHP なんて当然のごとく使えないんですけどね。

  • 拡張子を shtml にして SSI で楽をする。

    1.0.3 で <Include> ディレクティブを使って URL 指定でリソースを取り込めるようになったが、それはあくまでテンプレートの拡張のはずだ。でも SSI なら動的に変わってゆく内容を始めから書いてあったかのように取り込める。これはコメントのページへの埋め込みなどに使える優れものなのだ。

    いや、.Mac で SSI なんて当然のごとく使えないんですけどね。

  • 拡張子を jsp にして Tomcat でやりたい放題。

    別に Tomcat でなくてもよいが、とにかく Java による Web アプリケーションとなるようなブログまで作れてしまう。もうここまでやったら無敵だ。

    いや、.Mac で jsp なんて当然のごとく使えないんですけどね。

  • 拡張子を cgiplにしてテンプレートも Perl スクリプトのテンプレートにする。

    要するに Thingamablog が Perl のデータファイルを生成するようにしておいて、あとは CGI でやりたい放題というアイデア。PHP で十分じゃんという感じもするけれど、CGI じゃないと辛いことだってあるかもしれない。

    いや、.Mac で CGI なんて当然のごとく使えないんですけどね。

  • 各ページの拡張子を xmlxhtml に、内容を XHTML にしてブラウザに HTML としてではなく XHTML として解釈させる。

    XHTML 文書の拡張子を html にしていると大抵の HTTP サーバはその mime type を text/html にする。そうすると XHTML を XHTML として解釈できるブラウザでも HTML 流の解釈をしてしまう。サーバが適切に設定されていれば拡張子を xhtml にすると XHTML 文書の mime type が HTTP レスポンスヘッダーに書き込まれるから気持ちがよくなるかもしれない。

    因に .Mac では拡張子を xml にすると mime type は text/xml、xhtml にするとなんと application/xhtml+xml になってくれる。半年くらい前はそうはならなかったけれどいつの間にかちゃんとしている。偉いぞ .Mac。

    だけど Internet Explorer が application/xhtml+xml をちゃんと解釈できずに自分が表示できるものだとは思わないでダウンロードするかどうかなんて訊いてくるのだ。Internet Explorer はもうレトロなブラウザになりつつある。

    Homepage 機能でお手軽にスライドショーなど色々が作成できるけれど一般の HTTP サーバでもはや当たり前の機能群(JSP は当たり前じゃない)が使えない .Mac で唯一偉いところだったのだけれど役に立たなくて残念だ。

    あ、でも application/xhtml+xml だったら JavaScript の XMLDocumemnt の load メソッドとか、XMLHttpRequest オブジェクトが使えるかもしれない。それらを使って Ajax なページを見せれば面白いかも。

このように HTTP サーバに機能があれば Thingamablog は凄いことができてしまうのだ。ファイル名や拡張子をユーザが指定できるというちょっとした機能だが、それだけで使い方の幅が猛烈に広がる。

だけどこれを活用している人はいるのかなあ?

2005年11月21日

1.0.3 がリリースされた

Thingamablog がアップデートされた。(参照「v1.0.3 Released」) その What's New によると次の改善が行われたそうだ。和訳して引用しながらコメントも付けておく。

  • エントリページにおける <$PageTitle$> がウェブログのタイトルに置き換えられるバグを修正し、エントリのタイトルに置き換えられるようになった。

    これ僕も気付いていた。でもそういう風にしたいからそうなっているんだろうと思ってテンプレートの修正で対応していた。これで不自然な <BlogEntry> コンテナの使い方をしなくて済むようになる。

  • <BlogEntry> コンテナをエントリページで複数使っているとエントリのテキストが繰り返されてしまうバグを修正。

    上のバグに対応するため、最初エントリページのテンプレートで <BlogEntry> コンテナを複数使ってみたのだ。そうしたら、エントリの内容がそれぞれで出力されてしまって閉口したものだ。上の修正と合わせて不自然な <BlogEntry> コンテナの使い方をしなくて済むようになる。

  • hypertext テンプレートタグに words 属性を指定したときに html をそぎ落としてしまうバグを修正。例えば <$EntryBody words="10"$> としたときにテキスト中の html が残るようになった。

    words の概念は分かち書きをしない日本語には通用しないから使ったことがなかった。html が残るのはよいとして、開始タグと終了タグのバランスは保たれるのかどうかちょっと心配。

  • hypertext テンプレートタグに encode_html 属性を指定すると 非 7 bit 文字が実体参照に変換されるバグを修正した。

    これ、僕が送りつけたパッチファイルで修正した奴だ!

  • 正しくない RFC822 の日付の書式を生成するバグを修正。

    これも僕が送りつけたパッチファイルで修正した奴だ! フォーラムでも報告したし。これはソースを変更しないと回避する方法がなかったから重要だ。

    と思ったら下の項目を見てわかっただが、lang 属性があったのね。それなら回避方法が無いわけじゃなかったな。

  • <Calendar> コンテナの <$MonthLabel$> タグを date タグとして機能するようにし、普通の date 属性群…formatlang, country、その他…が受け付けられるようになった。

    これも僕が送りつけたパッチファイルで修正した奴だ!

  • archiving オプションの archive range コンボボックスに日本語の archive range を加えた。(ありがとう OKAMURA!)

    これも僕が送りつけたパッチファイルで修正した奴だ! しかも名前が書いてある! 照れるなあ。

  • ユーザが指定したファイル型を ASCII モードで FTP 転送をするオプションを加えた。このリストに加えられたファイル型の拡張子(を持つファイル)は ASCII モードで公開され、そうでないものは全てバイナリモードで公開される。

    UTF-8 の非 7 bit 文字が ASCII モードで FTP 転送されるときに文字化けするので僕は全てバイナリモードに変更していた。ASCII モードはサーバネイティブの改行コードと改行コードを合わせたりするモードで、サーバによっては必要なケースももちろんある。だからばっさりバイナリモードにするのはちょっとためらいがあった。

    UI を付けてユーザが選択可能になったのは嬉しい。僕は UI に手をつけるほど余裕がないからそこまでできなかったけど、意を汲んでくれたんだなあ。

  • HyperText タグに "tidy_html" 属性が使えるようになった。この属性を使うと、壊れたタグを修正したり空要素をその場閉じしたりと、テキストの中の任意の html が厳格な書式になる。

    これ、ソースを見ていて発見した close_empty_tags 属性の強力版だ。

  • <Include> コンテナでローカルファイルからだけでなく、URL からも取り込むことができるようにした。

    これは凄い! 疑似 SSI のような機能だ。もちろん SSI のように動的にできるわけではなく公開時に取り込まれるのだろう。

    でも、これで Include するファイルをサーバ上に置いておけばどのマシンからも同じように取り込むことができるようになる。"database" を USB メモリなどに入れて持ち歩いてどのマシンからでもウェブログを更新できるようにしている人には朗報だ。

  • カテゴリから feed (rss/atom) を生成するオプションを加えた。カテゴリの feed は "Feed" テンプレートから生成される。更に、<CategoryList> コンテナに <$FeedLink$> タグが含まれるようになり、カテゴリ feed へのリンクを使うことができる。

    フォーラムでリクエストが出ていた機能だ。この機能は iBlog でも欲しいと思っていながら iblogPatcher でできるのに作っていなかった。僕も実装してみようかな。

こうして見ると、作者の Bob さんに見てもらったパッチファイルでの改善事項はどれも、含まれているか意を汲んで取り入れてもらっている。嬉しいなあ。

今、ソースもバイナリもダウンロードし終わったからぼちぼち試してみようかな。

2005年11月18日

こういう機能が増えたらいいなあ

先日、iBlog の出力を補正したりカスタマイズを加えるツール iblogPatcher を使って個々のエントリについてコメントやトラックバックを disable にする方法について書いた。iBlog + iblogPatcher の組み合わせはこういうことが楽に行えるところが魅力だ。

しかし Thingamalog の場合そうはいかない。iBlog と比べると格段にテンプレートが自由に書ける反面、それ以上のことをしようとするとソースを弄って、機能と UI を付けなければならないからだ。そこで Thingamablog にどんな機能があれば自由度が増すかを考えてみた。

正規表現による置き換え

最も欲しいのはこれだ。Perl 程度の柔軟な正規表現で各ページの内容を置換できるようにするもの。

これはページの種類毎に正規表現による置換を記述するのではなく、正規表現による置換に対してページの種類を割り当てるようにしたほうがよい。というのは同じ置換が複数種類のページで使えることが多いからだ。

これがあるとエントリに特別な記述を加えることによってコメントを表示させないというようなこと、つまり条件毎にタグ付けを制御したりすることが容易になる。そういうことをいちいちソースに手を加えて UI を作っていると切りがないし UI も複雑になってしまう。

拡張ファイル生成

Thingamablog が生成するファイルを置くディレクトリには次の四種類がある。

  • Front Page が置かれるところ。
  • Archive Page が置かれるところ。
  • Category Page が置かれるところ。
  • Entry Page が置かれるところ。

このそれぞれについて複数の拡張ファイルを生成する機能とその UI があるとよい。そして、それぞれのディレクトリのページ(例えば Entry Page とか)と同じコンテナーがその拡張ファイルのテンプレートの中で使えるようにする。

そうすると例えば各標準ページに対応した XML ファイルを生成しておいて JavaScript で様々な処理が行えたりするようになる。特に Front Page が置かれるところは全エントリを総嘗めするようなコンテナがあると便利だ。

テンプレートが XHTML になっていればページをそのまま読み込んでもよさそうだが、拡張子が html だと Content-Type が text/html になるサーバが多いのであまり汎用性がない。

2005年11月15日

Thank you Bob.

エントリ「作者にメールを書いてみた」で述べたメールに反応がなかった。そりゃそうだ。いくらなんでも機械翻訳結果は僕が読んでもわからないから。

それで考えてみた。バグや問題点の指摘内容を英語にするのは項目も多いし僕にはちょっと難しい。でもパッチファイルで修正/変更した内容の主旨なら項目も少ないし、第一 Java という共通言語を参照することができる。「よし! それならその路線でもう一度書いてみようじゃないか」と書いておくってみた。それが 11 月 13 日 午前 0 時。

そうしたらその日の午前 8 時にはもう返信が来た!

I'll integrate your fixes into the next bug-fix release.

感激です。Bob さんありがとう。

2005年11月11日

Bug リストがあった

Thingamablog のサイトをよく見ていたら SourceForge によるバグリストのページがあった。更にパッチファイルリストのページがあった。

バグリストには僕がエントリ「Thingamablog 1.0.2 への要望」で指摘したものが結構含まれている。

Thingamablog 1.0.2-OKAMURA-20051102 で解決済み
Thingamablog 1.0.2 への要望で指摘済み
  • 1235349: Tab transformed to space in the html editor

    せっかく TAB で奇麗にフォーマットしてあっても SP にしちゃうんだろう。後で追記や修正をするときにやりにくくて困る。コピー&ペーストで流し込んでも、一度セーブしてまた開くとそうなるし Edit <HTML> モードではタブを打っても複数の SP になってしまう。テンプレートエディタでもそうで、それが苦痛で直接ファイルを編集している。

突っ込みたいもの
  • 1215288: Long Entry Length - Forces Previous Entry to Wrap off Side.

    それはテンプレートか CSS に何か変なカスタマイズをしたからなんじゃないのかな。それともどれかのテーマでそうなるのかな。とにかく Mac_Stripe-XHTML_Strict-ja でもオリジナルの Mac_Stripe でもそんなことは発生しなかった。

  • 1218004: Feed not recognised in reader

    invalid な RSS を処理できなくても別にいいのでは。RSS の方を直しましょう。

  • 1215284: Single Entry View \ Time.

    気に入らなければテンプレートを変更すればいいと思うのだが。

  • 1214996: XML Parse error when image used in title.

    XML Paerser ということは RSS の話かな? HTML だろうと XHTML だろうとそんなところに img 要素を入れられないから当然じゃないのかな。

  • 1211750: URLs Malformed

    なんか一つのレポートに沢山書いてある。表題の件は一度だけ画像を試したけどそんなことなかったように思う。解決済みかな? 消費メモリの件はメモリ増やしましょうというより他ないかな。Firefox 1.0.7 for Mac OS X なんかは 210MB も使ってるし。FTP に関しては再現性なし。僕はプロバイダの web スペースのサブディレクトリに公開できた。

  • 1173403: "Edit" entry reformats HTML

    フランス語特有の文字が実体参照になってしまうらしい。しかし、それはロケールの設定が悪いんじゃないのかな。もしフランス特有の文字が実体参照になってしまうなら日本語も当然にそうなるはず。しかしそうはならない。それはロケールが正しいからだ。

  • custom-tag processing

    Custom Tag の値にはテンプレートタグを用いても置き換えは発生しない。そういう作りになっている。これはバグじゃなくて要望だ。

  • 1150917: Handle enter key presses in login dialog

    自分でも書いているけどこれは要望でしょ。

1.0.2 で再現しないもの(解決済み?)
  • 1237846: Ver 1.0.1 backspace key quirk

    BACKSPACE を一つタイプすると二つ分削除されてしまうというものだが、少なくとも Mac OS X 10.4.3 (ja_JP) ではそういう現象は全く見られない。

    追記: 1.0.2 のリリースノートにはこのバグを直したと書いてある。

  • 1225928: Editor quirks

    なんかよくわからないけど、長いエントリ(20行以上)を書いているとカーソルが見えなくなってタイプした文字も見えなくなるらしい。少なくとも Mac OS X 10.4.3 (ja_JP) ではそういう現象は全く見られない。

  • 1162618: Text reversing in HTML editor?

    長いエントリを書いていると文字が右から左という方向で表示されるらしい。少なくとも Mac OS X 10.4.3 (ja_JP) ではそういう現象は全く見られない。

  • 1162618: Text reversing in HTML editor?

    Windows XP SP2 + Java 1.5.0_01 でマウントした WebDAV ボリューム上にローカル型の公開をするときにやたら時間がかかるらしい。少なくとも Mac OS X 10.4.3 (ja_JP) ではそういう現象は全く見られない。

  • 1077275: Posted 12/1/04 shows up as 1/4 in RSS?

    日時の表現は地域によって同じ書式でも意味が違うから何を言っているのかが正確にはわからない。しかし少なくとも Mac OS X 10.4.3 (ja_JP) ではそういう現象は全く見られない。その中で例として書いている URL は Thingamablog によるブログではないのだが…。

その他

というわけで、僕の手元で再現できるものはほとんどが修正済み。ということは Thingamablog 1.0.2-OKAMURA-20051102 のパッチファイルをここに投稿する価値は大きそうだな。

2005年11月10日

フォーラムが表示できないときは Cookie 削除

Thingamablog Forums が一度ダウンしてから復旧のアナウンスがあったのだが、なぜかフォーラムにアクセスできなかった。データベースに何やらエラーが発生してた。

今日、そのアナウンスに付いたコメントに Cookie を削除してみろと書いてあったので削除したら表示されるようになった。Cookie の内容が変わったからのようだ。

同じようにダウン以前にフォーラムを覘いていて、今アクセスできない人はサーバ thingamablog.sourceforge.net の Cookie を削除してみるといいだろう。

2005年11月06日

iBlog から RSS によるインポートの問題点

昨夜、iBlog によるブログ「.Mac Tips」の RSS を一時的に次のように変更して Thingamablog へのインポートを試みた。

  • 既存のエントリ以上のエントリを RSS に書き出すように設定を変更。
  • 公開場所はローカル。
  • 公開後に RSS のエンコードを Shift_JIS に変更。

エントリ数は 354 エントリで、インポート先は新規ブログだ。

その結果、次のような問題点があることがわかった。

  • 空要素がうまく行かない。

    空要素とは開始タグと終了タグが一体になった「その場閉じ」をしている要素のことだ。例えば <br /> とか <img … /> などだ。インポートされたエントリに空要素があると、プレビュー表示においてその部分の末尾に > が表示されてしまう。

    Edit モードでエントリを書いたとき Edit <HTML> モードに切り替えて生成されたコードを見ると XHTML ではなく HTML になっている。このブログが XHTML になっているのはその HTML コードを close_empty_tags 属性で空要素のその場閉じをさせているからだ。つまり Thingamablog ではエントリの HTML コードは XHTML ではなく HTML になっているのだから仕方ないのかも。

  • 公開できないか膨大な時間がかかる。

    最初は FTP で publish をしようとしたのだが、いくら待っても一つも転送が始まらない。netstat で見ると FTP セッションは張られているのはわかる。そのうちサーバがタイムアウトでセッションを切ってしまったのだが Thingamablog には表示上変化が現れない。

    一度に大量のエントリを publish するのだから前処理に時間がかかっているのだろうと思い、ローカルへの publish に切り替えてみた。これで転送に関するタイムラグは問題にならない。

    しかし同じようにいくら待っても転送(というより書き出し)が一つも行われない。今度は辛抱強く待ってみた。top コマンドで CPU 使用率をモニターしながら。かなりの時間 CPU をがんがん使っていたのだが、あるときからほとんど使われなくなった。しかし一つも転送が行われていない。要するに何かの例外が発生して処理をやめてしまったのだと思う。

    結局諦めた。少量のエントリだったら成功していたのだが…。

  • カテゴリは付かない。

    対応するカテゴリが存在しないから仕方がないが、それ以前に iBlog の RSS には category 要素がない。category 要素を出すためには iblogPatcher で RSS を細工する必要がある。

  • 投稿日時はインポート日時。

    せっかく RSS に pubDate があるのだからそれを使ってほしいものだ。

  • エントリの著者は付かない。

    iBlog のデフォルトの RSS には author 要素がないが、私の RSS には付けている。ここはメールアドレスなのでスパム避けに実体参照で書いてある。このため Thingamablog 側で設定した Author とはメールアドレスが一致しないからなのだろうか。それともそもそも付かないのだろうか。どちらかはわからないがとにかくエントリに Author は割り当てられなかった。

やっぱり RSS によるインポートで iBlog のエントリをインポートするのには無理がある。

作者にメールを書いてみた

Thingamablog の作者に Thingamablog 1.0.2-OKAMURA-20051102 の patch ファイルの URL とエントリ「Thingamablog 1.0.2 への要望」の翻訳ページの URL を書いてメールを出してみた。

この altavista による翻訳は原文を書いた僕自身が読んでもむちゃくちゃだと思う。意味を汲み取ってもらえるかどうか心配だ。わからなかったらメールで質問してくれるといいなあ。

2005年11月04日

Thingamablog 1.0.2 への要望

ここで一旦、Thingamablog 1.0.2 への要望をまとめてみようと思う。問題は、これらを僕の稚拙な英語でどうやって開発者へ提示するかだ。解決済みの事項は patch ファイルを送りつければいいのか。

解決済みの要望

まず、Thingamablog 1.0.2-OKAMURA-20051102 で解決済みの事項を列挙する。

致命的な事項への要望

ここで致命的とは次のいずれかにあてはまることである。

  1. Thingamanblog を正常に操作できない。

    エラーが発生して操作を続行できないとか、通念上正当な操作に対して不当な結果に陥ること。

  2. 公開されたブログの内容が正常である。

    文字列が文字化けしていたり、ブログのリソースへのリンクなどが間違っていること。

  3. 正当な HTML 4.01 Strict が生成できない、あるいは正当な XHTML 1.0 Strict が生成できないこと。

    テンプレートタグの置き換えによって生成されるコードが HTML 4.01 Strict あるいは XHTML 1.0 Strict で正当なコードにならないこと。どちらか一方のみならば XHTML 1.0 Strict が可能であることが望ましい。そのテンプレートタグの属性によって可能であってもよい。

これを損なう事項への要望は次のとおり。

  • RSS の lastBuildDate および pubDate 要素におけるタイムゾーンの表記をどの正当なロケールでも RFC 822 に従うようにしてほしい。
  • Character Encoding が UTF-8 で Transport Type が FTP のとき、一部の文字が文字化けするバグを解消してほしい。
Web アクセシビリティの低下を招く事項への要望

例えば日時の表記はロケールによってばらつきがあるだけでなく、よく使われる表記であっても読み上げた際に日時とは判別しにくい場合がある。例えば、日本語の場合「2005.11」は 2005年11月 のことなのか 2005.11 という数値のことなのかは文脈によってのみ判断可能である。ところがこれがカレンダー(table 要素)のキャプションとしていきなり読み上げられると、読み上げブラウザのユーザは、その読み上げられた内容が正しいかどうかを判断するためにその後を読み上げさせなければならない。ところがカレンダーは視覚的表現であるためすぐには 2005年11月 のことであったと理解することが困難かもしれない。したがってカレンダーのキャプションは日本語の場合「2005年11月」とした方が明示的である。

このように Web アクセシビリティに配慮したページを作成する、それを妨げる事項に対する要望は以下のとおりである。

解消されることが望ましい事項への要望

致命的でもなく、(仕様に従ったブラウザであれば) Web アクセシビリティを低下させるわけでもないが、閲覧者の帯域幅などのネットワーク環境や利用システムなどについて相互運用性を考慮すると解消されることが望ましい事項への要望は次のとおりである。

  • Hypertext Tags 型のテンプレートタグにおいて、encode_html および strip_html 属性を真にしたときに、非 7bit 文字が実体参照にならないようにしてほしい。

私がした改善は、Thingamablog ユーザに利する改善ではなく、公開されたブログの閲覧者に利する改善であることがわかると思う。公開されたウェブサイトを運営する身としてはこれを第一に考えたいと思っているからである。

未解決の要望

Thingamablog 1.0.2-OKAMURA-20051102 でも解決されていない事項で私が気付いているものを分類して列挙する。

ユーザビリティの著しい低下を招く事項への要望

Thingamablog を使用する上でユーザビリティを著しく低下させるために Thingamablog の利用を妨げかねない事項のこと。

  • 日本語環境の Mac OS X 10.4 において、仮名漢字変換がタイピングのスピードに追いつかないのを解消してほしい。

    エントリ「仮名漢字変換が追いつかない」で書いたことだが、HTML を直接編集するモードでは若干緩和されるものの同様である。

    このため、エディタで HTML を直接書いてからそれをコピーしてエントリ編集画面(Edit <HTML> モード)にペーストしている。Edit モードの場合はペーストしてからスタイルを手直ししたりリンクを入れなければならない。かなり苦痛。

  • タイプしていない改行とインデントが HTML コードに生じるのを改善してほしい。

    これもエントリ「同意のない挿入は嫌」で書いたが、Edit <HTML> じゃなく Edit モードで書いたときに無意味どころか意味すら変えてしまうように空白類が挿入される。これが URL やコードを書いた部分に生じるとかなり致命的である。

解消されることが望ましい事項への要望
  • [Weblog]-[Configure Weblog...] で開くブログの設定の [Archiving] において、[Archive List Format] の設定値が、一旦 同ウィンドウを閉じると GUI に反映されていないバグを解消してほしい。

    うっかり設定を変えてしまいそう。

  • [Weblog]-[Configure Weblog...] で開くブログの設定の [Pinging] で更新 Ping 先のチェックを外したり付けたりすることなしに自動 Ping を抑制できるようにしてほしい。

    単なるスペルミスなどの修正を繰り返すときに何度も更新 Ping を送信してしまう。これを避けるために設定を変更すると全エントリの再アップロードが行われる。

  • Edit <HTML> モードでエントリを書いたときに tab がスペースに変換されるのをやめてほしい。

    あとで修正するときにかなり不便。

  • Edit <HTML> モードでエントリを書いたときに 空行や入力と異なるインデントに変えてしまうのをやめてほしい。

    あとで修正するときにかなり不便。

単なる要望
  • Transport Type に WebDAV を加えてほしい。

2005年11月03日

2005年11月02日

Mac_Stripe-XHTML_Strict-ja の 2005年11月02日更新のお知らせ

XHTML 1.0 Strict なブログにするためのテンプレートと、それのサンプル CSS のセット Mac_Stripe-XHTML_Strict-ja を更新しました。更新内容は次のとおりです。

archive.template
title 要素と h1 要素から "年" を除いた。
archive.template, main.template
カレンダーの captioin 要素から "年" を除いた。
archive.template, category.template
ArchiveList コンテナの format 属性を廃止。
archive.template, category.template, entry.template, index.template, main.template
Custom Tag <$NavigationItems$> の追加
category.template, main.template
サイド項目の見出しの h2 要素から class="sidetitle" を除いた。
index.template
ArchiveYear コンテナの format 属性を廃止。
poweredby.template
Thingamablog 1.0.2-OKAMURA-20051025 から Thingamablog 1.0.2-OKAMURA-20051102 へのリンクに差し替えた。

Thingamablog 1.0.2-OKAMURA-20051102 による改善に伴い、若干、テンプレートを簡潔にしたのが主旨です。

Thingamablog 1.0.2-OKAMURA-20051102

概要

Thingamablog 1.0.2-OKAMURA-20051031 から更に修正を加えたスペシャルエディション Thingamablog 1.0.2-OKAMURA-20051102 をリリースします。

  • Calendar コンテナの中のテンプレートタグ <$MonthLabel$> を Basic 型から Date 型に変更した。

    <$MonthLabel$> はこれまで "10月 2005" というように英語式の月の表記をそのまま日本語にしただけの文字列に置き換えられていて、しかもその書式を変更することができませんでした。

    <$MonthLabel$> が Date 型のテンプレートタグになったことで例えば <$MonthLabel format="yyyy年MM月"$> とテンプレートに表記することで "2005年10月" に置き換えられるようになります。

  • Archiving 設定に言語独自の "Archive List Format" をプロパティによって追加可能にした。

    [Weblog]-[Configure Weblog...] から開くブログの設定パネルの [Archiving] タブに、[Archive List format] というコンボボックスがあります。ここの値によって Archive ページのタイトル <$PageTitle$> や ArchiveList コンテナの中のアーカイブページへリンクする文字列 <$ArchiveName$> が決まってきます。しかし、ここには "yyyy年MM月" のような言語環境依存の項目はありませんでした。

    <$ArchiveName$> は ArchiveList コンテナの開始タグ <ArchiveList> に format 属性を付けることで制御できますが、<$PageTitle$> は上記コンボボックスで選択できる書式に限定されています。このため "2005年10月" というような日本語の日付として明示的な書式を指定できませんでした。

    ここに当該言語のメッセージプロパティによって独自の書式を指定できるようにしました。これにより "2005年10月" というような日本語の日付として明示的な書式を設定することができます。このプロパティの設定方法については後述します。

  • 日本語環境(ja)における上記プロパティのデフォルトを組み込んだ。

    上記メッセージプロパティの日本語のデフォルトを作成し、[Archive Type] が [Monthly] のときには "yyyy年MM月"、それ以外のときには "yyyy年MM月dd日 - yyyy年MM月dd日" という書式が選択可能にしてあります。

これにより全てのページにおいて日本語の日付として明示的な日時の表記が可能になります。

Archive List format のプロパティ

Thingamablog のアプリ自体をローカライズする際に作成/変更するメッセージプロパティファイルというものがあります。このファイルについては Thingamablog の FAQ ページ の「How can I translate Thingamablog to my native language?」という項目に記述されています。message.properties というファイルがデフォルトのファイルですが、message_言語記号.properties というファイルを追加するとその言語記号に応じた言語環境の用のメッセージの文字列を項目毎に定義できます。日本語の場合には message_ja.properties というファイルになります。

これらのファイルに設定可能な項目として次を追加しました。

  • TBArchivingPanel.RangeFormat.Monthly
  • TBArchivingPanel.RangeFormat.Monthly.span
  • TBArchivingPanel.RangeFormat.WeeklyDay
  • TBArchivingPanel.RangeFormat.WeeklyDay.span

それぞれについて説明していきます。

TBArchivingPanel.RangeFormat.Monthly

[Archive Type] が [Monthly] のときの書式を設定する項目です。日本語の場合に限って "yyyy年MM月" がデフォルトの値として設定されています。

使用する言語環境に対応するプロパティにこの項目が定義されていないときは、Thingamablog オリジナルの書式からしか選択できません。

TBArchivingPanel.RangeFormat.Monthly.span

[Archive Type] が [Monthly] のときの書式を期間の両端とするかどうかを設定する項目です。これの値が "true" のとき、そのときに限って TBArchivingPanel.RangeFormat.Monthly で設定した書式が、"-" (ハイフン) を用いて期間の書式として扱われます。

Thingamablog オリジナルの [Archive List format] に例えば "MMMM, dd yyyy - MMMM, dd yyyy" という選択肢があります。これは "MMMM, dd yyyy" という書式が期間として扱われているのです。

使用する言語環境に対応するプロパティにこの項目が定義されていないときやその値が大文字小文字も含めて "true" でないときは期間として扱われません。デフォルトでは日本語に対しても設定されていません。

TBArchivingPanel.RangeFormat.WeeklyDay

[Archive Type] が [Weekly] または [Day Interval] のときの書式を設定する項目です。日本語の場合に限って "yyyy年MM月dd日" がデフォルトの値として設定されています。

使用する言語環境に対応するプロパティにこの項目が定義されていないときは、Thingamablog オリジナルの書式からしか選択できません。

TBArchivingPanel.RangeFormat.WeeklyDay.span

[Archive Type] が [Weekly] または [Day Interval] のときの書式を期間の両端とするかどうかを設定する項目です。これの値が "true" のとき、そのときに限って TBArchivingPanel.RangeFormat.Weekly で設定した書式が、"-" (ハイフン) を用いて期間の書式として扱われます。

Thingamablog オリジナルの [Archive List format] に例えば "MMMM, dd yyyy - MMMM, dd yyyy" という選択肢があります。これは "MMMM, dd yyyy" という書式が期間として扱われているのです。

使用する言語環境に対応するプロパティにこの項目が定義されていないときやその値が大文字小文字も含めて "true" でないときは期間として扱われません。デフォルトでは日本語に対して "true" が設定してあります。

これらは新規のプロパティなので lib/lang.zip にカスタマイズしたものを使用していても影響ありません。

配布ファイル

配布ファイルは以下の通りです。

thingamablog.jar
コンパイルした Thingamablog 本体です。
thingamablog-1.0.2-OKAMURA-20051102.patch
Thingamablog のソースのパッチファイルです。パッチファイルとは変更内容を記載したファイルで、オリジナルに対して patch コマンドを使用すると変更が適用されます。このパッチファイルはオリジナルのソースに対して適用してください。

使い方

配布ファイルの使い方を説明します。

thingamablog.jar.gz
  1. Thingamablog 1.0.2 を終了する。

    もし Thingamablog 1.0.2 を起動しているのでしたらそれを終了させてください。

  2. オリジナルの thingamablog.jar を退避する。

    Thingamablog 1.0.2 をインストールしたディレクトリの thingamablog.jar を thingamablog.orig.jar とリネームします。

  3. thingamablog.jar.gz を解凍する。

    thingamablog.jar が生成されます。

  4. thingamablog.jar をオリジナルと入れ替える。

    解凍してできた thingamablog.jar を Thingamablog 1.0.2 をインストールしたディレクトリにコピーまたは移動してください。

以後、オリジナルと同じ手順で Thingamablog を起動すると、このスペシャルエディションが起動されます。

thingamablog-1.0.2-OKAMURA-200511102.patch.gz

まず Thingamablog 1.0.2 のソースアーカイブをダウンロードします。そのアーカイブファイルは thingamablog-1.0.2-src.zip です。以後、このファイルをカレントディレクトリにダウンロードしたものとします。

カレントディレクトリにダウンロードした thingamablog-1.0.2-OKAMURA-20051102.patch.gz を置きます。

そしてシェルで次のようにしてください。

unzip thingamablog-1.0.2-src.zip
gzcat thingamablog-1.0.2-OKAMURA-200511102.patch.gz |\
patch -p0

これでソースが展開されたディレクトリ thingamablog-1.0.2 にパッチが適用された状態になります。

パッチが適用されるとオリジナルにはないディレクトリ src/net/sf/thingamablog/i18n/ が作成されて、そこに message_ja.properties というファイルが作成されます。これが日本語のメッセージプロパティのデフォルトを定義しています。

バグ

このバージョンには次のバグがあることがわかっています。

  • [Weblog]-[Configure Weblog...] から開くブログの設定パネルの [Archiving] タブの [Archive List format] で、言語環境依存の書式を選択した際に、その設定は保存されるのだが、次に同タブを開いたときに選択されていない。

    追記: このバグは始めからのようです。

このため言語環境依存の書式を選択した場合は、ブログの設定を更新するときに毎回選択し直さなければなりません。