JavaScript試行錯誤

2006/04/26 Wed 03:48

いまここの更新はwikieditish.cgiを自前で改造して使ってるんだけど、「試験前の掃除欲」を向かわせる先としてリアルタイムプレビュー(できればWiki記法対応も)+遷移なし記事表示/編集を搭載したAjaxなWikieditishを作ろうと思い立ち、とりあえずプレビュー部分を作……ろうとして早速ハマった。

というのも、イベントハンドラまですべて*.jsファイルに逃がそうとがんばっていたら、どうにも動いてくれなくて悩みまくった。window.loadのタイミングでonkeyupハンドラ内で使っているgetElementByIdがエラーを吐くらしく、どう指定してやるんだかわからない(とりあえずdocument.onkeyup = onkeyupHてかんじにしたらFireFoxでは動いてる様子)。このあたりから、HTMLタグの属性部分でイベントハンドラを指定してしまったほうが、なにかとわずらわしいトラブルが減りそうな気がしている。でもエレガントじゃない。

Livedoor Readerはてなブックマークなんかを見てみると、HTMLファイル内での指定もかなり使われてるみたいだし、ハマるよりは使ってしまえばいいのかなあ……でもはてなRSSはほとんど逃がしててイカス。これは監視するイベントの種類にも関係してそうだけど。

まぁあくまで「試験」があるわけなので、ひとまずペンディング。

Permanent Link | Writebacks (0) | Diary | edit
Tagged as: ,

無事にフィードが燃焼

2006/04/21 Fri 22:40

というわけで、無事にFeedBurnerへ移行できました。

RSS Auto-DetectもFeedBurner.jpのURIに変更。

<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.jp/ilettuce" />

/index.rssへのリクエストもリダイレクトするように.htaccessを変更。

Redirect permanent /index.rss http://feeds.feedburner.jp/ilettuce

リーダーへの登録ボタンのことを考えて、上記2つは日本版へ飛ばしてます。

というわけで、今後はFeedBurner(米でも日でも)をご利用ください。

追記(4/24):Atom版も作ってみました。Auto-Detectだけにそっと入れておきます。

<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="http://feeds.feedburner.jp/ilettuceatom" />

追記(4/26):っていうかFeedBurnerはフィードの形式変換を売りにしてるけど、ひとつのソースから複数のフィードを作ることはできないのね。1:1だけだったら変換もあまり魅力的じゃないなぁ……トラフィックが見えるのはいいんだけど。

Permanent Link | Writebacks (0) | Blosxom | edit
Tagged as: , , ,

content_type.flavourが効かない?

2006/04/21 Fri 07:59

ふと、うちのフィードもFeedBurner日本版)で焼いてみようかと思いたち、

このあたりを参考に、既存の*.rssテンプレートを複製して、拡張子をrss10にして、ヴァリデータで確認……してみたら、なぜかrss10のほうだけinvalidに。テンプレートは全部同じはずなのに。

feedAnalyzerの結果で違いを探してみると、validなほう(rss)は

URL : http://cu39.s57.xrea.com/index.rss
ステータス : OK (200)
サーバー : Apache
更新時間 : 不明
ファイルサイズ : 不明
コンテンツタイプ : application/xml charset=utf-8
スペック : RSS1.0 encode=utf-8
タイトル : 氷山みたいなレタス 

invalidなほう(rss10)は

URL : http://cu39.s57.xrea.com/index.rss10
ステータス : OK (200)
サーバー : Apache
更新時間 : 不明
ファイルサイズ : 不明
コンテンツタイプ : text/html ("charset" は "us-ascii" になります)
スペック : 不明 encode=utf-8
タイトル : 

ということで、どうもContent-Typeヘッダでコケてるらしい。Feed ValidatorのほうでもContent-Typeがtext/htmlになってるようだし。content_type.rss10が効いていないということなんだろうけど……なんで? テンプレートファイル見直してみたり、blosxom.cgiのソースとにらめっこしたり、.htaccessいじってみたり、blosxom 2.0.1にしてみたりといろいろやったけどダメ。rss10という拡張子を他の文字列(rrrとかrrssとか)に変えてみてもダメで、これが特に不可解。*.rssならcontent_typeテンプレートは効いてるのに。HTTPヘッダを触るプラグインも入れてないしなぁ……。

というわけで、とりあえず現象だけメモして考えてみる。サーバ設定の問題ということもあるのかなぁ。

追記:げ、テストしてみたらイヤなことを発見してしまった。なんかことごとくcontent_type.flavourが効いてなかったらしい……。

対象現在表示されるContent-Typecontent_type.flavourの内容
/index.htmltext/htmltext/html; charset=UTF-8
/index.rssapplication/xml; charset=UTF-8application/xml; charset=UTF-8
/index.rss10text/htmlapplication/xml; charset=UTF-8
/index.trackbacktext/htmlapplication/xml; charset=UTF-8
/index.atom (未使用)text/htmlapplication/atom+xml; charset=UTF-8

ぜんぜんダメだったんじゃん orz こうなるとむしろ、*.rssだけcontent_type.flavourが有効になってることのほうが不思議。

このサンプルだけを見て考えると拡張子3文字以上はNGという推測も成り立つけど、cp *.trackback *.tstして作ったtstフレーバーテンプレートでも同じくNG。むむむ。

追記:テスト用CGIでヘッダを比べていると、ModLayoutが働いているものだけヘッダが上書きされていることがわかって、腑に落ちた。もっと早く気づいてもよかったな。XREA固有の問題にももう慣れたよ……。

X-Powered-By: ModLayout/3.2.1

広告の自動挿入、ModLayout関連のでのエラーは既知の問題となっています。
特にヘッダーを操作、上書きする処理にエラーが発生します。クッキー、Location等で期待しないエラーが発生します。
このような場合は、手動で挿入してください。

残念ながら、現在のところ、ModLayout関連のエラーは修正予定はありません。
別の広告配信システムを1年以上前から用意していますが、変更いたしますと、ModLayout関連のコマンドが使えなくなるため、保留しています。

ModLayoutコマンドが使えなくなってもいいから別の表示法に切り替えてほしいなぁ……まあそれを期待するなら金払ったほうが早いという話か。

ひとまず.htaccessでいくつかの拡張子をLayoutIgnoreURIさせていただいた。アプリ自動処理系だから許してもらえるだろう、と思っておくことにする。

LayoutIgnoreURI *.atom
LayoutIgnoreURI *.rss
LayoutIgnoreURI *.rss10
LayoutIgnoreURI *.trackback

でも、こうする前から*.rssに関しては上書きされてなかったのは謎のまま。大元の設定で切ってるのかな。

Permanent Link | Writebacks (0) | Blosxom | edit
Tagged as: ,

2006/04/16 Sun 18:45

個人的に繁忙期に入るので、少し生活を変えてみようと思う。どこを変えるかというと、今現在ネットにかけている、あるいは吸い取られている時間を減らしたい。とはいえ個人的なメール送受信(SNSのメッセージ機能も含めて)は減らすわけにもいかないので、主な削減対象はウェブ閲覧の時間である。

僕のネット歴はだいたい10年前後なのだが、1日のうちウェブ閲覧が占める時間は概ね増大の一途であった。少なくとも意識的に減らすのは今回が初めてといってもいいくらいだと思う。これは必要からそうしていたというよりも、耽溺または依存していたと表現するほうが相応しい状態である――あるいは、帰ってきてテレビつけちゃってそのままダラダラ見続けてしまうような感覚のほうがより近いかもしれない。ともかく、それを初めてカットしてみようと思う。

さて、そうすることで起こりそうな変化はいくつかあるが、「世間から取り残される」という漠然とした不安が僕を今まで耽溺した状態にとどめおいたのは間違いなく、今回もその種の不安はある。しかし以下のようないくつかの疑問を抱いてもいる。

  • 本当にウェブを見ていれば世間から取り残されずに済むのか
    • まぁウェブを見なかったとしたら、多少の「取り残されている」感は出るだろう
    • でも、過剰にウェブを見ることが、ある意味取り残されることにもなるのでは
      • つまり僕のリアルな周辺におけるウェブ情報の評価の問題で、実生活の価値基準では必ずしも要らない情報が多い(将来的には未知数だが、それ以前に現在が切迫しつつある)
  • たとえ世間についていく必要があるとしても、現在チェックしているすべては必要ないのでは
    • 硬軟とりまぜた情報をひとくくりに論じても意味がなさそう
    • 個人的に苦手な、取捨選択作業のいい練習になるかも

と、まぁいろいろ書いてみたが、要するに、あえて「取り残され」てみるのも面白いかも、と感じているのが大きい。実はそれほど大したことなかった、と判明するのは、それはそれで怖いけど。

たとえ取り残されても永遠にその状態でいなきゃいけないわけでもないし、実はそれほど取り残されなかったり、取り残されても追いかける必要を感じなくなるのならそのままでもいい。

と、何をいまさらというような話で、多くの人は細かく考えずこういうシフトができるものなのかもしれないが、個人的にはそれなりに大きな発想の転換だったりする。とりあえず今月いっぱい試してみるか……実行できるかどうかのほうが問題だな、まず。井上雄彦の発言を反芻して取り組んでいきたい。

  • / ()
  • 発送可能時間:
Permanent Link | Writebacks (0) | Diary | edit
Tagged as:

Perlmalinkの間違いを訂正 orz

2006/04/14 Fri 04:08

ものすごく情けない間違いをしていたのを発見しました。

このブログのPermalink(各エントリーの個別URL)の最後の部分(つまりBlosxomデータファイルのファイル名が対応する部分)は

yyyymmdd_エントリーのキーワード.html

という書式になっているんですが、この「yyyymmdd」(8ケタの日付)部分は毎回手打ちしています。この部分が、エントリーを作成した日の一年前の日付になっているものが複数あるのを発見しました。ある年の前半くらいまでは、意識が前年のままになっていて、間違えてたんですね(単なるミスタイプも含まれると思いますが)。

で、今回それを全面的に訂正したため、Permalinkも変わってしまいました。おそらくブックマークをしてもらっているエントリーはゼロに近いと思うのですが、もし仮にしてもらっていたりしたらごめんなさい。あらかじめ謝ってしまいます。

トラックバックをもらってるエントリーも変わってるのが1つ……ごめんなさい orz まあ1つだったのは不幸中の幸い。

日付部分は自動で入るようにwikieditish.cgiをいじったので、もう間違えないよ!(たぶん)

Permanent Link | Writebacks (0) | Diary | edit
Tagged as:

taggingプラグイン設置

2006/04/14 Fri 03:30

taggingしてみたかったので、abeさんのtagging plugin 0.04を設置してみました。プラグインはデータファイルがLFのみという前提で組まれていたので、CRLFにも対応してくれるよう手を入れました。とりあえずこんなかんじでしばらく様子見。日本語もいけてるようです。タギング楽しいなぁ。個別ページに行くとTag Cloudも出ますよ!(追記:その後、左メニューに移動しました)

ここをCRLF運用にしてしまったせいで、他のプラグインでも同じような手直しをすることがあって、LFだけで運用しておけばよかったと今さら後悔……最初から新しく作り直してー。まぁPerlでCRLFをLFに一括変換するスクリプトを組めばいいのか。ちょっと考えよう。

だいぶ機能的な面が満足してきたので、いいかげんデザインもいじりたいところだが、時間がない……。

追記:taggingプラグインソース内の、$link_tagと$link_cloudという2つの設定変数の値をblosxomからblosxom_tagsに変更(147行目あたり)。

# Where to link story tags (URLs defined below)
my $link_tag = 'blosxom_tags';

# Where to link tags in the tag cloud (URLs defined below)
my $link_cloud = 'blosxom_tags';

さらに、mod_rewriteを以下のように設定(もうちょっとエレガントにできそうだけど)。

<IfModule mod_rewrite.c>
RewriteEngine  on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(tags/)(.+)/(.*) $1$2,$3 [N,QSA]
RewriteRule ^(tags)/(.*)$ blosxom.cgi?-$1=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blosxom.cgi/$1 [L,QSA]
</IfModule>

すると、taggingプラグインに対して

?-tags=hoge
?-tags=hoge,foo

という形式ではなく

/tags/hoge
/tags/hoge,foo

という形式でアクセスすることが可能に! データフォルダ直下にtagsというディレクトリさえ作らなければ、categoriesとバッティングすることもありません。強力すぎる……(うっとり)。

追記(4/16):Related Tagsのアンカーに入るURIは、すでに選ばれているタグに該当タグが追加されるように変更(というか改造)。

Permanent Link | Writebacks (0) | Blosxom | 4 users hatena_bookmark | edit
Tagged as: , , ,

井上雄彦×原泰久「師弟対談」

2006/04/13 Thu 02:00

テスト前になると部屋の整理がむやみにはかどるパターンというか、押し迫ってやるべきことがあって気ばかり焦るものの体と頭はそちらに向かわず、かといって何もしないわけでもなく、その焦りは関係ない行動へと積極的に向かっていく。blosxomプラグイン作るとか、日記書くとか、小説読むとか。

しかし、たまたまゴリエ杯決勝を見ては涙腺がゆるんでみたり、これといったきっかけもなく吐き気がきたりするところを見ると、それなりにストレスを感じてはいるようだ。幸い体は健康そのもののようだけど(吐き気には、肩こりと目の疲れも関係している気はする)。

コンビニで流川楓の表紙に目が止まって、井上雄彦と『キングダム』の原泰久の「師弟対談」を7割くらい立ち読み、そのままヤングジャンプ増刊「漫太郎」を購入。買わせたフレーズのひとつは以下の部分で、「アシスタント時代」という小見出しのついた一節を締めくくっている井上雄彦の発言から。

井上 (……)アシスタントとしてやるべきことは夢中でやるわけです。何も知らずに入っているわけだから、必死についていって夢中でやって、結果的に身につくものだから。何か、変な「ここはステップで」みたいな感じでやっているような人は絶対無理です。そこで全力尽くさないと勉強にはならないですよね。実際、そんな簡単にやれるようなことでもないので、必死になってやらないとついていけないのが殆どですから。そうですね。最近の子たちを見て思うのは“漫画しか考えない”というか“漫画以外の事はちょっと置いておく”という時期は必要ですよね、絶対。色々な欲求をそれぞれ満遍なく満たしている子が多い気がします。でも、期間限定なんだから、その期間、漫画だけっていう風にやっぱりやるべきだと思います。色々満たしているから、どんどん緩くなっていくと、そう思いますけどね。

思い当たるフシがざくざくある。“○○以外は置いておく”ことができないのが、僕のひとつの弱点なのは間違いない。「色々満たしているから、どんどん緩くなっていく」……やはり「以外」は置いとかないといけないよなぁ。

僕自身について考えると、単に欲求を「それぞれ満遍なく満たしている」というよりも、他を切り捨てて取り組むべき「○○」によって自分を支えられるという確信がないために保険をかけてしまうから、色々なことをしている部分が大きい。

少なくとも漫画がすぐに産業として成り立たなくなる気配はないので、その点の不安はないだろうが、しかしある個人が漫画で食っていく立場になれるかどうかは常にリスキーなので、やはり井上の発言は「リスクを取れ」というメッセージと受け取れる(ただし、井上の発言は、アシスタントの段階から、漫画家として独り立ちできるかアシスタントのままか、という文脈で出てきてるんだけど)。

ここにある壁は念能力で言うところの「凝」程度では破壊できず、集中する箇所のほかは「絶」する「硬」を必要とするわけだ。他のリスクを高めるほど、ある能力は強くなる。まこと、念能力は人生のある真理を語るのに便利だ。

そうする必要があるのであれば、そうせざるを得ない。ということはわかっているのだが、身体はそれを拒む。「どうしたいんだお前は」と他人に言われるが、自分でも聞きたいですよ。どうしたいんだお前は。

Permanent Link | Writebacks (0) | Diary | edit
Tagged as: , , , ,

タギングプラグイン試案

2006/04/11 Tue 14:10

blosxomにはカテゴリが実装されてるけど、これはあくまでツリー構造しか表現できない。

+- ニュース +- 政治
|           +- 国際
|           +- IT
|
+- デジタル +- ガジェット
            +- 新製品

たとえば上のようにツリー化されていると、「新製品のニュース」を入れる場所にちょっと悩む。/ニュース/ITなのか、/デジタル/新製品なのか、あるいはそもそも「新製品」のカテゴリ位置がまずかったのか、新たにITの下に別のカテゴリを作るか、全面的にカテゴリ構造を見直すか……などなど面倒だが、タギングというのはツリー構造にまつわるこの種の悩みを解決するために編み出されてきたわけなんだろう。とりあえずすごくラクである。

じゃあblosxomでどうするかというわけだが、とりあえずblosxomデータファイルの2行目(タイトルのすぐ次)にマークアップされた行があればよさそうだ。

tag:ニュース デジタル 新製品

という書式でもいいし、はてなダイアリー式に

[ニュース][デジタル][新製品]

でもいいかもしれない。ここまではそんなに難しいことはなさそう。表示の際にエントリーごとにタグを引っぱってくるのも、通常の作業に一段階噛ませてやればいい話だし。

問題は、そのタグをクリックしたときに同種のタグが付されているエントリーを探してくる作業である。タギングで肝要なのはこの機能で外してしまっては換骨奪胎なのだが、しかしいちいちFile::Handleでシークしていちいち開いて2行目まで読んで~みたいなのはけっこう負荷が大きくなる気がする。Flickr式の頻度を考慮したタグ一覧を出すとすればなおさらである。plugin/state/以下に専用ファイルを置く案もあるが、編集が面倒になりそうだし冗長だしそれほど負荷軽減効果もなさそう。

というわけで実現の可能性は十分にあるが、優先度は低くしつつ方法を検討する方向で。

まったく関係ないけど、同じタイミングで、デスクトップでWikiが使いたいなぁと思ってJavaScriptで作ろうかと思った、のとさらに同時に誰か作ってるだろうと思って探してみたら、あった。

kyoさーん。さすがでございます。

追記(4/14):やはり予想していた展開ですが、taggingプラグインはすでに存在します。まだしっかりソースを見てないのでどのように実装してるのか詳しくはわかりませんが、2行目にタグを書くというところは上記の案と同じみたい。とりあえずここにも設置してみました。自分で作る気力が失せるほどしっかり動いてくれてます。

関連:taggingプラグイン設置 (2004 04 14)

Permanent Link | Writebacks (0) | Blosxom | edit
Tagged as: , ,

鯖復旧

2006/04/11 Tue 04:52

お、やっと復旧しましたね。レスによると4時20分ごろだったようで。Wiki記法プラグインが挙動不審なままですが、今晩も放置して寝ます。RSSのexcerptにWiki記法がそのまま吐かれてるのも考えないと……。

参照:無料ホスティング「XREA」が利用不能の状態に、復旧は11日以降の見込み (INTERNET Watch)

追記(4/12):「RSSのexcerptにWiki記法がそのまま吐かれ」る問題は、ファイル名を変えてRSSプラグインよりも前にWiki解釈プラグインが実行されるようにしてあっさり解決。

Permanent Link | Writebacks (0) | News | edit
Tagged as:

Wiki記法プラグイン

2006/04/08 Sat 01:37

今日はあまりにもやる気が出ないのでWiki記法プラグインを作ってました。

yukiwikixプラグイン(公式が消滅してるようなのでリンクなし)も選択肢としてはあったけど、記法を自分で定義したいことと、YukiWikiをインストールするのが冗長な気がしたこともあって自作することに。

とりあえず以下の機能を実装。

  • 段落
  • 強調(ボールドイタリック
    • いまのところYukiWiki互換(日本式)でbとiを使用。でもクォート2つでem、3つでstrongにするかもしれない。
  • リスト(数字あり・なし)
  • リンク
  • PRE(20060408)

ToDoとしては……

  • 引用(blockquote)
  • テーブル(table)
  • 定義リスト(dl, dt, dd)
  • 改行(br)
  • 消去線(text-decoration: line-through)
  • InterWikiName

くらいかな。HTMLタグの扱いなど考えるところも多そうだけど、少しずつ作っていこう。

追記(4/8):preやblockquoteのマークアップは、はてなダイアリー互換にする方向で。とりあえず普通のpre(スーパーpreじゃないほう)だけ実装。

相変わらずTBスパム食らってますな……少し設定を絞るか。まぁいくらチューンしてもイタチごっこなんだろうけど。

追記(4/20):とりあえずToDoにある項目は消去線以外すべて実装済み(4/14時点)。なかなかいいかんじ。あと考えられるのはPukiWikiにあるBR、TABLEのCOLSPAN/ROWSPANと、イメージ、InterWikiName、あとHnも一応つけるべきか……けっこうあるなぁ。

Permanent Link | Writebacks (0) | Diary | edit
Tagged as: , ,

またプラグイン設置

2006/04/05 Wed 11:19

久しぶりにblosxomプラグインを触ったら面白かったので、また改造してみました。

categoriesをkyoさん版に差し替え(いまのところcategory_titleと併用)、さらにtypesterさんのrecentwritebacks_treeをちょこちょこといじって導入。

ん~、プラグイン探しをサボりまくっていたのは失敗だなぁ。非常に快適。これでコメントもトラックバックも(主にスパムだろうけど)見逃さないよ!

追記:あとRaelのwriteback 2003-09-18をuse strictしたり名無し置き換え機能つけたりurlがあるときだけアンカーをつけるようにしたり。

っていうかもうraelity bitesってblosxomじゃなくてTypoで運用されてるのか。なんかちょっと残念。Typo調べてみるか……ウェブでの管理インターフェースとデスクトップクライアントがあるのね。

Permanent Link | Writebacks (0) | Blosxom | edit
Tagged as: ,

category_titleプラグイン

2006/04/02 Sun 23:27

kyoさんのentry_titledate_titleプラグインを参考にして、カテゴリーもtitle要素に入れられるプラグインを書いてみました。ベターな解決がすでに存在するかもしれませんが、一応公開(kyoさんが作ってないのは、わざわざ作るまでもない方法があるから?)。

ファイル名をcategory_titleとしてpluginsディレクトリへ入れて、head.flavourの中に$category_titleを追加してください。$individual_flagを1にすると、個別エントリーを表示する際にもカテゴリーを表示することができます。
DOWNLOAD

追記(4/3):ああ、categoriesで$categories::titleが使えるじゃんorz というわけでまったく意味がありませんでしたとさ。でも個別エントリー表示のときタイトルにカテゴリを入れるかどうかの選択ができる点だけは意味があるかな。

Permanent Link | Writebacks (0) | Blosxom | edit
Tagged as: ,

スパム対策

2006/04/02 Sun 18:15

コメント/トラックバック(つまりwriteback)スパム対策をさらっと探してみたら、すでに同じ悩みを抱えていたblosxomerたちが対策を考案されていて、前回紹介したCAPTCHAプラグインのほかにも複数の選択肢があった。

まとめとしてとても参考になったのは以下の2エントリー。

で、上の選択肢の中ではcolor99さんのspam_blockerが使いやすく、かつ求める機能も十分満たされているようだったので、さっそく設置。特に難なく動いてくれているようで、素晴らしい。このまましばらく様子を見てみようと思う。

同時にhail2u.net/all about blosxomのkyoさんの手になるentry_titledate_titleを設置(date_titleはちょっといじった)。非常に快適。

しかし、クリエイティブであろうとしなければ、ストレスを抱えずに生きていくコストは小さいなー。まぁ僕が楽をするためには誰かがクリエイティブでいてくれないといけないし、クリエイティブであれという圧力は常にあるわけだけど、それはすなわち苦しく生きていけという指示にもなってしまう。んでそういうのが「ストレスのある人生には張りがある」というようなストレス肯定論へとつながっていくのかしら。まぁそこにいくばくかの真理があると思わなくもないけど、楽に生きたいと思って実際にそうしてしまう人の気持ちもよくわかる。

ともあれ、hackerのみなさま、とりわけcolor99さんとkyoさんに感謝。

Permanent Link | Writebacks (0) | Blosxom | edit
Tagged as: , ,