LFchat – PerlとJavaScriptで動くチャットプログラム

LFchatはPerlとJavaScriptで動くチャットプログラムです。Cometを試してみたくて作った実験的なプログラムのため、低機能で実用性はありませんが、Waftのサンプルプログラムにちょうど良いので公開します。

概要

送信したメッセージが瞬時に全員の端末に表示されるチャットプログラムです。

サンプル

LFchat 0.02

ブラウザのウィンドウを複数使って、端末1台でも動作を試す事ができます。複数のウィンドウでこのサンプルを表示させて、1つのウィンドウから何かメッセージを送信してみてください。

動作環境

サーバー

PerlのCGIを実行できるウェブサーバーで動作します。Apache 2とPerl 5で動作確認しています。

クライアント

JavaScriptを使用できるブラウザで動作します。Internet Explorer 8とFirefox 3で動作確認しています。

インストール方法

ファイルをサーバーにアップするだけです。

  1. LFchatのプログラムをダウンロードしてサーバーに展開してください。
  2. ディレクトリ「LFchat-0.02」を任意の名前に変更してください。
  3. ディレクトリ「lib」と「var」に外部からアクセスできないよう制限を行ってください。(アクセス制限用の.htaccessを同梱しています。)
  4. ディレクトリ「var」にCGIの実効ユーザーが書き込めるようオーナーの変更またはパーミッションのセットを行ってください。
  5. ファイル「Changes」と「README」を削除してください。
  6. ファイル「lfchat.cgi」に実行パーミッションをセットしてください。

使用方法

ブラウザでlfchat.cgiにアクセスしてください。

ダウンロード

LFchat-0.02.tar.gz, LFchat-0.02.zip Mon Dec 7 00:42:40 2009

以下のライブラリを同梱しています。

ソース

http://www.tamashiro.org/src/LFchat-0.02/

免責

このプログラムを使用した事によるいかなる損害も作者は責任を負いません。

ASCIIコード表

    0x    1x  2x 3x 4x 5x 6x 7x
 x0 NULL  DLE SP 0  @  P  `  p
 x1 SOL   DC1 !  1  A  Q  a  q
 x2 STX   DC2 "  2  B  R  b  r
 x3 ETX   DC3 #  3  C  S  c  s
 x4 EOT   DC4 $  4  D  T  d  t
 x5 ENQ   NAC %  5  E  U  e  u
 x6 ACK   SYN &  6  F  V  f  v
 x7 BEL   ETB '  7  G  W  g  w
 x8 BS    CAN (  8  H  X  h  x
 x9 HT    EM  )  9  I  Y  i  y
 xA LF/NL SUB *  :  J  Z  j  z
 xB VT    ESC +  ;  K  [  k  {
 xC FF    FS  ,  <  L    l  |
 xD CR    GS  -  =  M  ]  m  }
 xE SO    RS  .  >  N  ^  n  ~
 xF SI    US  /  ?  O  _  o  DEL

プログラム開発での「再利用」はすでに破たんした考え方

Ajax、それはWeb2.0へと続く道 - @IT

プログラム開発での「再利用」という考え方は特にオブジェクト指向プログラミングの世界で強調されてきたものですが、これはすでに破たんした考え方だと私は見なしています。なぜかといえば、未知の未来のプログラムで再利用可能となるようにクラス等を開発する手間は極めて大きくなるのに対して、それだけの手間を掛けたものを再利用しようとしても、うまく使えない事例が多いからです。つまり、手間に比して得るものが少な過ぎるのです。ちなみに再利用(=未知の未来に備えること)を戒める標語がYAGNI (You Aren’t Going to Need Itの略。「それは必要にならない」)だろうと思います。

これはOpen Source JapanのArax採用に関するプレスリリースへのコメント。

Open Source Japan – Ajaxの弱点を克服した開発手法Araxを採用したWebシステム向けリッチクライアント開発技術「ダイナミック・コックピット」を発表

Web システムのリッチクライアント技術として、 現在 Ajax(Asynchronous JavaScript and XML)が注目を集めているが、 これは膨大な開発工数を要し、 また Web ブラウザへの依存度が高く、再利用が難しいなどの問題がある。

Perlのテストの実行

h2xsを使ったモジュールは以下のコマンドでテストを実行できる。

% perl -Ilib -MTest::Harness -e 'runtests @ARGV' t/*.t

ただし、WindowsのActivePerlの場合はコマンド プロンプトでワイルドカードが展開されないため使用できない。

C:>perl.exe -e "print @ARGV" t*.t
t*.t

以下のコマンドであればWindowsのActivePerlでも使用できる。

C:>perl.exe -Ilib -MTest::Harness -e "runtests glob 't/*.t'"