TinyBlog

TinyBlog[1]は Python で書かれた Blog プログラムです。ここの Blog は、TinyBlog を下敷きにして作っています。 TinyBlog はいくら Tiny とはいえ、もう少し機能があるんだと思ってダウンロードしてみたのですが、本当に Tiny で、最低限の機能だけを備えたものになっています。現状では完全に放置されているような感じです。ウェブページには Blog の会社として有名な Pyra Labs で働いていると書かれているので、本業の方でそうしたことをやっている人のようです。で、とにかく参考として下敷きにするプログラムとして使う分には、古くて機能が少なくても関係ないので使ってみることにしました。良いところは、コンパクトかつ単純ということ。データは dbm の形式で保存され anydbm でアクセスします。ダウンロードしてから 30分もしないうちに、ある程度 Python のプログラムを書いたことがある人であれば改造に入れます。できる人なら独自に作ってしまうかもしれませんが・・・。

何よりもよいのは、簡単に CGI として導入できるので、どこでも Python が入っていれば使えるというメリットもあります。Zope のように高機能なサーバはインストールも面倒でレンタルサーバ上で動かすことはそう簡単にできませんが、単純な Blog であれば、そもそも Zope のように重たいものを使う必要はありませんからお手頃なのです。そして、Wiki の類よりももっと単純です。とはいえ、TinyBlog はあまりに低機能なので、一般に使うには、もっと高機能のものを探して使った方がいいでしょうね。

TinyBlog のもう少し細かい話

ということで、TinyBlog を元に自分で手を入れていくことにしました。TinyBlog は、Tiny とはいっても一応マルチユーザーで使えるようには作られています。ただし、非常に単純な作りです。ユーザごとにデータベースを用意して、それに対するパスワードを設定するという感じです。マルチユーザ対応の代わりに、自分用にはマルチカテゴリということにして、複数のカテゴリに分けて、Blog のページを作るかなというのも、ちょっと考えています。

セキュリティに関しては、ログインしたあとパスワードが hidden で送られてくるといった非常にラフな作りなので、SSL の使用が前提とされています(生パスワードが毎回流れる。気にしなければ問題はない)。また、投稿に対して HTML をサニタイズ(安全ではない文字の削除や変更)するわけではないので、信頼できる人でないと使わせることはできません。あくまでうちわで使うような Blog だといえるでしょう。ただ、自分で使う分には下手にサニタイズの機能が入っているより、生で書いたものを全部送りつけられる方が便利だともいえます。

一応、できることといえば、パスワード認証をかけたページから、新規投稿と過去の投稿を修正することぐらいのものです。まあ、これができるだけでコンテンツの更新は楽になるのでいいかなというところ。TTW (Through The Web) で書き込むのが慣れてしまうと、いちいち、HTML ファイルを作るのが面倒になってしまったので、これだけでも自分にとっては十分なのです。

ちなみに、RSS などは当然ありません。後続のバージョンでは、そうした機能も予定されていたようですが、アップデート版は出ずに放置のようです。つまり、現状の TinyBlog v 1.0 はスクラッチ状態で、ほんとに骨組みだけって感じです。したがって、リンクとかは、当面変更されてしまう可能性が高いです(と、リンクはる人いないだろうけど)。このあたりも、そのうち手を出してみようかなと思っています。

TinyBlog のインストールについて

インストールは簡単です。ドキュメントを読めば分かります。おおよその流れは次のようになります。ファイルをダウンロードして解凍したら、cgi-binのディレクトリにファイル(blog.py、editblog.py、adminlog.py) をコピーして、「python adminblog.py ユーザー名 パスワード」をコマンドラインから入力。パスワード db にユーザ名とパスワードが記録され、また db ファイルが作成されます (平文で入るので、念のため MD5 の値とかを入れるように変更しようかと思ってます)。次に、blog.py の中に stevej (作成者の名前が steve jenson さん) になっている箇所があるので、このあたりを編集します。なお、adminblog.py によって作成されるデータベースファイルは、anydbm ライブラリを使ってアクセスされるもので、実際には dbm や gdbm がサーバにインストールされていればそれらを使い、そうでなければデフォルトのものを勝手に環境によって Python が判断して db を作ってくれます。ゆえに、細かいことを気にする必要はないです。

adminblog.py は、コマンドラインで起動するものですが、これだと XREA の場合やっかいなので Web から新しいユーザ(ページとして使う) を発行できるようにしました。当然、このままだとページ追加用のページがばれると勝手にユーザ(ページ)を作られてしまい不都合なので、ここにパスワードを入れて認証するようにとりあえず変更してみます。また、多少、見栄えもあまりに単純だったので、ちょっと手を加えてみました。基本機能はまだほとんどいじっていない単純なままです。この結果として動いているのが、ここの Blog のページです (2003/03/08)。

今後の改造箇所

とりあえず、ログインの方法の変更あたりから、テンプレートを使えるようにしたり、RSS に対応させたりと手をつけていこうかなと思っています。要するにどこに持って行っても python さえあれば簡単に動かせてしまうような状態にまで持って行きたいなと。いろいろいいものがあるにもかかわらず、けっこう自分でも、手の届く簡単なところであれこれやってみたくなってしまったということなのでした。低レベルでも、自分でやることによって見えてくることも、いろいろあるわけですし。また、こんなところから Python のプログラミングを始めてみるのもおもしろいかと思い、あえて TinyBlog のページを作って紹介する次第であります。たぶん、そのうち、このページには続編ができるでしょう。TinyBlog のライセンスは X11 License なので改造して配布しても問題はないでしょう。ということで、いい形に改造できたら公開するかもしれませんが、たぶん、ほとんど原型をとどめないようなものになりそうな気もします。

参考

 [1] TinyBlog Python で書かれたシンプルな Blog プログラム
 [2] TinyBlog Readme TinyBlog の readme。なにげに php のページだったりします。

Blog

TinyBlog について

傀儡師の館(楽天)

傀儡師の研究室(Tripod)

自然言語処理について

人工無能について

Python について

Copyright (c) 2003, Kugutsushi