October 2006

October 23 Monday 2006

翻訳データベース関連URL

色々整理中。消去予定のサイトから使えるものを抽出しておきます。

パピヨンプロジェクト。多言語語彙データベース。更新とかはどうなっているんだろう?

Babel Fish Translation。バベルフィッシュっていうのは『銀河ヒッチハイクガイド』に出て来たキャラというかグッズというか、そういうものですね。映画まだ観てないなあ、そういえば。

本名データベース。著名人の本名を調べるためのデータベース。

September 2006

September 17 Sunday 2006

文法的にはどうなんだろう?

言っていることはすごく沁みるのだけど。


そういえば画像貼りつけに関しては結局前から大丈夫だったところはそのまま大丈夫で、ダメだったところはダメなままとなっただけだった。あんまり弄った意味は無かった模様。でも、もう面倒なのでそのままにしておきます。

ちなみに貼付けた画像の漢詩は菅原道真公の「勧吟詩、寄紀秀才」というものらしい。確認していないのでよくわかりませんけど。

楽譜用TeX

フリーの楽譜作成用ソフトを探してみたところ、結局TeXを使うしかないらしいことがわかりました。

MusixTeX

上記サイトで一応日本語解説などをしてくださっています。でも正直前途多難(笑)。縦横に使いこなせれば最高なのはわかっているんですけどね。そこに至るまでの道がイバラすぎて踏ん切りがつかないといいますか。

September 6 Wednesday 2006

久々の更新

長らく放置してましたが、ボチボチ再利用していこうかと思います。学究用サイト(?)からリンクも 貼ってあるので、こちらにはそれ関連のメモなど。主に先行研究などについての緩い感想なんかを書いて いくことになると思います。

ここを見ている人はかなり少ないでしょうし、そもそもWindows&IEという世間でもっとも多いであろう 組み合わせに対応していませんし。テキトーにメモ書きしてても大丈夫じゃないかと。

つまり自分が読む環境でオカシクなければ別に良いか...という感じでやっていきます。ただ、それでもやはり 画像を含んだときにRSS配信がおかしくなる問題だけはなんとかしておかないとアンマリなのでそれだけは 修正を試みてます。うまくいったのか行かなかったのか。

画像貼りつけテスト

そもそも今までどういう対応をしていたのか記憶にないので困りましたが、とりあえず普通に貼付けてみます。


ああ、そうか。画像を表示するとエラーになるので<画像>という文字列と置き換えてからRSS配信するように してたんですね。それをもとに戻してからテストしないといけないのか。面倒だなあ。

順列・組み合わせの表記法

そういうわけで、早速先行研究関連でヒトコト。「確率」で用いる「順列(permutation)」と「組み合わせ(combination)」の表記法に関することなんですけど。

ええと『計量情報学』の出だし付近で二項分布関連の数式が出てきます。こんな感じ↓のです。


参考までにこの数式が出てくる直前の部分(p.14)を引用してみますね。なお原文通りにするのが技術的&心情的に不可能な箇所は改変しました。アンダーバーは右下に添字するという意味ですので脳内補完してください。句点と読点は日本語正書法に従って変えています。

今、壷の中のボールに書かれているS個の数字のうち、ある数字e_iに注目することとする。壷全体でN_p個あるボールのうち、この数字が書かれたボールがk個壷の中にあるとして、k/N_p=p_iと表そう。さて、壷から復元抽出によりN個のボールを取りだしたときに、そのN個の中でe_iという数字が書かれているボールの数を確率変数Xと見なすと、数字e_iの書かれたボールがN個の中のちょうどm個である確率は、

初見でわかりにくい用語は「復元抽出」くらいでしょうか。この場合でいうとこれは取り出したボールはもとに戻してから次のを取り出すという方法のことです。引用部分は文の途中で終っていますが最後の「確率は、」の「確率」がPr(X=m)を指しています。確率変数XがmであるPrということでPrはprobabilityのことですね。

「(サンプル抽出した)N個の中でe_iという数字が書かれているボールの数」が「確率変数X」であり、それが「ちょうどm個」ということなので「出現率」と「出現しない率」がちょうど良い塩梅じゃないといけないことも感覚的にわかりやすく理解が容易な感じにも見えるのですが、一カ所だけ「謎」っぽい部分があります。いや、私は「ある」と思ったんですけど、どうなんですかね。

この本の「本書の構成と対象読者」のところに「確率・統計の基本的な用語および確率論に関する初歩の知識があった方がわかりやすいであろう(p.7)」とあるので、単に私が対象読者のレベルに達していないだけかもしれないですけど。

ちなみにどこが「謎」なのかというと行列というかベクトルみたいな部分です。カッコ内でNとmが縦に並んでいる部分。これって何かというと combination を表しているんですね(combinations と書いた方が良いのかな?)。N個のなかからm個取り出した場合の combinations を表しているわけですよ。

だからもうちょっとわかりやすく書くとこうなる↓わけです。


そしてどうしてこうなるか...について少年(←!)だったころの朧げな記憶を呼び覚ましてみると、確か permutations を利用してどうにかしたような。この件に即して具体的にいうと次のような感じでしょうか。

N個の中からm個を取り出す場合の permutations はN個の中からm個取り出す combinations の結果に対してm個の中からm個を取り出す permutations を行った結果であるとも考えられる。よって以下のような感じになる(←投げやりだな:笑)。


1行目はN個の中からm個取り出す permutations を求める式です。「!」は階乗を表します。N=10でm=3とかなら10×9×8となりますが、これは感覚的にわかるんじゃないかと。2行目と3行目で combinations を permutations で表しています(←こんな変な表現で良いのだろうか)。4行目は一応参考として0の階乗が1であることをメモしたものです。5行目は1行目のNにmを入れたら自ずと導きだされる式ですが3行目理解の助け(?)として一応書いておきました。

ただこうして書いたり考えたりしてみても最初に感じた「謎」は残ってしまうんですよね。上の式で私は「N個の中からm個取り出すcombinations」についてC(N,m)と書いています。昔ガッコーで習ったときには大文字Cの左下にNを、右下にmを小さく書くというやり方をしていました。ちなみに permutations なら真ん中の大文字はPになります。C(N,m)とかP(N,m)とかいうように書く方が「今風なのだと最近知った」&「TeXで表記しやすい」ことから私もこの書き方に直したのですけど、影浦先生の数式はそれとも違う表記法なわけです。

ただ一応の理由付けとして「Baayenがそう書いているからじゃないか?」というのは思いつきます。Baayenは名著『Word Frequency Distributions』の中で combinations をああいう形で表記すると(例えばp.41のDefinition2.6などで)定義して使っていますのでそれに倣ったと考えれば不思議でもなんでもないかもしれません。

でも私はBaayenの著作を持ってましたのでピンときましたが影浦先生の著作しか持っていないヒトで私のようなボテボテ(?)の文系には最初の躓きの石になるかもしれないなあ、という感想をやはり持ちます。まあ隣のページ(p.15)を見れば式の展開の中で該当する部分がありますからそこを参照すれば自力で理解できるのかもしれませんが。

・・・とここまで書いてからおもむろに『すぐわかる統計用語』で「2項分布(binominal distribution)」を見たら影浦先生(及びBaayen)みたく combinations の部分を表記してますね。ああ、これは非常にフツーの書き方ということなのか(滝汗)。

あと今この文章を書いていてつくづく思ったのですけど、どうしてHTMLってTeXより後に開発されたくせにTeXの数式タグに対応してくれていないんですかね。ま、考えるまでもなく理由は想像つきますけど(笑?)。

April 2006

April 10 Monday 2006

名前空間関係かも

画像をRSS用XMLで配信できない(できる場合もあるけどエラーになる場合もある) という問題なのですが、XML定義というかRSS2.0ですよと定義している部分の名前空間 関係で何か足りないのかもしれないと思い至りました。

Podcastingの時も何か余分に書き込むみたいだったし。...とはいえ直す気力がないですけど。 ちょっと他に急ぎで色々やらないと拙いので。

ブログ移転など

メインブログにしていたココログなのですが、あまりに対応が酷いので移転を考えています。 ココがもっと開発進んでたら完全にここだけでやっていくんですけどね。そうもいきません。

一応FC2というところにデータを移したのですが、色々失敗している箇所もあってその修正が また面倒だったりしてます。とにかく面倒が多いなあ。面倒は嫌いなのに。

ただその過程でまた色々学びました。エクスポート&インポート用のテキストデータ記法を 色々眺めて参考になったと言いますか。TB捏造&コメント捏造...というと人聞きが悪いですけど、 一旦受けたTBやコメントを別の場所に移したりまとめたりするのが簡単に出来ることがわかって 良かったなあ、とか思ってます。

近々実験してみます。

March 2006

March 28 Tuesday 2006

画像が問題か...

やはり画像表示部分をRSS用XMLにしたときにエラーが出ている模様。

以下テスト。


ちょっと工夫してみたのだけど、どうだろうか。どうも駄目くさいな。imgタグを別のものに置き換える (「図像」という文字列とか)仕様にするのが当面手っ取り早いかもしれない。

Whipuptitude & Manipulexity

こちらで訳語を募集 しているそうなので、一応私も考えてみました。何かもう似たようなのはコメント欄などで出ている ようでしたが。

Whipuptitude→即行性
Manipulexity→精確性

って感じですかね。他の漢字文化圏ではこれがどういう意味になるのかはわかりませんけど。 あ、でも一応Exciteで翻訳してみますか。

(注)
精確性→精確性

微妙な感じですけど。

またRSSの不具合

上にあるExcite翻訳の結果引用部分にある「(注)」には「即効性→立即實行性」と書いてありました。 これが不思議なことに何かに引っかかるらしい。

XML パースエラー: 整形式になっていません。

上記のようなエラーメッセージが出ますが意味が分かりません。翻訳ページで 出力された繁体字をそのまま持って来たのが悪いのだろうか?と思って普通の日本 漢字で打ち直しましたけど同じエラーが出ます。

そこで「立即實行性」を削ったら今度は「即行性→」の方で同じエラーが出てます。しかたが ないので全て削除したら今度は問題なくRSS用XMLが生成されました。本当にわけがわかりません。

あとWhipuptitude云々についてを当該ページにTBしようとしたら「ページが存在しません」という アラートが返ってきました。拒否設定になっているとそんなのが返ってくるんでしょうか?やっぱり これもわけわかりません。

わけわからんことだらけだなあ...。

<図像>に置き換え

結局imgタグを「<図像>」というのに置き換えてRSS用XMLを生成する仕様に変えました。 普通に画像を配信できているのもあるので、何か方法はあるのでしょう。一応私がここで 生成しているのはRSS2.0準拠なんですけど、ATOMとかだと大丈夫とかそういうのがある のでしょうか。よくわかりません。全く手探りなので。

あとついでに気になっていた「...more >>」という表示を改行して右隅に「More >>」と 表示するように改変しました。以前のものだとindex.htmlの文字数によっては変なところで 改行してしまったりして見難かったので。

March 27 Monday 2006

Perl & XML

日本語版も2002年に出ていたとは。この間まで知りませんでした。


今ツラツラ読んでます。日本語は読みやすいなあ(笑)。ただ訳語なんかでわかりにくいのもあったり。 英語の問題というよりはGeek界の常識を私が知らないせいという感じですけど。

以前SGMLだとかTEIだとか云々についてはざっと先行研究を斜め読みした時期もあって、比較的歴史的 経緯に関する部分は理解しやすかったな、と思いました。閉じるタグを省略するせいで色々問題があった (←SGMLやそのアプリケーションであるHTMLについて)という指摘は私もかなり同意できますし。

XMLがきちんと閉じるタグを必須にしているために一意に決まる構造だというのは良いと思う。ただ それに気づくのにある程度時間がかかっているのはどうかとも思う。たぶんすべての計算機言語の母体 (と言って良いと思う)である英語自身がそういう特徴を持っているからなんじゃないかな。中途半端 にしかマークしないよね、そういうの。もともとあの系統の言語は一致システムだったからかもしれない けど。

せめて書き言葉にするときには発音に関係ないけど例えば関係詞節の末端を示す記号をつけるとかそういう 風に正書法を決められなかったのかね?とか思う。かなり読みやすくなると思うけど。というか、末端どころ か開始を示すものすら省略しやがるもんな(え?あーそーですよ。英語できませんよ、ええ)。

今後

このページ作成用CGIの進捗についてだけ書くのも辛いので(←進捗がないと書けない)適当な思いつきなど についてもここに書いて行くことにします。放置しっぱなしにするよりは良いと思うので。

変な不具合

久々に更新したらまた変な不具合がたくさん出てきました。bloglines(RSSリーダサービスサイト)でエラー が出てます。エラーの理由は読みに行ったフィードがRSS形式ではないから、だとか。validityチェックした結果 は特に問題はないようだったけど(itemタグの中にリンクがあると何か警告はでるようだが)。

あとPulpFiction Lite(RSSリーダソフト)で読むと画像が右端に寄ってしまう。試しにalign = leftを入れてみた けど効果無しだった。ほんとわけわかんなくて嫌になる。いつものことだけど。

March 5 Sunday 2006

月渡りに関する改修

いくつか案はありますが。

月名と年が入った<h1>タグを始点にしてcontinueやindexcutを切り出しているのですが、 もともとのスクリプトだと<h1>タグが複数箇所出てくるとそれに対応した複数箇所(つまり 各月最後に更新したcontinueやindexcutの範囲)を抜き出してきてしまうという問題が起きて ました。

複数回パターンマッチを行うのが問題と考えてgオプションをoに変えるということをやれば 良いのか?と思って変更したところスクリプトが終了しない状態に入ってしまいました。

そこでもう一度全体をチェックしたところindex.htmlを生成する部分はgでもoでも最新の範囲 を一カ所だけ抜き出してくる(つまり私の期待した通りの結果を返す)のに対してindex2.html を出力する部分ではgなら複数箇所、oなら未終了状態という不具合が発生するようでした。

同じような作業をしているはずなのになぜ?と思ってよく見たところ後者ではifではなくwhileで 条件分けしていました。これが原因かな?と思ってifに直したところ期待通りの結果になりました。

わかったような、わからないような...。

RSSの改修

そういえば前回の27日分にちょっと書いた「邪道なアイディア」ですが、2月27日分はネットに置くのを 忘れていましたので、ここからリンク

現在はRSSで記事情報を一つ分しか配信していないというやや異常な仕様になっています。そのためかわかりません がfeedmeterでは記事更新頻度の測定が不能とされてしまうようです。最終的には複数記事を適当な数指定して配信 できるようにするべきなのでしょう。

ところで前回の日記で更新時刻表示を消して、またRSSで配信する更新時刻も00:00:00に固定することにしました。 そうするとlocaltimeなどを使わなくてもRSSで配信する更新日時情報は記入可能になります。

<pubDate>タグが必要としている情報はたとえばこんな感じです。

Sun, 05 Mar 2006 00:00:00 +0900

このうち、変動するのは「Sun, 05 Mar 2006」だけで、しかも当面は「Sun, 05 Mar」だけです。これだけの情報なら 各日付の日記冒頭の一行(例:March 5 Sunday)から抜き出してこられます。月名や曜日名は先頭から3文字分 という指定で取り出せるし、日付はsprintfで二桁指定すれば問題ありません。

上記の通り「邪道」なやり方でRSSを吐き出させたところ一応うまくいった模様です。あと以前に二桁指定は「%2d」で 問題ないのではないか?と書きましたがやはり「%02d」とやらないと駄目みたいでした。

京ぽんで見た場合など対策

Windows&IEのようなケースは放っておくとして(←!)京ぽん&opera対策は考えたいなあ、と思っています。特に問題というほどのことはないのですが<h1>タグで表示される字が大きすぎてバカみたいになっているのが気になります。

別の用途で作ったCSSというかスタイルシートをそのまま流用しているので<h1>と<h3>タグしか使っていないというかなり妙なことになっています。<h2>タグを現在<h1>タグを使って表示しているような感じにして、そっちを使用 すればスタイルシートに対応していないブラウザでも見やすくなるかもしれません。

今すぐ対応はしません(できません?)が、追々対応していきます。...それにしてもWindows&IEで表示してみるとあまりの汚さに落ち込みますよ、実際の話。なんとかならんのでしょうか。ならんのでしょうね。

February 2006

February 27 Monday 2006

微調整

タイトル画像をindex.htmlにリンクさせる部分を削除してしまっていたので修正。それと更新日時を下部に表示している部分の日付関連を削除。Perl scriptの練習というか学習のために入れていたけど、それはRSSの方で生かすことにしよう。

RSSでの時刻

更新時刻を00:00:00に固定してみます。それといくつか邪道なアイディアを試してみます(笑)。

footnote

注付け機能について一つアイディアが。<name>タグでtitleを使うのはどうだろう。例えばこの注付き語みたいなのは。記法は<fword>タグみたいなので括って、その中に「注付き語(注の内容)」みたいに書いておくというので良いかな。全角括弧で囲まれた内容をtitleの中身にするということで。

あ、今書いていてちょっと気になったので実験します。前のと同じnameにしてみたのですがどうでしょう。問題ないです。これはさすがに駄目?。・・・大丈夫みたいですね。

February 26 Sunday 2006

サブルーチン化

あまりにも修正がしにくくて作業が滞っていた原因の主要なもの...スクリプトの冗長な部分...をサブルーチン化しました。一応って感じですけど。さすがに修正を加えるたびに同じような処理をしている部分を複数箇所繰り返し変更していくという煩雑かつ無意味な作業には耐えられませんでした。

とはいえ、相変わらずスクリプトはヒドイ(笑)。グローバル変数オンリー。だってメンドーなんですもん。myとか使って値の受け渡しがどーのこーのとか。ちゃんとやらないとマズイのは知ってますけど。

このあたりの私の行動を見て「キミは何か別の計算機言語のクセが抜けてないのでは?」と言われたりすることがあるのですけど、こんな汚くてだらしない書き方をしてしまうのは単に私のヒトトナリのせいであって計算機言語を使うときだけじゃなくて自然言語で書いててもそんな感じのような...(←開き直り)。

冗談はさておき、このサブルーチンを使ったhtml書き出し部分の処理もいずれ幾分きちんとしたものにしておかないと、最終的に一つのスクリプトにまとめる際に問題を起こしそうです。ちなみに現時点では3つのパート(日記全体作成、index.html作成、RSS作成)に分割しています。それぞれの機能を色々弄る関係でこうしているわけですが、三つとも共通する処理を多く含んでいるので一体化したときにそこが冗長になります。この冗長部分を調整してうまくサブルーチン化しなくてはいけないのですけれど、どうなることやら。

アクセス制限が効いてない模様

予想通りではありますが(萎)。すっかり慣れてしまってもはや怒る気力もない。それにしてもiDiskへの転送も遅すぎるし、なんとかならんのかなあ。過去の経緯とか見てても全く期待できないことはよくわかってますが(笑)。アップルもどこか技術のあるところにアウトソーシングすれば良いのに。たとえばライブ(ry

February 24 Friday 2006

index.html関連の修正

しばらく放ってしまってましたが小さく修正。indexcutタグの前にcontinueは無いが後ろにはある...そのためindex.htmlの生成が変になる、という問題に一応対処しました。

アクセス制限

ところでこのページは.Macに置いてあるのでアクセス制限が可能なはずなんだけど、どうだろうか。うまく作動しているのかな。とにかくココのサービスは信用ならない。ワザと嫌がらせしてるのか?と思うときが結構ある。

それと年がら年中仕様変更をするのでいつまでたっても操作がわからん。

プロジェクト進捗情況

で、今後の改良予定点メモ。

◇ HTML書き出し部分の冗長なところをサブルーチン化する
◇ bookmarksの「...more>>」を改行してから書く仕様に変える

あと検討中の内容メモ。

◇ RSSに出力する更新時刻を00:00:00固定にする
◇ bookmarksの情報タグ記法を「@朝日新聞:」のようにする
◇ bookmarksの記法でhttp:云々の前に<br>を入れないようにする
◇ bookmarksの検索ツールは該当部分プラス38字を抜き出す
◇ Diaryを検索するKWICツールを作る

ところでWindowsで見るとこのリストはやっぱり左に飛び出して見えるのだろうか?CSSというかスタイルシートというか外部スタイルシートというのか外部CSSというのかなんか知らないけど、そういうアレの書き方とかよくわからんなあ。どこかに三行くらいでわかるように書いてないかな。

February 15 Wednesday 2006

sprintf

吐き出したRSSをvalidatorでチェックしたらエラーが出てました。一つは<image>タグの中に必須の<title>タグ が入っていないという点。

私が使っているRSSリーダ(PulpFiction Lite)ではこのimageは表示されないのであんまり関係ないのですが、Bloglinesとかで見るとちょっと寂しい気もしたので入れてみました。imageを表示するだけなのでtitleはいらないだろうと思って(←なるべくタグを削ってみようと試みてます:笑)チャレンジしたものだったので、これは想定の範囲内。

この他に二つのvalidatorでチェックして一方ではエラーにされなかったのですが、時刻記述関連で問題が出ました。こっちはやや想定外です。時分秒をそれぞれ必ず2ケタ(つまり1ケタのときは0付きで書かれる)ようにしなくてはいけないということのようでした。

sprintfを使ってこのあたりの調整はできるみたい。ラクダ本(邦訳2版pp.255-256)にはこう書いてありますね。

sprintf FORMAT, LIST

で、これはこれで良いのですけどフォーマットに使うフィールド指定子の形は大体(?)「%m.nx」だとか。xに当たるのはフィールドのタイプでdは10進数、sが文字列だそうな。mとnはサイズを表し...と書いてあるのですがこれがちょっとピンとこない。数字を2桁に...ってときにはmを省略したカタチになるんですかね。

ネットでググって用例をみたら指定子は「%02d」となってたんですけど。これって「%2d」だとダメなのかな?試してみたけど特に問題はないような...。

February 14 Tuesday 2006

捏造TBについて

ココログの方に書いてみました。ピンポイントTBはこのブログ風手作り日記ツールにとっても 良い発見だったかな、と。なんとなくこうして小見出しをつけて書くスタイルをとっているので、 まあ、そんな場合はあんまりないとは思うのですけど、何かTBしたくなったときにはこういう見出し 内記述単位で出来ますからね。

でもやっぱり問題もあって、dia.htmlの貼り変えをしたときにTB先に送付したURLも無効になって しまうんですけどね。ま、それはそれかも。

February 13 Monday 2006

色々整理整頓中

一気に色々やったのでかなりトッチラばっています。そういうわけで(?)とりあえずタイトル画像 あたりを直しました。デザイン能力とか皆無で泣ける。スタイルシートとかも全然ダメだし。

やっぱりPerlを使っている以上ラクダを入れたいという願望はありまして、なんかググってみたら オライリーにメール出して許諾とった方とかもいるんですね。うーん、そこまでしないとダメなのか、 やっぱり。

GNUの「パスカルとGNU」みたいな絵も大好きで、出来れば使いたいんだけどあっちもなんか色々 面倒臭そうなんですよね。GPLとかなんとか言って。私のようなザ・雑な人間にはチンプンカンプン ですわ。

で、一応ラクダは使ってますけどシルエットにしました。日本ということとラクダということでコレに してみたんですけど、コレだってやっぱりアレかな?色んな方面に許可とらんとダメなんだろうか。 日本語が通じるのは良いけど、こっちはこっちで理屈が通じない可能性もあるしなあ。ホント嫌になるよ。 ま、話してみたらあっさりかもしれんけど。なにぶん「開発中(笑)」なので筋を通すにもアレだし。

計算機関係でも何でもそうかもしれないんですけど、大雑把に機能とかつけてデッチあげるのは簡単なんです よね、割と。すぐにできる。でも仕上げ的な部分が猛烈に大変で時間も手間もかかるんですけど、計算機の こととかよくわからん人には通じなかったりするんですよね、こここそが。

インターフェイスの練り込みというか使い勝手のバリとりというか。

タイトル画像の活用

そういうわけで(?)タイトル画像をただの画像として使うだけではデザイン的に無駄なので、index.html へのリンクを貼ることにしました。index.htmlのタイトル以外は、ということですが。

機能を減らさず直感的に使えて猶且つゴチャゴチャしていない...というのが理想なわけですが、ホント難しい ですわ。Corpusの項目とPermalinkが(やっていることは違うけど)同じような結果になってしまっている点 も無駄っぽいので、何か考えます。CorpusはCorporaにしてdia.htmlを張り替えたときの日付+dia.htmlファイル 群へのリンク集ファイルへのリンクにするかな。なんかゴチャゴチャした書き方になってますが(萎)。

February 12 Sunday 2006

ブクマも作ってみました

TB受信機能とかを弄ろうとする自分を抑え、とりあえずブクマを作ってみました。まだこっちの方が日常生活なりなんなりと関係があるし、役に立つので。easy_BookMarksです。

カテゴリを表すタグをつけてあとで検索というかマトメたりする機能もつけようとは思うのですが、その場合の 仕様について考え中です。URLの末尾が色々異なるのがアレなんですけどね。面倒ですけどURLの最後の部分にも タグ(閉じるタグ)を記入時につける仕様にすれば簡単だけど、それはちょっとダサい気もするし。

あ!今書いてて思いつきました。改行2連続をパターンマッチの終端にすれば良いだけだ...けど<blockquote>を 使った場合の問題もあるな。それでも。あとタグ表記がタグ表記のつもりじゃない部分と重なったりしないような表記法も考えないといけないし。どうしようかな。

で、以下に一旦ブクマ側の頭に書いたものを引用コピペ。

かなり原始的な方法でやってます。http云々で始まって改行で終わっている ところは根こそぎ抜き出してリンクしてしまうと。ほんとは「改行」までじゃ なくて「html」とかまでに出来たら楽なんですけど、結構URLの最後って色々 ありますからね。「html」だって「htm」とかのヴァリアントがあるし。あと そもそも拡張子で終わっていないケースも意外にあるし。「/」とかnameオプション を使って「#ナニソレ」とか。

丁寧に対応していけば、なんとかなりそうではありますけど、商用ツールを開発 しているわけでもなし。そこはそれ手抜きということで(笑)。

それと日記本体にはこの機能はつけません。誤作動が頻発すると予想されます。 明示的に<a href>タグでリンクを書いたところが軒並みオカシナことになるでしょうし。

ブクマツールの場合には日記以上にはやく全体表示の部分が一枚のHTMLファイルにしては 大きくなりすぎることが予測できるので、そういう場合に「貼り変え」を行う機能を つけておく必要があるかな、と思ってます。これは日記にも使えるでしょうけど。

時期が来たら自動で、というよりは使用者が意図的に(しかしcgiに関連づけられた ボタン一発で)行えるようにすべきかな、と思ってます。古いbkm.html(ブクマ ではdia.txt、dia.htmlはbkm.txt、bkm.htmlに名前を変えてます)のファイル名を その作業をした時点の日時名を頭にくっつけたファイル名にして別フォルダに移し、 そこへのリンクをリスト化して貼ったHTMLファイルを生成(更新)するようにすれ ば良さそうです。

以前に誰かがリンクしたPermalinkは失効してしまいますけど。まあ、それはしかたが ないですな。

...というか、ほんとイイカゲンにしないとヤバイ。こればっかりやり過ぎだよ。(追記:しかも<continue>絡みの新たな問題発生。<indexcut>より前に<continue>が存在しないのに後には存在しているケースを場合わけしないと変なことになってしまうのを発見。マンドクセ)

Perlの参考書

ええと、この部分は他ブログへのTB用です。なんのことやらわからんかもしれませんが(笑)。 コメント欄へのコメントの代わりにTBを使ってみようと。手書きTBの技です。

で、本題のPerlの参考書なんですが「Perlで何をするつもりか?」で全く変わってくるんじゃないでしょうか。 あと修得に許されている時間的余裕の多さとか色々な要素が関係してくるし。私はラクダ本(邦訳の2版と 原書の1版)とデスクトップリファレンスを参照することが多いですけど。ラクダ本の邦訳は今は3版ですが 高いし2冊になってるし、で、どうかと。

一応、アマゾンの「Programming Perl」にリンク。 「Perl 5 デスクトップ リファレンス」にもリンク。

あとは古すぎるし一般的ではないものしか私は読んでません。「MacPerl入門」で文字通りPerlに入門したので思い出深い本ですし好きですが「お勧めか?」と言われたらモニョります。

February 10 Friday 2006

トラックバック送信に成功

とりあえず送信してみただけですけど。生成したRSS用XMLファイルから必要事項を とってきてTB送信するcgiをこれから作ります。そこまでやればとりあえず一旦改良は 中断して安定させるというかスクリプトなんかをきちんとしたものに清書していくことに しよう。

最短パターンマッチ

index.htmlには通常「more>>」が入っていて、ここから最新日付の全文が入った index2.htmlに飛べるようになっています。ただ、場合によっては「more>>」が無い 場合、つまり<continue>タグをいれないケースが考えられます。更新内容が短いにも かかわらず無理矢理「more>>」入りにしなくてはいけない縛りがあってはおかしい。

なので、この問題を解決すべく色々考えました。最初は<continue>が無い場合には index.htmlに何も表示しないでrefleshで強制的にindex2.htmlに飛ぶような仕様にしてみました。 うまくはいったのですが、いかにも変なのでやめました。何事もフツーこそサイコーなので。

それではフツーの人間はどうやるだろう?と考えたところ、<continue>があれば冒頭からそこまで、 なければ<indexcut>までを抜き出してindex.htmlを生成する仕様にするだろうな、と気づきました。 別にindex.htmlとindex2.htmlの内容が同じでいけない理由はないですからね。変人でなおかつ頭が固い というのは非常に生きにくい。愚痴ですが。

前回の日記の最後にちょこっと書いたのですが、新しい日記部分を付け足す都度に毎回もとのものを 消して新しく<continue>や<indexcut>を書かなければいけない点も改善しました。

単純な話で、要は正規表現のパターンマッチを最短マッチにしてしまえば良かったんですね。ただ、 「どうやるんだっけ?」(←大丈夫か、オイ!)とすっかり忘却の彼方なとこだけ困りものでしたが。

パターンマッチは通常最長マッチを行うので、前に書いた位置に<indexcut>が残っていると、新しく 冒頭から近い位置に書いた<indexcut>は無視して、古い方までの文字列にマッチしてしまうわけです。 幸いPerlの場合は実に簡単で「.*」のところを「.*?」とやってやれば良いだけのようです。 名著「正規表現の達人」に書いてありました(笑)。 あ、知らなかったのですがこの本「第2版」っていうのもあるんですね。必要なことだけがシンプルに書いて あるのでホント助かります。

そんなこんなで<indexcut>も<continue>も大抵の場合は一々消してから新たに書く...ということを しなくても大丈夫になりました。また一歩野望に近づいた。

February 9 Thursday 2006

実はもうちょっとちゃんと煮詰めたらβテスター(←!)募集というかツールを 誰かに使って貰って感想を聞こうかなーとか思ってるので、なんですか、他人が すぐに導入しやすいように色々直したりしてるんですよ、スクリプトを。

MacOSXでSiteフォルダ内にcgi-binを作ってそこでCGIを動かせるようにだけして 貰えば(←一応デフォルト設定ではダメでhttpd.confをちょっと書き換えないと いけないのですよ、少なくともPantherまではそうです)あとはそこにフォルダごと 入れてもらって操作用cgiをブラウザから起動してもらえれば動かせるようにして おきたいな、と。

とはいえTerminalとか全く使えないとキビシイかも。あとパーミッションというか chmodコマンドとかの件もあるのでUNIXはちょっと齧っておいて欲しいかもです。

ま、でもそれは最初だけの問題ともいえそうではあります。

いずれにせよ現在自分の環境に依存して動いている部分をもっと一般的な環境でも 動かせるようにしておきたいな、と。ちなみにMacHTTPで動かすのは諦めました。 旧MacOSでのパス記法の違いとか、MacHTTPの処理能力の問題(限界?)とかMacJPerl で作ったCGIの問題(やっぱり限界?)とか対処しきれなさそうだったので。

とりあえずMacOSXに限ってアレコレやってみたのですが、なんか色々問題が炙りだされて きました。まあ、最大の原因は私が「永遠のPerl初心者」(←成長しようという気が皆無)な せいなんですけどね。

どんな処理をしているのか

このツールではdia.txtというテキストファイルにダラダラと書いた日記をHTML化したり、 その中から<continue>や<indexcut>でマークした部分を切り出してindex.html等々を 作ったり、RSS配信用XMLファイルを作ったり...ということをしています。丁度普通の ブログツールとは逆っぽい作業になってます。

ブログツールは一般にフォームから入力した文字列を基に個別のHTMLファイルを作って、 それをくっつけたりとかしてますよね、たぶん。このツールはその逆に全部一緒になって いるファイルから最新分だけブログっぽくHTML化するという方法をとってます。

ですので生成するHTMLファイルは今のところ三つだけです。「続きを読む」が入った index.htmlと、そこからリンクされている最新分全文が入ったindex2.html。それと全体をHTML化 したdia.html。

ブログ(に限らず新聞雑誌もそうかも)を読むときって、自分の行動を考えると私なんかはやっぱり 最新分しか読まないのですよ。最新分だけ毎回読んでいれば全部読んでいることにはなるんですけど。

で、過去の記事や日記を見たくなるときって検索したいときなんですよ。 そういえばアレどこに書いてあったかなーみたいな。

つまり最新分に要求されるのは「読みやすく表示されること」で、バックナンバー的な部分には 「検索しやすいように表示されること」が求められているのではないかと。全日記が一枚の HTMLファイルならブラウザの検索でも簡単に検索できますしね。検索用のスクリプトとか色々 準備しなくても。ざーっとスクロールして眺めることも出来るし。この方式にはこの方式なりの 利点もあるかと思ってます。

まあ、そんなこんなで試しにフォルダごと複製して新たに作ったdia.txtファイルを読み込ませて 作業をしてみたのですが...これが...マズーですよ。どうやらdia.txtがEUC-JP&CRという変な組み合わせ のときしか正常に動作しないみたいなんです。dia.htmlを作るところは文字コードも改行もどうでも平気 なんですけどね。index.html関連とRSSがダメ。まあ、RSSはindex.html関連ファイルを基に作製している のでそっちがダメなら一蓮托生なんですけど。

あとfoolproof的には<continue>タグが入らないケースの処理とか<indexcut>の消し忘れ対策とか そういうのを色々やらねばならないだろうけど、こんなことだけやっているわけにもいかないし...。 なんとなくRPGとかシミュレーションゲームに嵌ったような心境。ヤバイ。

February 8 Wednesday 2006

当面は「.Mac」で公開

ftpで一括ファイル送信は意外と簡単な模様。すぐにも実装できそうです。

で、あるにも関わらず、この日記の公開URLを「.Mac」上に変更しました。 もとのサイトはサイト名がちょっと...(笑)。ただ今度は「.Mac」のftpサイト のURLって何よ?って感じで別の面倒発生中。こればっかりもやってられんしなあ。

あ、でもRSSに関して色々調べたおかげで思いがけず色々な謎が解けました。 RSSRollng とかってどうやってるんだろう?とか不思議でしたが、マネが出来るかはともかくタネは わかりました(と思う)。他所のRSS用XMLファイルから<item>タグの内容を抜き出して きて再構成したXMLファイルのXMLタグをHTMLタグ化すれば良い、みたいな感じでしょう。

Web上のRSSリーダサイトとかサービスってのもこれに似た感じでやってるんでしょうね。 仕組みは簡単だな。RSSで使っているXMLタグは例えばBNC(British National Corpus)とか OED(Oxford English Dictionary)のソレと比べたら超絶シンプルですからな。昔の図書館 とか研究者が使ってた「読書カード」みたいなもんだもん。

なんかそんな感じ。

FTPで送るところを自動化したい

FTPソフト(GUI仕様)を使ってアップロードしている部分をなんとか自動化できないか 思案中。できそうな気がするけど。ターミナルからftpコマンドで送ってやれば良いんだ もんな、たぶん。CGIで可能なはずだ。そうだとすると、これも操作画面にボタンをつけ てやれば一発で出来る。

というか、今現在「日記生成」「index(生成)」「RSS(生成)」「dia.txt(表示)」 という4つのボタンが並んでいるんだけど(CGI処理フォルダにdia.txtを持ってくる部分を除いて、 ということですが)これに「FTP(送信)」をつけてやれば良いわけだ。

で、その下に「一括実行」みたいなのを設けて(やっぱ「Engage」かな、ピカード風に)全部 連続で一括して実行するボタンをつけておけば、面倒や間違いがなくて良いかもしれん。

それと、あともう一点だけ...TB発射機能をつけようかと。受信の方は原理的にこの情況では無理 だけど発射の方は可能だよなあ...。

「続きを読む」機能

細々と調整中。入れないといったものの、やっぱり見難いので「続きを読む」 機能を入れてみました。

あとcommentとabout meは現時点ではリンク先は存在してません。ダミーです。 about meはともかくcommentは将来的にも設置する予定はないのですけど、たぶん 掲示板か他ブログのエントリの一つを割り当てることになると思います。

そんな感じで。

あと以前<indexcut>としていたタグは<cutline>に変えました。「続きを読む」の ためのマークアップは<moreline>タグというのを使っています。この名前なら既存 でありつつ私が知らないタグと被るということはないでしょう。どうかな?

うーんと、それと時間表示のうち月名が間違ってましたので修正しました。ただ、そこを 直しても普通のブログの場合(最初に投稿した日時に固定)と違ってテキストを修正する と修正した時間が入ってしまうのですが、別に良いかな、それでも。何か明確な問題がなければ。

...ええと、問題発生しました。どっちかが既存のタグだったのか、何なのか。Apacheがハングアップ したような状態になってHDDがカリカリ言ってて怖かったです。なんかダサいんですけど(というか 実体とちょっと違うのがアレなんですが)<continue>で「続きを読む」パートをマークして、そんで <indexcut>でindex.htmlの内容をマークしときます。

February 7 Tuesday 2006

またまた調整

なんとか本日中に更新したい...。全体表示のためのアイコンがズレていた 問題は<br clear=all>で解決した。でも結局表示は変えた。普通のブログ みたいに「時刻」「Permalink」「comment」ときて、最後はTBでは なく「corpus」とした。日記全体を表示します。

前まで使ってた「full view」だとちょっとこのあと実装する予定の機能と 紛らわしいので変えてみました。あとは...ちょこちょこ変えてます。時刻表示 はXMLでの表記の関係もあって、色々なパターンを出せるように練習してます。

あとは、あとは...明日書こう(笑)。

マズー多発

ええと、ここまで来ると若干強迫神経症気味ですが、RSSリーダでは <p>タグは機能しないんですけど<h3>タグは機能しているようなん ですよ。だから<br/>で<h3>まわりも置き換えたのがマズーだったん でしょうね(←現時点で未確認)。なのでそこを直してみました。

微調整

いやはや。誤字脱字ヒドイし。なのでちょっと直しました。 それにしてもこんなの(!)に手をかけ過ぎだなあ。反省せねば。 もともとコレの作成が究極の目的じゃなくて、自作PerlスクリプトにGUI的 なインターフェイスを手軽に装備する方法としてWebブラウザが活用 できるのではないか?みたいな思惑だったんですけどね。やや真の目的を 忘れがちになっててマズー。

でもちょっとの工夫でなんとかなる(orなりそう)な問題が良い案配で 次から次と出てくるからつい構ってしまうんだよな。

えーと「ブログ風味の手作り日記生成ツールの作製タスク」ってperlとかWebページ関連 の学習教材としてすごく良いような気はするな。気がするだけだけど。

修正の連続

また細かく修正。<h3>タグで小見出しのようなものを表していたのですが、 それが<p>タグに囲まれてしまうことで(基本的に段落も画像もテーブルも みんな<p>タグの中に入ることになってます:笑)無駄に上下の間隔が空いて しまっていたので前後の<p>タグを取り除くようにしました。

昨日書いたfull viewアイコン問題ですが、なんというかヤッツケでとりあえず 行った処置だった程度のものな割には意外に面倒そうな事態になってます。 Firefoxでは問題はないのですが(Firefoxは実際には起きている問題を糊塗する 傾向があるような気がするけど...)SafariでもPulpFiction Lite(←私が使っているRSS リーダ)でリンク先を開くようなことをしたときにも変な位置にきてしまって ます。やな感じ。

やな感じといえば、なんですか、HTMLファイル内でテキストが改行した位置 とおぼしき箇所が微妙に空いたりしてますね。ブラウザに表示された文字列なんか 見ると。というかそもそもRSSリーダで見てさえその現象が確認できるわけで。 なんか微妙なんだけど、やな感じだなあ、ホント。

February 6 Monday 2006

下で書いた文字コードの問題ですが、shift-jis関連はなんでか知らんですけど 以前にHTML作成時にはshift-jisという変な縛りを自分に課したからなだけで、 特に避けられないことでもなかったことに気づきました。XMLはUTF-8じゃない と拙いことが多いらしい(ポッドキャスティングのときとか)のでしかたがない として、他のケースなら別にEUC-JPにすれば良いじゃないかと。

で、そうしました。特に問題なし。全部EUC-JP。ただ、そのあたり弄ってて 思ったんですけど文字コードの表記ってなんでこうバラバラなんだろう?って いうかなんでこうバラバラなのに通ってるんだ?と不思議でならないです。

EUC-JPでもEUC-jpでもeuc-jpでも問題ないみたいだし。ええと、この場合は単に 大文字小文字を区別してないだけに見えるのですが、UTF-8の場合はutf-8の他に UTF8とハイフンの無いヤツでも問題ないし。というか、私は以前のバージョンで ずーっとcharset=shift_jisってハイフンでさえないもので結んでたんですけど問題 なかったなあ。英数字以外は無視という仕様なのか?

それはそうと、やっぱり更新もしてないのに更新というか改変があったという反応 がRSSリーダで感知されてしまう模様。極限までタグを減らしたXMLファイルになって いるからなあ...。

一応現在の仮説としては<pubDate></pubDate>を省いたせいではないかと思って いるのですけどね。ここを読みに行って変化がないと改変がないと判断しているとか そういう感じで。どーなのかなー。

で、どーかなー?とか思っていてもしかたがないので更新時刻(正確にはRSSを 生成した時刻)を記入するようにCGIを改変しました。そのついでに今までJava Script で書いてた時刻全般をPerlのlocaltime(time)で算出するように直しました。これで Firefox(+Mac)でも正確な時刻が表せます。

ま、仮にこの改変でRSS問題が解決しても、なんつーのかSafariでindex.htmlの full viewアイコンが変な位置に表示されちゃう問題が残ってしまうんですけどね。 ワケワカラン。

indexcut

index.htmlを自動生成する方法について考えた。で、とりあえずタグでなんとか することにしてみた。<indexcut>というタグをdia.txtの先頭からindex.htmlに 入れたい部分の最後までを識別するために使ってみている。

ええと、ホント日本語コードの問題では猛烈に難儀している。なにせCGIでは shift_jisじゃないと読まないし、普通のコマンドラインでいじるときはEUCじゃ ないとダメだし、XMLはUTF-8にしないといけないし。

スクリプトがおかしいのかと思ったら単に文字コードの問題だった...というケースが 多すぎる。

February 5 Sunday 2006

色々考えてみた。技術的に前向きではない方法で解決することにした(笑)。 当面は...ということにしたいけど。

その方法とは...これから試みて上手くいったら書く。

(数時間経過...)さて一応うまくはいったみたいだ。でもダメだ。

うまくいったのは予定していた方法。つまりブログのURLってファイルまで指定 しないじゃないですか、普通。ということはどうしてもindex.htmlがディレクトリ に必要になってくるわけで。

それならそのindex.htmlを最新の日記の内容にしてしまえば良いんじゃね?と 考えました。あとRSS配信もその内容だけにしとけば五月蝿くないし。で、そう 考えて色々試行錯誤して一応カタチになりました。余計な部分(<h1>タグで 囲んだ月名とか)は除去して全文配信できるようになったし。

ところがですよ。また問題発生。asahi-netのURLにあるチルダが勝手に違う チルダ(?)に変換されてしまってRSS用XMLで指定されたlinkが無効になって しまってるわけですよ。なんじゃそりゃ。

なんか解決する方法とかもあるんでしょうけどね。もう嫌になったので同じasahi-netの 別アドレスに移すことにしました。

とりあえずそんな感じ。

以下は仕様変更前の記述

ローカル環境でApache用CGIを使って生成したファイル類をFTPでネット上に 持って行く、という方式でCGI日記をはじめてみることにした。1〜2手間余計に (しかも手作業!)かかるのでウザイですがしかたがない。ホントは全部ネット上で 片付くのが理想なんだけど。

とりあえず、テスト用書き込み。RSS用CGIの調子を見る為にあとで 過去にさかのぼって記述をすることになると思う。しばらくは改良ではなくて バグチェックに勤しむことになりそうだ。

February 4 Saturday 2006

RSS配信がちゃんと機能しているかどうか見る為に過去に遡って ココに書いている。今日の日付は本当は5日。

FEED Validatorでチェックして みたが一応valid認定された。

ただなんか変な警告が出ている。

Your feed appears to be encoded as "utf-8", but your server is reporting "US-ASCII"

これはなんだろう?asahi-netのサーバがオカシイのか?それともFTPで送ったときに UTF-8ではなくなってしまっているとか?ブラウザで開くとちゃんとUTF-8ってでるから やっぱりasahi-netの問題かな?

それとなにか挙動がおかしい部分がある。「修正した」というfeedがやけに頻繁に 流れている様子がある。要チェックだ。

February 3 Friday 2006

RSSってこんな簡単なものだったんだなあ...ダマサレタ。本当はこの 部分は5日に書いているわけだが。

説明

この日記はローカル環境のApacheでCGIを使って処理&生成したものを FTPでココに持って来て置いています。なぜそんな面倒をしているかと いうとASAHI-NETが未だに自作CGIの設置を許可しないからです。まあ、 気持ちはわかるが。

グチはともかくとして...更新時刻(MacOSX&Firefoxだと嘘が表示 されていると思います...)の右にあるというアイコンを クリックするとRSS配信用XMLファイルが開きます。とはいえdiscriptionの ところには「日付+日記!」しか書き込めてないんですけどね。技術的な問題で(笑?)。

それはともかく、そのXMLファイルのURLをRSSリーダに登録していただくと、よくある ブログなんかのように購読可能になります。更新情報も得られます。...と思います。

あとは固定リンクのようなものになって ます。日付の部分をnameタグで指定しているので、そこにリンクするよう になってます。分かり難いかもしれないですけど、そういうことです。

ブログっぽい機能としてはあと「トラックバック」「コメント欄」 「続きを読む」などがありますが、多分実装しません。

今後この日記が長くなっていった場合のアクセサビリティのようなものを 考慮して全体の仕様というか設計を考え直すことはたぶんあると思います。 おそらくその場合も通常のブログや日記ツールと違って、当日分のみの HTMLファイルと全日付分のHTMLファイルからなる二部構成になるでしょう。

ま、このあたりは現在思案中ですので、うやむやにしときますか。

February 2 Thursday 2006

色々確認のために過去に遡って書いてます。本日は本当は5日。 せっかく本当は5日だ、ということで 5日の日記にリンク してみよう。

出来てるかな?

Copyright(c)2006 ccoe@mac.com All rights reserved.