投稿日時:2006年04月30日 18:59

NanoBloggerで一番気になるところ

NanoBloggerを使い始めて、使い慣れたエディタでエントリを書くことの快適さにどっぷりとはまっています。エディタってのはもっとも基本的な編集ツールですからね。移行することを本気で考えているのは(一番は)そのためです。次には融通がきくこと。會澤のような輩でも自動化するための手法が思いつくってのはありがたい。コメント・トラックバック付与に関してももっとスマートな方法がきっとあるんだろうなぁと思いながらも、まぁパイプでつなげて処理しちまえば結果は同じだ。という安直さで編集できてしまう。今のところPlug-inの方までは見ていないけど、チョットしたものなら作れるだろうなぁというキモチにさせてくれる。これが大きい。内容に関してはiBlogだろうが、NanoBloggerだろうが貧弱な會澤の頭から出てくるフレーズは同じなのでどっちも変わらないですけどねぇ。

さて、表題です。実はこれ、ソースコードの醜さにあります。醜さってのは言いすぎだけど、余計なところに改行コードが入り込んでいるんですよ。特に、半角スペースの後に改行が入る場合が多い。これは考え物。半角スペースが入るというと、タグの中にも入りますよね。それがぶつ切りになっている。タグの始まりと終わりが複数行になってしまうのは困りもの(つまり間に改行が入る)htmlでは改行コードは原則無視されますが、変則的なソースであることは事実。
ここで會澤のスキルのなさが露呈してしまうんだけど、なにせこのNanoBlogger基本的には
Bash (at least v2.05), cat, cp, cut, dirname, date*, expr, grep, mkdir, mv, read, rm, sed, sort, touch, trap
* = GNU version recommended, but not required
NanoBlogger User Manualより引用
となっていますので、ソースコードを見ればどこに問題があるのがわかるはずです。
しかし、見てみてもなかなかわからないんだよなぁ。まぁ対策としてはアップロードする前に別のツールで改行を取ってしまえばいいということになります。この辺はiBlogのポストプロセスツールを自作しましたので、同じことですね。まだNanoBloggerに対しては無対策です。しかし、対処療法ですからね。iBlogに関しては変換内容まで踏み込むことは事実上できなかったのですが、NanoBloggerの場合はできます。対処療法ではなく、大元の対策が可能なのですね。しかし、そこまで踏み込んでいくスキルに欠ける。もどかしいです。

去年の今頃だったらこんな事考えていなかったかもしれない。ホントに少しずつだけど、進歩していると思うので何とかじわじわやっていこうかなぁと思っております。まぁバージョンアップして解決されたら非常に嬉しいのだけどね。
このエントリに頂いたコメント。この表示は随時更新されます。

by OKAMURA(2006-04-30T17:59:48-05:00)

直感的な予想ですが tidy が犯人かもしれません。tidy は行の長さを調節する機能があったような気がします。もしそうだとして、日本語のぶら下げなんて知る由もないでしょうし。


まずは nb が tidy を使うときにするのと同じオプションで何かをフィルターして様子を見てみるというのはいかがでしょう。

by 會澤(2006-05-03T12:00:07-05:00)

犯人はtidyですね。改行をあえて全削除したファイルを同じオプションでtidyにかけてやると中途半端な改行が挿入されます。

tidyに与えているオプションは、

 tidy -asxhtml -n -utf8 -m [対象ファイル]

です。


うーんだとするとやっかいだなぁ。iBlogと同様にポストプロセスが可能だからそれで何とかするしかないですね。

by 會澤(2006-05-03T12:39:08-05:00)

わかった!

コメントを書き込むためには、下の「Comments」リンクをご利用下さい。
このエントリに頂いたコメント。この表示は随時更新されます。

by OKAMURA(2006-04-30T17:59:48-05:00)

直感的な予想ですが tidy が犯人かもしれません。tidy は行の長さを調節する機能があったような気がします。もしそうだとして、日本語のぶら下げなんて知る由もないでしょうし。


まずは nb が tidy を使うときにするのと同じオプションで何かをフィルターして様子を見てみるというのはいかがでしょう。

by 會澤(2006-05-03T12:00:07-05:00)

犯人はtidyですね。改行をあえて全削除したファイルを同じオプションでtidyにかけてやると中途半端な改行が挿入されます。

tidyに与えているオプションは、

 tidy -asxhtml -n -utf8 -m [対象ファイル]

です。


うーんだとするとやっかいだなぁ。iBlogと同様にポストプロセスが可能だからそれで何とかするしかないですね。

by 會澤(2006-05-03T12:39:08-05:00)

わかった!

コメントを書き込むためには、下の「Comments」リンクをご利用下さい。

投稿日時:2006-04-30 11:40:07

行きたかった!来年もやるならぜひ行きたい。

一般公開していたんですねぇ。すごいなぁ。加速器見たかったなぁ。理研が一般公開しているなんて知らなかったです。理研って何かって言うと、「独立行政法人 理化学研究所」ってことになります。リンクを示すだけなんて手抜きですが...
ITmedia +D LifeStyle:あなたの知らない理化学の世界——理研公開 (1/4)
来年もやるんでしょうかねぇ。やるんだったらぜひ行きたい。上記リンクは紹介記事なんですが、おもしろいです。私はとってもおもしろいと思いました。特にほんのワンフレーズだけなのでわかりにくいのですが、あたかも錬金術が可能のようなフレーズ。間違いじゃないけどね。
原子核っていうのはまぁ極々簡単にいえば陽子と中性子が固まってできているようなもの。すごく乱暴な言い方をすれば、水素原子を79個と、中性子を118個一つところに集めれば「Au(80)」の金が生成できることになります。普通にやっても無理よ。簡単にいかないのは原子核の結びつき(強い力:Strong interaction)が強いため。理論的に可能であってもそれは簡単にはいかない。上記記事にあるように加速器によって原子核を加速してぶつけてやることで原子核は融合する可能性がありますが、ではそれは物質であるかというと疑問ですね。イヤ、原子核は別原子核になるんですよ。それは間違いない。しかし、原子核と物質は別物。しかし、ロマンはありますよね。

理研に関してはすごく遠い存在だったのでノーチェックだったのですが、今度はマメにチェックしてみます。機会があればぜひ見学させていただきたい。目茶苦茶行きたいポイントです。アッ、来月妻と行く予定の「Disney Sea」の次ぐらいかな。o(^-^)o ワクワク。

投稿日時:2006年04月30日 09:46

パーマリンク固有文字列を作成してHaloScan用に流用する

さて、會澤環境決め打ちカスタマイズですので流用する際には気をつけてください。
数日前からNanoBlogger(以下nb)で作ったこのblogにコメント・トラックバックの使用が可能になりました。というか、可能にしました。その方法とnbのファイル作成ルールの極簡単な解説です。

nbではいくつかのテンプレートがデフォルトフォルダに作られます。例えばトップページを作成する際に次のような手順で作成されます。
  1. エントリの内容・タイトルなどが「entry.htm」というテンプレートに置換される。
  2. 一つのページに表示されるエントリ数(blog.conf中で設定されているMAX_ENTRIES定数で定義されている:デフォルトは10)分だけこの置換されたentry.hymの内容が「main_index.htm」にコピーされる。
という2段階の置換作業が行われています。つまり、トップページに列挙されるエントリ、一つ一つのフォーマットを変えるためには「entry.htm」ファイルの方が編集対象になるわけです。見た目の変化についてはスタイルシートを使うのがいいですね。ただ、現在一つ一つのエントリは上から順に、投稿日付、タイトル、本文、投稿者、カテゴリ名と並ぶのですが、この順番を変えたければ「entry.htm」に手を入れる必要が出てくるわけですね。

さて、すぐ前のエントリでパーマリンクを単独ファイルにする方法を述べました。この方法にすると作成されるアーカイブフォルダの構成そのものも変わってきます。その環境下で決め打ちしてコメント・トラックバックを設置します。
會澤が使っているのは一切のcgiが使えない.Macサーバーですので、外部サービスを利用させてもらいます。iBlogから使っていた「HaloScan.com - Weblog Commenting and Trackback」を使います。HaloScan.comでは、二つの情報によってコメントツリーの中から一つのコメントを決定しています。一つは登録ユーザー名。もう一つは登録ユーザーが使用する固有ID文字列です。HaloScanにすでに登録されていることを前提条件にします。あとは固有IDを決定してやればいいことになります。iBlogの場合はランダムに決定した8〜12桁の数字の羅列でした。別に文字列であればいいのでタイトル文字列であってもかまわないことになります。しかし、HaloScanは日本語のような文字列を固有IDにすることを推奨していないはずですし、この文字列がネット上に流れることを考えればマルチバイト文字コード文字列は問題になりそうです。
nbには$NB_Permalinkという変数が用意されていますのでこれを利用しない手はありません。しかし、この変数には「/」が含まれるんですね。これはうまくありません。HaloScanにこのままの文字列を渡してしまうと誤動作します。「/」を削除してやる必要があります。
nbではテンプレート中に$()で囲まれた部分はその部分がターミナルのコマンドであると解釈して実行してくれるという機能があります。これを利用すれば$NB_Permalink文字列から「/」のみを取り除いた文字列を得ることができ、それをHaloScanの固有IDとして利用することができます。
$(echo '| <a class="link" href="http://www.haloscan.com/comments/HaloScan登録ユーザー名/')
$(echo "$NB_EntryPermalink"|sed -e 's_/__g'|sed -e 's/_//g'|sed -e 's/index.html//g')
$(echo '">Comments</a>')
2行目が文字列を変換しているんですが、恥ずかしいのでもっと良い方法があったらそっと教えてください。めんどくさかったので「/」「_」.html」という3つの文字列をそっくり削除しています。トラックバックに関しても同様。あとは「entry.htm」テンプレートの適当なところに挿入してやればいいことになります。この置換に関する部分は完全にローカルで行われ、ネット上に公開したものに関してはまったく関係なくなっています。ユーザーサイドで加工が行われるJavaScriptや、サーバーサイドで加工が行われるPHPなどとは違う点ですね。

投稿日時:2006年04月30日 08:59

NanoBlogger のGUI パッケージング

OKAMURAさんのエントリ「Nanoblogger で GUI エディタを使う方法」でエディタを通常のvimからGUIエディタであるJedit Xに変更する方法が述べられています。これがあれば會澤的には必要十分なのですが、さらにすべての操作をGUI パッケージングしたソフトが存在するんですねぇ。これまたOKAMURAさんに教えていただきました。
Mathias Dietz Weblog: August 2005 Archives
さて、実は會澤の環境では動いてくれません。なぜかは不明ですが、へんにGUI がくっついてもあんまり違いはないだろうという理由で深く追求しません。

さて、iBlogでパーマリンクが一つの画面で完結する形というのになじんでいましたので、NanoBloggerのArchivesファイルに id でマーキングしておいてそこに飛ぶしくみってのには違和感ありありでした。この方がシンプルであるのは事実なんですけどね。
とはいうものの、ちゃんとパーマリンクを単独のリンクにするオプションが存在しまして、blogワークフォルダにある blog.conf に次のような表記があります。
# Build individual archives of each entry - 0/1 = off/on.
ENTRY_ARCHIVES="0"
この最後の「0」を「1」にすることでパーマリンクが単独ファイルになります。

投稿日時:2006年04月29日 20:55

予測は外れた

テンプレートの文字コードが原因でした。何のことかというと、「悩んでいること」で述べた文字化けのことです。
直したつもりだったのですが、テンプレートがUTF-8になっていなかったために化けていたようです。ただいま検証しました。

tidy にあらぬ疑いをかけたこと。猛省します。

投稿日時:2006年04月29日 08:47

シェルスクリプトで所定のファイルをアップデート

blog.conf に BLOG_PUBLISH_CMD というのがある。これは、nb -P というコマンドの際に発行されるコマンドを指定するもの。
NanoBloggerでファイルをアップする際にはこのコマンドを使うことが想定されている。マニュアルに載っているのは ftp を使用した方法。しかし會澤が愛用している .Mac サーバーは ftp を受け付けない。別エントリのOKAMURAさんがくれたコメントで、rsync 使ったシェルスクリプトを作成してこれを指定してやればいいじゃんと思い当たった。コメントを頂くまでそういうこと思いつかなかった。OKAMURAさんのコメントでは
  1. .Macをマウント
  2. rsyncでファイルを転送
  3. (不必要なら).Macをアンマウント
という一連の操作をパッケージングしてしまうというアイデアだったが、.Macのマウント・アンマウントの部分を省略して會澤環境決め打ちのスクリプトにしてみた。
.Macをマウントせずに curl でアップデートということも考えていたが、この方法は強制アップデートになってしまって時間がかかる。実はコッチでしばらくアップデートしていたりしていた。それも手動でコマンド直打ち。自動化もへったくれもないってことですね。

このエントリが表示されていたら上記スクリプトがうまく動いたと言うことになるでしょうか。さて、実験するか。

うまくいきません。シェルスクリプト自体は正常に動作してくれるのですが、nb -Pもしくはエントリ追加の際に自動実行される場合には動作してくれません。詳しく見たわけではないのですが、やはりftpを前提にコマンドが作られているのではないかと思います。
このエントリに頂いたコメント。この表示は随時更新されます。

by OKAMURA(2006-04-29T15:12:40-05:00)

ここを読みながらふと思ったのですが、NanoBlogger をラップする GUI があると、ClamXav みたいなことになりますね。


つまり GUI があるから掴みは OK。しかもコア部分まで弄り放題。


誰か作っていそうな気がします。

by OKAMURA(2006-04-29T18:51:41-05:00)

見付けました。NanoBlogger の GUI。

Mathias Dietz Weblog で配布しています。


試してみたのですが、UTF-8 で書かれた日本語はうまく表示できないようです。他にもいい知らせがあるのでエントリ書きますね。

by 會澤(2006-04-30T00:18:03-05:00)

やっぱり誰か作っていましたか、Javaですね。會澤的にはすべての操作がターミナルベースであっても別にかまわないのですが、抵抗感がある人が多いと思いますね。

何て言っていますが、OKAMURAさんに出会わなければいまだに抵抗感を持っている人だったかもしれません。

コメントを書き込むためには、下の「Comments」リンクをご利用下さい。
このエントリに頂いたコメント。この表示は随時更新されます。

by OKAMURA(2006-04-29T15:12:40-05:00)

ここを読みながらふと思ったのですが、NanoBlogger をラップする GUI があると、ClamXav みたいなことになりますね。


つまり GUI があるから掴みは OK。しかもコア部分まで弄り放題。


誰か作っていそうな気がします。

by OKAMURA(2006-04-29T18:51:41-05:00)

見付けました。NanoBlogger の GUI。

Mathias Dietz Weblog で配布しています。


試してみたのですが、UTF-8 で書かれた日本語はうまく表示できないようです。他にもいい知らせがあるのでエントリ書きますね。

by 會澤(2006-04-30T00:18:03-05:00)

やっぱり誰か作っていましたか、Javaですね。會澤的にはすべての操作がターミナルベースであっても別にかまわないのですが、抵抗感がある人が多いと思いますね。

何て言っていますが、OKAMURAさんに出会わなければいまだに抵抗感を持っている人だったかもしれません。

コメントを書き込むためには、下の「Comments」リンクをご利用下さい。

投稿日時:2006年04月29日 00:58

コメントとトラックバックを追加

HaloScan.comを利用してこれまでの「(^^)v2 Smile Peace version 2」と同じデザインを流用しているのであまり芸がないといえばその通りですけどね。
テンプレートにシェルスクリプトを組み込むことができるというNanoBlogger独自(?)の機能が活躍しますね。$NB_Permalink変数から"/"と"_"を削除したもの(アッIndex.htmlも削除した)をKeywordにしてHaloscan.comにアクセスしています。HaloscanはJavaScriptを組み込んでこの部分をJavaScriptで記述することをサンプルで示していますが、この方法でも各エントリに独自のコメントツリーを構築することができます。
どんなソースを追加したのかはまた後ほど。

パーマリンクっていうんですね。私「パーマネントリンク」だとばっかり思ってた。は・恥ずかしい。

投稿日時:2006年04月28日 22:52

blog統合についての覚え書き

想像以上にNanoBloggerが快適でコッチのエントリばっか書いている。基本的に内容に対してこだわりがあるのであって、公開するためのツールについてのこだわりはない(少なくとも今はなくなった)。ということでiBlogからNanoBloggerに本格的に移行することを考えている。とはいえ、これまでの財産ともいうべき出会いを生んでくれたiBlogサイトについて消してしまうのはあまりにも惜しい。というよりできない。そこで次のようなことを考えてみる。
  • NanoBlogger上に旧blogのタイトル+要約のみのエントリを作成しパーマネントリンクを旧blogへリンクさせる。
  • RSSに関してはNanoBloggerで作成されたRSSを旧blogのアドレスでも配信する。つまりコピー&リネームしてやる。
  • 時期を見て旧blogのトップページ・カテゴリページを新blogのそれへリダイレクトする。
  • お世話になったiBlogサイトへのリンクは新blogにも掲載する。
ここまで書いてきて『ではすぐにそうするのか!』と思われるかもしれないが、実はNanoBloggerのblogにも克服しなければならない課題がいくつか存在する。それらの課題を克服した後上記措置を実施しようと思っている。できれば早めにとは思っているが、何かと時間をとることができずにいるので結構長くかかるかもしれない。それまではiBlogとNanoBloggerは併用することになるかと思う。
そういうことで、これからもよろしく。
このエントリに頂いたコメント。この表示は随時更新されます。

by OKAMURA(2006-04-28T18:13:43-05:00)

まじっすか。


いつの間にかこっちにもコメントできるようになってるしー。

by 會澤(2006-04-28T22:34:13-05:00)

ふ・ふ・ふっチョットは進歩したでしょ。

コメントを書き込むためには、下の「Comments」リンクをご利用下さい。
このエントリに頂いたコメント。この表示は随時更新されます。

by OKAMURA(2006-04-28T18:13:43-05:00)

まじっすか。


いつの間にかこっちにもコメントできるようになってるしー。

by 會澤(2006-04-28T22:34:13-05:00)

ふ・ふ・ふっチョットは進歩したでしょ。

コメントを書き込むためには、下の「Comments」リンクをご利用下さい。

投稿日時:2006年04月28日 06:19

悩んでいること

iBlogも最初の頃、マルチバイトテキストを実体参照で記述していた。タイトル部分にしても、本文の部分にしてもNanoBloggerは日本語をちゃんと通してくれる。これはありがたい。
ところが、テンブレート上にマルチバイトテキストを記述すると見事に化けてくれるのですね。これは日付の指定でも同様。
ただ、iBlogの経験があったので実体参照で記述することで逃げている。想像しているのはPlug-inモジュールであるtidy(is HTML syntax checker and reformatter)のどっかがマルチバイトテキストに対応してないんじゃないかということ。あくまで予測。ちがったらごめん。

とはいえ、かなり快適。iBlogからの移行も考えているけど、これまでのエントリをどうするかが問題点かな。

投稿日時:2006年04月27日 06:28

不具合はまだ多いもののネット上にも公開

まだまだリンクが完全には動作していなかったり、自分の思い通りにはなっていないけれど、テストブログとしてネット上にも公開します。

投稿日時:2006年04月26日 20:50

テンプレートをいじって思いどおりの出力を得る

ここがカスタマイズの醍醐味ですね。テンプレートおよび、スタイルシートをいじって自分の思うような出力を得る。會澤はカレンダーを必要としないので、カレンダーをテンプレートから削除。とはいってもシェルスクリプトの中でカレンダーを作るPlug-inは起動し、それなりの時間を必要としている。Plug-inフォルダからカレンダーPlug-inを別のフォルダに移してやることでカレンダ作成Plug-inは起動しなくなる。
加えて、必要性を感じていないatom/rss1.0のPlug-inも外してしまい、rss2.0のみにしてしまう。3つのrssが必要になるとは思っていないが、場合によっては必要になるのかもしれない。削除するのではなく、Plug-inを別フォルダに移すだけでいいと思う。
iBlogでいうところのPublishing(公開)もシェルスクリプトを指定することで可能になる。OSXの場合、仮想.Macをマウントしておき、そこに作業フォルダを置くだけでもいい。その場合、公開の必要すらなくなるわけ。ただ、仮想.Macは何かと問題をはらんでいるので、はたしていいのかどうかは不安。

投稿日時:2006年04月25日 21:25

チョット変わっているけどドラフト機能の使い方

まず最初に、NanoBloggerはコマンドラインから使うblogツールなわけで、UNIX環境になじんでいる必要があります。しかしながらこの分野に関して會澤はまだビギナー。特に独特な文化を背景に持つエディターに関しては、まだ抵抗感の方が強いわけです。
で、手になじんだエディターというとJeditということになります。このエディターは、文字コード・改行コードの扱いに関しても柔軟で、コマンドラインで利用する文字コード・改行コードでの保存が可能です。
このエディターを使って本分を記述することはできないか。調べてみるとNanoBloggerにはドラフト機能が付属しています。ドラフト機能って何?と思った方。私も思いました。要するに下書き用紙を出力してくれるわけですわ。で、その下書き用紙を開いて、タイトル、本文などを入力して保存。さらにNanoBloggerに読み込ませると、新規エントリのできあがり!となるわけです。ここに手元にあるエディタを使うのは簡単です。私の場合、「.txt」拡張子がついたファイルはJeditで開くように設定してあります。そこで次のような一連のコマンド入力でエントリを作り出すことが可能なわけです。
nb --draft textfile.txt
open textfile.txt
Jeditでエントリを編集。UTF-8/LFにて保存。
nb -c cat_no --file textfile.txt -a
簡単ですねぇ。私気に入りました。

投稿日時:2006年04月25日 06:30

NanoBloggerを動作させるにあたって

NanoBloggerを動作させるにあたって最低限必要な設定を列挙してみる。

まず、NanoBlogger(以下nb)をどこに解凍するか。會澤は極めてイレギュラーな場所に解凍しました。で、ailasを設定してそのイレギュラーな場所を直接指定するようにしました。本当はパスが通っているところに解凍して直接使うのが本筋。
BLOG_DIR変数を設定。これは必須ではありませんが、設定しておくと便利です。設定する場所はシェルスクリプトnbがあるフォルダ内のnb.confというファイル。ホーム直下に不可視の.nb.confを置いても読んでくれるようですが、おすすめしません。
あとはもちろん、blogの初期設定。これはまた後ほど。

投稿日時:2006年04月24日 22:18

コマンドサマリー日本語版

日本語でコマンドの説明を(自分自身への覚え書きを込めて)
  • 新規 blog の作成:nb -b [blog_dir] -a(※1)
  • 新規のエントリ作成:nb [-b [blog_dir]] -a(※2)
  • 新規のカテゴリ作成:nb -c new -a
  • カテゴリ名を指定して新規カテゴリ作成:nb -t カテゴリ名 -c new -a
  • 既存のエントリを既存のカテゴリに移動:nb -c [カテゴリID] -m [エントリID]
  • 既存のカテゴリに新規エントリを追加:nb -c [カテゴリID] -a
どんどん追加します。

投稿日時:2006年04月24日 21:57

NanoBloggerへようこそ!

また大袈裟なタイトルだなぁ。使い方を試行錯誤している途中をエントリにしていきます。
なかなか強力なプログラムでして、とってもすばらしいと思っています。融通がききそうなのもいいですね。あちこちいじりながら気がついたことをエントリしていきます。そうはいってもはたしてうまくいくかどうか。これをきっかけにして會澤自身のスキルアップにもなったらもっと良いですね。
さてさて次はどこをいじってみようかな。o(^-^)o ワクワク。