Apacheモジュールはじめました

最近作りたいもの」でも書いたのですが、Apacheのモジュールを作ってみたいなと思っています。

そんなわけで、ちょっと前に買っていた『Apacheモジュール プログラミングガイド』を参考にかんたんなモジュールを作ってみています。Apacheにはずっと触れていたのに、理解が浅かったなあと反省しつつ、勉強です。

ApacheのモジュールはC言語で書いたコードをコンパイルして作るのですが、C言語は他人が書いたコードを流し読みするくらいの経験しかなく、ちゃんとプログラミングするのは未経験。

書籍ではApache 1.3系について説明されていて、2.0系の話は最後の章で違いとして解説されています。最近、触ってるのは2.0系ばかりだなと思いつつ、個人的に使えるUNIXの環境を見てみると、いつも使っているWindowsのノートパソコン内のCooperative Linuxの中で動いているApacheが唯一1.3系。とりあえず、そこを勉強中の開発環境とすることにしました。

実際にインターネット上で動かしたくなったら、その時考えます。

それにしても、Apacheモジュールに触れた書籍は少ないんですよね。ほかにあるのは洋書の翻訳版。

前にPerlをガシガシ書いていた5年くらい前には、mod_perlの情報目当てに、この2冊を手にとった記憶があるのですが、当時は理解できる限界を超えていたようです。今なら、参考になるかも。

Technorati-JP Tags:

Google AdSenseを始めてみた

Google AdSenseも申し込んでみたので、このサイト内にもGoogleの広告が表示されるようになりました。

広告がクリックされると僕にいくらか支払われるらしいです。いろいろ試してみようというだけで、特に儲けようという気もなく、そもそも少ないアクセス数では儲かるはずもない。

ある程度、サイトの内容に合わせたものが表示されるということなのだけど、どの程度マッチするのだろう。サイト運営者である僕の満足いく内容が表示されるのか、それとも僕の好みに合わない広告が出ちゃうことになるのだろうか。興味津々です。

実は、ブログ設置中に申し込んでしまったら、準備中という理由で承認されなかったんですよね。規約とかをよく読んでおけばよかった。全く知らずに申し込んじゃったのがよくなかったです。

Technorati-JP Tags:

どこにお金をかけるのか

無料と有料

今は、いろんなツールが無料で使える。
だけど、それでも有料なものはあって、たいていそれはものすごく高価だ。

Webサイトのアクセス解析ツールだと、Google Analyticsは無料、SiteCatalystは有料。負荷テストツールだと、JMeterは無料、LoadRunnerは有料。バグトラッキングシステムだと、tracmantisは無料で、JIRAは有料。例をあげるとキリがない。

お金 or 時間と手間ってだけ?

便利で無料のツールがあれば、工夫次第で仕事が効率的にできる。確かにそれは本当で、人手じゃできないことができたり、合理的に仕事を進めることもできたり、工夫できるのにしないのはもったいない。

でも、無料のツールには、便利さというメリットがある反面、その環境を整えるのには、結構な時間と手間がかかる(それも楽しいし、好奇心が満たされるというのは否定しません)。

逆に、有料のツールには、お金というコストはかかるけれど、環境構築の時間と手間は少ない。あとは困ったときのサポートとか安心さは買える。いやいや、それだけってことはない。ちょっと使いこなすだけでも、無料のものだと手の届かないような高機能なことが簡単にできる。

その高機能な部分が不要だったり、環境構築の手間は気にならなかったりするなら、無料のものでもいいと思う。でも、無料のツールを知っている人はたいていそれしか知らないことが多い気がする。「無料でこんないいツールがあるのに、金かけるなんて馬鹿だ」くらいに思ってるような気もする(かなりの偏見です)。

有料のツールには、機能だったり、品質だったり、お金を払うべき価値がきちんと存在する(低機能で質の悪いものもあるけどね)。たいていのソフトウェアには、試用版や機能限定版がある。試して使うだけでも、勉強になるはずだ。

有料のツールは、業界標準だったり、営業されたり、外的要因で導入されたものを使っているだけということが多いように思う。だからなのか、有料のツールしか知らなくて、代わりになる無料のツールを知らない人も多い。初めに使った名称で覚えちゃうから「LoadRunnerからQALoadにリプレースされて2年も経つのに、負荷テストツールのことをいまだにLoadRunnerって言う」みたいなことが起きえる(半分作り話)。

無料のツールは、無料だから、すぐに使うことができる。有料なものから見ると制限や機能不足があるかもしれないけど、そのツールが解決する問題の種類は同じだ。そういう種類のツールがあるというのを知るだけでも収穫だし、製品の良さを判断する知識も身に付く。

無料のツールを使ってみて、それで事足りるならハッピーだし、不足ならお金と相談すればいい。無料のツールの使い方が習得できたなら、有料のツールでも同等の機能は簡単に使えるはず。

無料のツールが上回ることも。

あと、大事なことがひとつ。無料のツールは、有料のツールの代わりのお手軽版というわけでもない。機能を絞っていることで使いやすかったり、広く受け入れられるのかわからないけど、尖った機能があったり、あなどれない。

たとえば、tracはBTSだけでなく、Subversionのリポジトリブラウザ機能もwiki機能もある。ほかのツールと組み合わせれば、JIRAでも同じことができるけれど、JIRA単体ではできないし、そもそも設定が面倒だ。

好きなツールなので、つい擁護してしまうけど、JIRAは、Subversion以外にも、CVSでもClearCaseでもPerforceでも連携できるという汎用性がある(大多数はSubversionでOKだろうけど)。wikiは無料のもあるし、別製品でConfluenceというのがある。リポジトリブラウザも無料のもあるし、Fisheyeという有料のものもある。まあ、ずいぶんとお金も手間もかかるけど、統合環境にできなくもない。(実例は、Zend Frameworkとか)。もちろん、tracではできないことができるいいツールです。

回りくどく長くなりましたが、いろいろ試してみるのがやっぱり大事だし、無料のものと有料のもの、どちらも価値があって、うまく使い分けるのが大事というお話でした。 


最近作りたいもの

最近勉強していることに絡んで、個人的にやってみたいこと。もしかしたら、すでに似たものがあるかもしれないけど、技術的なチャレンジでもあるんで。

本の著者と読者を結ぶコミュニティサイト

まだ、考えきれてないのだけど。
本の著者向けとしては、コミュニティサイトというよりもワークスペース的な感じ。原稿の編集履歴が見れたり、参考文献をクリップできたり。Todo管理というか、誤植などの修正管理とかもできると便利じゃなかろうか。
読者側は、読者同士で一緒に読んで話しあったり。書籍中で紹介されてる参考文献を見てみたり。
著者側は内容の間違いを直したり、内容を補足する記事を書いたりとサポートサイト的にも使える。
著者⇔読者コミュニティがうまくできたら、一部の読者に次の書籍のβ版をレビューしてもらったり、なんてどうだろう?
著者と読者じゃなくて、オープンソースソフトウェアの開発者(プログラマー)とユーザーだとすると、すでにこういうサイトはあるよね。

Apacheのモジュール

もともとは「モジュールを作ってみたい」というのが動機なのだけど、せっかくなら便利なものを作りたい。
携帯電話の機種判別とか絵文字の変換とかアクセス制限とかができるようなApacheのモジュールがあったら便利かなあと思ってます。Perl/PHP/Ruby/Javaなどなど、開発言語がなんであっても、共通して利用できるのがモジュールにしたいポイント。
たとえば、モジュールでHTTPヘッダを解析して「X-Mobile-???」などとHTTPヘッダに追加する。プログラミング言語側では、追加されたHTTPヘッダを見るだけで判断できるというイメージ。
PCで見たページのURLそのままで、携帯でも適した内容が見えるなんてこともできると思う(リクエストのURIから実際のファイルパスにマッピングしてあげる)。リダイレクトするとか、トップページで振り分けとかは、簡単だけど、全ページ同じURLでOKってのはどう?

携帯電話の情報を集めるサイト

携帯電話の技術情報をアーカイヴしてはどうだろうか。たとえば、携帯電話からのHTTPリクエストってどういうHTTPヘッダなの?とか、これってGPS対応してる?ワンセグ対応?みたいな情報が集まっていれば、便利じゃない? もちろん、NDAに抵触しない範囲で、外から使ってて解析できる範囲でね。

上に書いたApacheモジュール側で判別に使えるなというのが、1つ目の考え。
もう1つの考えとして、携帯電話の情報が集まれば、携帯電話ブラウザのエミュレータというと大げさだけど、画面表示や画面遷移はすっぱりあきらめて、リクエストの送信とレスポンスの受信だけをエミュレートするHTTPクライアントが作れるなあと。HTTPヘッダがカスタマイズできるソフトなら、情報だけ使ってもいいし。
機種別にカスタマイズしているコンテンツの確認作業の自動化とか、負荷テストツールとか、なにか使えないだろうか。

というわけで、ブログに書くことで有言実行を目指します!

Technorati-JP Tags: , , ,

『ユーザ中心ウェブサイト戦略』

仕事が落ち着いたら読もうと思っていたところ、初版が売り切れてしまっていて、年末くらいに再版されていたので、ようやく第2版を購入。年明けから、じっくりと読みました。

ウェブサイトの戦略立案、ウェブサイトの基本設計をするにあたり、どう考えていけばいいのかという方法論が紹介されていて、非常に参考になります。第1部では理論編、第2部は実践編と2部構成になっています。

ウェブサイトの構築に関わる人は立場や役割に関わらず、考え方として知っておくべきだと思うので、オススメの本です。

現実には、すでに慣れてしまったやり方で動いていると思うので、それが良くないものだとしても、変えていくことは難しいかもしれません。それでも、通読した後、一部分だけでも本の内容から自分なりに切り出して、実際の業務に適用できるかもしれません。

たとえば、「5分程度の簡易ユーザビリティテスト」なんかは、いろいろやりようはありそうです。同じ職場で違う業務をしている同期とか、内容が許せば家族相手とか。

これを読むまで、ユーザビリティというのを「ある画面とかあるシステムの使い勝手」程度に考えていたのですが、ウェブサイトの戦略、ウェブ全体の中でのサイトの位置付けという捉え方までできるのだなあ。この本は何度も読むことになりそうです。

ユーザ中心設計手法(UCD)だけでなく、ユーザビリティ、ペーパープロトタイピングとか、関連する分野に対して、ぼんやりと興味はあったものの、聞きかじりで、ちゃんと勉強していなかったので、これを機に勉強していきたいですね。

Amazonで軽く調べてみたところ、類書はこんな感じ。

 

 

 

 

Technorati-JP Tags: ,

Software Design 2006年 12月号

第2特集「Subversion+Tracでできる-バージョン管理&バグトラッキング」の中で、TortoiseSVNの利用方法を紹介しました。

雑誌自体は11月発売なので、今は店頭には置いていないのですが、記事を読んだ同業の方からメールをもらったことをきっかけに、お会いしてお話してみました。

初対面だったので、それほど深く話ができたわけではありませんが、普段できない交流ができたので、非常に楽しい時間でした。

雑誌への執筆は久しぶりでしたし、それほどお金になるわけでもないので大変でしたが、貴重な体験ができました。今年の個人的な目標は、形はどうあれ、世間へのアウトプットを積極的にしていこうということなのですが(で、このブログを始めたんですよね)、幸先よい感じです。

Subversion関連で知らなかった製品を教えてくれた方もいらっしゃいました。勉強中なので、いずれ紹介するかもしれません。

Technorati-JP Tags: , , ,

Google Analytics

発売当時に購入したものの読んだだけで使ってみなかったので、このブログのアクセス解析ツールとして「Google Analytics」を使ってみることにしました。といっても、まずは埋めこんでいるだけなので、活用していこうと思います。

Webで一部公開されていましたよ。

タグ埋め込み型は、「携帯はダメじゃん」とか「ロボット系はどこで見るの?」とか否定的だったのですが、FlashやAjaxのトラッキングもできるというのを見ていて気になっていたんですよね。

ほかにも関連書を3冊ほど発見しました。


Windows Live Writer雑感

初っ端から、WLWの話ばかりになりつつあるので、あと2点だけ。

IE/Firefox用のBlog Thisプラグイン

見ているページにリンクしたり、選択しているテキストを引用したりしてWLWを起動するIE/Firefox用のプラグイン。ブラウザのツールバーにボタンが追加されます。

同じサイトの過去記事:Windows Live Writer Tips & Tricksには、引用の仕方をカスタマイズする方法が載っています。あと、話は逸れますが、GMail This!なんてbookmarkletもありました。

元々はWindows Writer Team Blogで見たのですが、Windows Live Galleryに遷移したところで、エラーになってしまうんですよね。なんでだろ、日本からアクセスしてるから?

Live Writerfoxっていう似たツールもありました。こちらはコンテキストメニューに「Blog It」が追加されるので、便利そうだったのですが、日本語が見事に化けたりエラーになったりしてしまいました。

Web Layout/Web Previewがおかしい

WLWでは、設定時に実際のサイトからCSSとか関連画像なんかをダウンロードしておいて、 編集時にも実際のサイトさながらに見せてくれるのだけど(View->Web Layout)、メインのノートパソコンでは、正しく動作していないことが判明。別のマシンだと、うまく行っている(どちらもWinXP/SP2)。

再インストールとかしてみても、改善されないので、隠しフォルダを探ってみました。

「%USERPROFILE%\Local Settings\Application Data\Windows Live Writer\」に書かれるログ「Windows Live Writer.log」を見てみると、HTML以外のファイルが取得できてないらしい。

テンプレートが取得されるはずの「%USERPROFILE%\Application Data\Windows Live Writer\blogtemplates」の中を辿っていくと0バイトのファイルがたくさん生成されていました。

根本原因はわからなかったのですが、正しく動作しているマシンからデータを上書きしてあげたら、表示は正しくなったので、とりあえず良しとします。

Technorati-JP Tags: ,

Windows Live Writerのプラグイン – ソースコードの表示

プラグインを試してみて、いざブログにポストしてみたところ、行間や文字の背景色がWindows Live Writer上のプレビュー通りになりません。

うーん、Windows Live SpacesにポストするとOKなので、typepadでうまく表示するにはスタイルシートを見直さなきゃダメなのかも。

ちと、めんどいのと、Windows Live Writerネタが続いて、WLWブログみたくなりつつあるので、ひとまず寝かしておこうかと思います。

(というわけで、ここから本文)

こちらこちらの続き。

ブログの中にソースコードを掲載するときに色付けできたらいいなと思い、ソースコードのハイライト表示ができるプラグインを探してみました。

Code Formatter Plugin for Windows Live WriterSyntax Highlighterを使い分けることになりそうです。

Code Formatter Plugin for Windows Live Writerが良かった理由は、対応言語の多さと再編集しやすさ(残りの2つは再編集しやすくはない)。さらにワードラップを指定できたり、行数振れたりと色付け以外の機能も豊富です。ちなみに、Background colorが指定できるようなのだけど、僕の画面には入りきれないからか、選べませんでした。

ただし、高機能な分、生成されるHTMLの量も多いです。画面の表示は、こんな感じ。

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><script type="text/javascript">
document.write(
'XXXXX');
</script>
</body>
</html>

この5行分のHTMLを表示するために、かなり長いHTMLが生成されています。興味のある方は、このページのソースを見てみてください。

残りの2つのプラグインの場合も載せておきます。

Syntax Highlighterの場合。HTMLが対応言語になかったので、PHPで指定しましたが、ただ色付けされるだけなので、見た目がよければいいのです。

<script type="text/javascript">
document.write('XXXXX');
</script>
</body>
</html>

最後に、CodeFormat Pluginの場合。1行ごとに色を変えられるのはいいな。

<!–
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}

.csharpcode .lnum { color: #606060; }

–>

<script type="text/javascript">
    document.write('XXXXX');
</script>
</body>
</html>

それにしてもWindows Live Writerが出たのが8/11なのですが、紹介したプラグイン3つとも1週間かそこらで公開されています。すぐにこれだけのプラグインが作れるのはすごいですね。

ブログでソースコードの表示って、みんなどうしてる?みたいな話が以前あった気がしたのだけど、元のブログは見つけられず。こんなのもありました。


Windows Live Writerのプラグインいろいろ

こちらの続き。まだ、ブログを始めたばかりで、同じような定型作業というのが思い浮かんでいないのですが、Windows Live Writerのプラグインを調べてみました。

Windows Live Writer Version 1.0.1(6)の時点で、標準で使えるInsertコマンドは、次の4つ。

  • Insert Link
    普通のリンク追加です。
  • Insert Picture
    ドラッグ&ドロップやコピー&ペーストで画像を入れるプラグインです。枠や影をつけたり、エフェクトをかけたり、かんたんに画像を入れることができます。WindowsLiveWriterって名前のディレクトリが自動的に作られて、そこにアップされているようです。
  • Insert Tags
    tag付けできます。以前はこの機能はなかったのでしょうか、Tag4Writerっていうプラグインがあったようです。
  • Insert Maps
    スクリプトエラーが出て、うまく使えません。未調査。

次の画面キャプチャでは、前のエントリーで書いたAmazonやWikipediaのプラグインが追加されています。

それ以外にも、海外に目を向けてみると、さまざまなものがあるようです。Windows Live Writer Pluginsに載っているもので興味のあるものを一通り試してみました。

継続して使ってみてもいいかなと思ったのは、次の2つ。

  • Text Template
    決まった文字をたびたび入力する場合に便利。記事への署名とか?
  • Insert Spaces Emoticon
    Messengerなんかでおなじみの顔文字を入れるプラグイン。Windows Live Spacesのアイコン画像へのリンクを追加しているだけなんですが、絵で選べるのは快適です。

試してみただけのもの。

  • Insert Email to
    mailtoを入れることができるのですが、毎回入力内容が変わるような用途が思いつかなかったです。Text Templateのほうが汎用的で便利かな。
  • Ink Blog for Windows Live Writer
    おもしろそうだなと思ってインストールしてみたものの、TabletPCを持っていないので、試せませんでした。

ソースコードも公開してくれている方もいるようなので、僕も試しにプラグインを作ってみたいものです。

あとは、プログラムのソースコード向けに、行数を添えたり、文法に合わせてハイライトしたりという用途に使えそうなプラグインは3つほど比較してみたので、次のエントリーで。

Technorati-JP Tags: ,