Oct 31, 2008

Ubuntu Server 8.04LTS を8.10にアップグレードする

既存システムのupdateをしておく。

$ sudo apt-get update
$ sudo apt-get upgrade

update-manager-coreがインストールされていなかったらインストールする。

$ sudo apt-get install update-manager-core

/etc/update-manager/release-upgrades を編集して以下のように変更する。

Prompt=normal

do-release-upgradeする。

$ sudo do-release-upgrade

追記:

メモリ256MBのSlicehostでアップグレードしたら、Apache2 + mod_python + tracの構成がちゃんと動かなくなってしまった。tracが0.11になってApacheのプロセスがバカでかくなってスラッシングを起こしていた。ロードアベレージが60とか(笑) FastCGIで動かすことにして今は事なきを得ている。

Oct 26, 2008

華にしき・三軒茶屋

うちの近所に「華にしき」という居酒屋があります。ググってもあまりヒットしないのですが、試しに行ってみたらこれが隠れた名店でした。


大きな地図で見る

ここは料理にハズレがありません、お造りも天ぷらも。この名状しがたい「ヒット」加減を私はどう言語化したらいいのだろう…。つまり、この店には「(値段からして過分な期待はしないにしても)こういうものがでてきたら嬉しいな」と思っている料理そのものが出てくるような不思議な安心感があります。サービスエリアやドライブインで刺身・天ぷら定食を頼むと「こういうものが出てきたら嫌だな」と思っているとそういうものが出てきちゃってぎゃっふんとなる瞬間がありますよね、その対極の感覚。

価格帯的には、お通し、お造りの三品盛り、カキフライ、天ぷら盛り、ビールくらいで4〜5千円程度。普通に酒主体に頼んで適当に摘んだ場合でも一人5千円で収まるくらいだと思います。酒を頼むとたとえ二人でビール一瓶しか飲まなかったとしてもシメに蕎麦を出してくれます(お通し代にコミコミと考えるとシックリ来る)。

月一くらいで通ってもいいなと思いました。

アルミニウムユニボディのMacBookを買いました

渋谷のヤマダ電機でアルミニウムユニボディのMacBookを買いました。2.0GHzの一番安いやつ。

先週の日曜日にはすでに売り切れで1週間〜10日待ちということだったのですが、2日後の火曜日に入荷、閉店間際にゲットしてきました。クレジットカード払いで13%ポイントが付きました。DVIアダプタとVGAアダプタを買わにゃならんのでそのときにポイントは使う予定。

完全に吊るしのまんま使っています。HDDの半端な換装は意味ないのでさておき、メモリは増設したいところ。まだ2GB PC3-8500は8,000円近くする(上海問屋 - 本店 PC3 8500 DDR3 S.O.DIMM)ので最低でも年明けまでは「待ち」です。

iTunesとiPhotoにそれぞれデータを突っ込んだ他は、Carbon EmacsとVMware Fusionをインストールして、あとはVMwareのゲストOSを粛々と整備するのみ。

アルミニウムMB, MBPの液晶ディスプレイに関しては既にいろいろ言われていますが、私はちょっと違った感想を持っています。そもそもノートPCに共通する「不幸」とは、構成部品のうち液晶ディスプレイとそれ以外の部分の製品寿命の乖離が大き過ぎることです。単純に故障の頻度という意味でもそうですが、テクノロジーのアップデートの速度や頻度の点でも液晶ディスプレイは(10数年前ならいざ知らず)小さいものに留まります。3年ごとに本体のリプレースが必要だと仮定すると「3年ごとにリプレースが必要な」液晶ディスプレイが最も経済的合理性に合致しますが、いったいそんな都合の良い製品が存在するでしょうか?存在しないでしょう?存在しないのなら、それはつまりノートPCの液晶はpoorな方が望ましいということです。「○○は同じ価格帯なのにもっと良い液晶を使ってるよ」というのもおかしな話です(もっと安い液晶を使って単価を下げた方が経済的合理性に適っているのですから)。要は、

「外付けのディスプレイに好きなだけテクノロジーとバジェットを投じれば済む話なのに、内蔵ディスプレイごときでガタガタ言うな。てへ。」

というのが率直に私が思うところです。

Oct 24, 2008

クライマックス・シリーズ・第2ステージ・第1戦

一昨日のクライマックス・シリーズ・第2ステージ・第1戦を観戦してきました。

中日ドラゴンズ 公式サイト - 試合速報

久々に関東で勝ちゲームを観戦した気がします。記録によると5月9日の巨人 - 中日 7回戦以来(!)

ウッズの内野ゴロをFcにした荒木の走塁、8回裏1アウト満塁からの井端の守備、中村紀の集中力、クライマックスシリーズに入ってからなぜか絶好調の岩瀬など見どころの多いゲームでした。どのプレイが欠けても「負け」か良くても「負けに等しい引き分け」になっていたでしょう。山本昌はまたしてもポストシーズンの零勝記録を更新しましたが、6戦目までもつれ込めば再び山本昌-グライシンガーの登板になるはずなので期待しています。

姿勢のいい菊川怜ファン専用:

「カメラ目線の幼女」趣味の野球ファン専用:

森繁ファン専用:

その他:

CS 2nd Stage 1st Game

Slicehostが Rackspaceに買われるらしい

このブログのホスティングをしているSlicehostが結構大手のホスティングプロバイダであるRackspaceに買われるようだ。

Rackspace FAQ // Slicehost - VPS Hosting

Slicehost is pleased to announce that we have entered into an agreement to be acquired by Rackspace Hosting, Inc. Once the transaction is complete, Slicehost will be a wholly-owned subsidiary of Rackspace.

そんなにエキサイティングな話ではないけれど、財務的に安定するだろうし、事業の継続性は高まったのではないかな?ひょっとしたらもっとネットワーク環境の良いデータセンタに移れるかもとちょっぴり期待。

JasonとMattのギーク臭いプロジェクトとしての身軽さは失われるかもしれないけれどね。

Oct 20, 2008

Minifier Plugin

どうでもいいのですが、Movable TypeでJavaScriptやCSSのMinify機能を実現するプラグインを書きました。

Minifier - ogawa - スタイルシートやJavaScriptファイルのminify機能を実現するプラグイン。 - Google Code

JavaScript::MinifierCSS::Minifierを使っているので、圧縮率は「それなり」です。特にJavaScriptの方は真面目に書けばもう少し圧縮できるはずです(ざっと読んだ限りではコメントハンドリングがヌルい)。

Oct 18, 2008

VMware Remote Console Plug-in でJISキーボードのアンダースコアを入力可能にするには

VMware Server 1.0のときもVMware Server Consoleでも同じ問題があったのだが、2.0のVMware Remote Console Plug-inでもJISキーボードでアンダースコアが入力できないという問題がある。

~/.vmware/configというファイルを作って、

xkeymap.keycode.211 = 0x073

と書いておけば入力できるようになる。すぐ忘れるので φ(・_・") メモメモ

そうそう、今年もVMware Virtualization Forumが開催されるようだ。

VMware Virtualization Forum 2008 : ホーム

今年は出張と重なっているので残念ながら参加できない。VDC-OS(コンセプト)の話をちゃんと聴きたかったのだが。

Oct 15, 2008

Disqus Exporterでインポートしたコメントを verifyするには

Disqus Exporter for MTを使ってMTのコメントをDIQUSにインポートすると、「Unverified」コメント(DISQUSのアカウントを持っていないユーザのコメント)として登録されてしまいます。

これは妥当な仕様です。コメンターのメールアドレスなどを自動的にDISQUSアカウントに関連付けてしまうと、API経由で人のコメントを捏造できてしまいます。API経由でコメントをポストするたびに、アカウントを持っているユーザ自身にそのコメントの承認要求を送って承認させるという方法もあり得ますが、何年の前からの自分のコメントを承認するのはバカバカしい作業ですし、結局その承認システムへのスパミングが可能になってしまうので意味がありません。

しかし、後からDisqus Exporterで変換したコメントをDISQUSアカウントに統合する方法が「ないこともない」です。

UnverifiedコメントをDISQUSアカウントに統合する方法

まず、DISQUSで新たに「Unverified」コメントをポストします。DISQUSからログアウトして名前とメールアドレスを入力してポストすればUnverifiedコメントになります。このとき、メールアドレスに以前MTコメントをポストするときに使ったのと同じアドレスを使います。

ポストしたコメントのユーザアイコンにフォーカスを合わせると、以下のようにポップアップ表示されます。

ちなみにコメンター画像が表示されているのは、メールアドレスがGravatarに登録してあるためです。登録していない場合にはデフォルト画像が表示されます。

このポップアップ内の「unclaimed profile」というボタンをクリックしてみましょう。下のようにユーザ画面が表示され、先ほどコメントをポストする際に入力したメールアドレスを使って投稿されたすべてのDISQUSコメントが一覧できるはずです。

今から行う作業は、これらのすべてのコメントをVerifyすることでDISQUSアカウントに統合することを意味します。DISQUSアカウントに統合されたコメントは、DISQUSユーザの管理画面で一覧することができますし、コメンターの意志で削除することもできます。

上の画面で「Claim Profile」というボタンをクリックしてみましょう。ログイン画面が表示されます。DISQUSのユーザ名とパスワードを入力して、ログインします。

下のようにVerifyするためにメールアドレスの入力フォームが表示されます。入力して「Done」をクリック。

しばらくすると、Verify用のURLが記載されたメールが届きます。Verifyしてみましょう。投稿したコメントと、そのコメント投稿時のメールアドレスを使用した過去のコメントすべてが、DISQUSアカウントに統合されるはずです。

まとめ

  • Disqus Exporter for MTでDISQUSにインポートしたコメントはUnverifiedコメントになる。
  • Unverifiedコメントは、(サイトオーナーではなく)コメンター自身の意志でDISQUSアカウントに統合することができる。その手段はDISQUSが提供している。
  • UnverifiedコメントをDISQUSアカウントに統合するとき、同じメールアドレスでポストされた他のすべてのUnverifiedコメントも同時に統合される。
  • 一旦Verify作業を行った後、他のサイトオーナーがDisqus Exporterを使ってインポートしたとする。その場合、同じメールアドレスを持つUnverifiedコメントが追加され得る。(どこのブログでもいいので)ふたたびverify作業をすればその時点までに追加された分が統合される。

Oct 10, 2008

Disqus Exporter for MT

WWW-Disqusを使って、MTのコメントをDISQUSにブッこむツール「Disqus Exporter for MT」を作りました。このブログの過去コメントもすでに全部DISQUSに移行してあります。

DisqusExporter-0.1-dev.zip
ogawa - Revision 607: /trunk/DisqusExporter

注意点

インストール方法などを説明する前に注意点を述べておきます。

  • 発火などの危険はありませんが「実験室」クオリティです!
  • disqus-exporter.plをWeb reachableにするとUSER_API_KEYを盗まれます!
  • 盗まれると(つーか流出させると)そのDISQUSアカウントの管理下の全ブログにスパムコメントの絨毯爆撃が可能になります!
  • PublishCharsetがUTF-8のブログでしか動作確認していません!多分UTF-8以外では無理!
  • 実はMT3で動作確認しています!でもMT4以降でもきっと大丈夫!

あと、これはTipsですが、DISQUSにブッこまれたコメントは、MT側では「保留中のコメント」に変更されます。Disqus Exporter for MTをインストールする前に「保留中のコメント」を不要なら消去しておくと、都合がよいケースがあります。例えば、「このツールでDISQUSにブッこむ→やっぱりなかったことにしたい」という場合、あとで「保留中のコメント」をまとめて「公開」するだけで済みます。

インストール方法

まず、パッケージの中のtools, extlibの中身をMTの対応するディレクトリにコピーしてください。

パッケージにはMakamaka Hannyaharamitu / JSON-1.15 - search.cpan.orgが同梱されています。コピーする際にMTのextlibに含まれている古いJSONモジュールを、同梱されているJSONモジュールで置き換えることを忘れないでください。

コピーが済んだら、toolsディレクトリがWebなどで外部からアクセスできないことを確認してください。絶対に確認してください。

確認が済んだら、次にtools/disqus-exporter.plを編集して、以下の定数を適切に設定してください。

  • BLOG_ID
    ブログIDを指定します。
  • SHORT_NAME
    DISQUS | Add a websiteで作ったフォーラムのShort nameを指定します。
  • ANONYMOUS_EMAIL
    メールアドレスがないコメントに付与するダミー用のメールアドレスを指定します。
  • USER_API_KEY
    http://disqus.com/api/get_my_key/で取得できるUser Keyを指定します。DISQUSにログインしている状態でないと取得できません。

以上でインストールはおしまいです。

利用方法

コマンドラインからtools/disqus-exporter.plを実行するだけです。MTのコメントが順次DISQUSにイクスポートされ、イクスポートに成功したコメントはMT側では「保留中のコメント」に変更されます。保留中のコメントに設定するのは、再実行した際に同じコメントを複数回イクスポートするのを防ぐためです。

実行が完了すると以下のような統計情報が表示されます。

$ cd <MT_DIR>; tools/disqus-exporter.pl
-----------------------------------
 Statistics
-----------------------------------
Processed entries: 100
  Skipped entries: 30
Exported comments: 200
  Failed comments: 5
-----------------------------------
 Permalinks without Disqus threads
-----------------------------------
http://www.example.com/blog/archives/000745.html
http://www.example.com/blog/archives/000753.html
http://www.example.com/blog/archives/000756.html
http://www.example.com/blog/archives/000759.html
(snipped)

上の例では、100件のエントリーが処理され、30件のエントリーの処理がスキップされています。また、200件のコメントのイクスポートに成功して、5件は失敗しています。

なぜエントリーの処理がスキップされたかというと、そのエントリーアーカイブに対するDISQUSのスレッドがまだ作成されていない(そのエントリーアーカイブがブラウザなどで閲覧されてコメントフォームが表示されるまで作成されない)ためです。「Permalinks without Disqus threads」以下に表示されているのは、そのようなエントリーアーカイブのURLです。片っ端からブラウザで閲覧するかしばらく放置してからtools/disqus-exporter.plを再度実行すればスキップされずに処理されるでしょう。

またなぜイクスポートに失敗したコメントがあるかというと、APIの処理能力のせいでたまに失敗することがあるというだけです。気にせずに再度実行してみてください。ダメな場合、コメント欄で教えてください。

Oct 8, 2008

WWW-Disqus

WWW-DisqusというPerlモジュールを書いてみました。StraightforwardにDISQUS APIを叩くためのインタフェースを提供しています。

ogawa - Revision 637: /trunk/WWW-Disqus

こんな感じで使えます。詳しくはDISQUS | APIを参照。

#!/usr/bin/perl
use strict;
use warnings;
 
use WWW::Disqus;
 
my $forum_name = 'your forum short name';
my $user_api_key = 'your user api key';
 
my $api = WWW::Disqus->new;
$api->user_api_key($user_api_key);
 
my $forum_id      = $api->get_forum_id($forum_name);
my $forum_api_key = $api->get_forum_api_key($forum_id);
$api->forum_api_key($forum_api_key);
 
# The above 3 lines can be rewritten by using a helper method:
# $api->set_forum_api_key_by_forum_name($forum_name);
 
use Data::Dumper;
print Dumper( $api->get_thread_list() );

で、いくつか試した結果、DISQUS APIには以下のような疑問点があることが分かりました。

  • update_threadでslugを設定する際、アンダースコアを含む文字列を設定できない。
  • thread, postを削除するインタフェースが存在しない。
  • (ちょっと自信がないが)thread_by_identifierで生成したthreadとURLを関連付ける方法がない。

洗練の余地が残されていますね。

あと、Wordpressのプラグイン(DISQUS Comment System)には、API version 2が使われていて、これに関するドキュメントがどこにもありません。

Movable Typeデザインカスタマイズブック MT4.2対応 クリエイターのためのValue Design (タイトル長い!)

「Movable Typeデザインカスタマイズブック MT4.2対応 クリエイターのためのValue Design」という本をいただきました。

この本はMovable TypeのテンプレートカスタマイズのHow-To本ですね。お仕事などでMTテンプレートをいじる必要に迫られた初学者などがターゲットですね。

ちなみにこの本の著者らはHope Collective Inc.という会社を(私の主な棲息地域であるところの)三軒茶屋に起業したばかりっぽいです。活躍を期待しております。

Oct 6, 2008

MTに DISQUSを配備するには

MTにDISQUSを配備するにはプラグインを使う方法もあるのですが、私の場合はMTのコメント許可、トラックバック許可を双方ともOFFにした上で、エントリーアーカイブのテンプレートに以下のように書いています。

<div class="comments">
  <h2 id="comments" class="comments-header">Comments and Trackbacks</h2>
  <div id="disqus_thread"></div>
  <script type="text/javascript">
    var disqus_url = '<$MTEntryPermalink$>';
    var disqus_title = '<$MTEntryTitle encode_js="1"$>';
    var disqus_message = '<$MTEntryExcerpt encode_js="1"$>';
  </script>
  <script type="text/javascript" src="http://disqus.com/forums/short_name/embed.js"></script>
  <noscript><a href="http://short_name.disqus.com/?url=<$MTEntryPermalink$>" rel="nofollow">View the discussion thread.</a></noscript>
</div>

short_nameのところには、DISQUSにブログを登録するときに設定したshort nameを指定します。

Oct 5, 2008

このブログのコメントシステムにDISQUSを使い始めました

Movable Type組み込みのコメントシステムを使うのを止めて、DISQUSという外部コメントシステムにアウトソースすることにしました。

サイトオーナーにとっては、スパムコメントや再構築のオーバーヘッドの心配をする必要もなく、スレッド機能やユーザ・コメントのレーティング機能を備えたコメントシステムが利用できるというメリットがあります。あ、おまけでトラックバック機能も付いています。

DISQUSのアカウントがなくてもコメントはできますが、一旦DISQUS | Login or Sign Upでサインアップしてアカウントを作っておけば、アバター機能やコミュニティ機能が使えたり、自分が書いたコメントを一覧できたりするのでお勧めです。

IntenseDebateやSezWhoでも良かったのですが、IntenseDebateは(多分)一時的にInvite Codeがないと登録できないようになっていて今は利用できません。DISQUSがサービスを終了しちゃったらとか、はてながはて子を始めたらとか、つまらない心配はしていません。相互に変換するためのツールもそのうちできるでしょうから。自分のところにユーザを連れてくるには相手からユーザを奪うツールが必要になりますからね。いざとなったら自分で書けばいいんです。

日本でいまいち流行っていないのは、多くのブログシステムで組み込みのコメントシステムと外部コメントシステムを同期する仕組みが提供されていないためかもしれません。外部コメントシステムがDISQUS APIのようなAPIを備えるようになったのもつい最近のことなので仕方のないことですけどね。Movable TypeのコメントデータをDISQUSに統合するようなツールくらいはそのうち作ってもいいかなと思っています。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com