github.comに作ったリポジトリの名前を変更する

No Comments
github.com上に作成したリポジトリの名称は、下記の手順で変更できます。 ダッシュボードの右側 のYour Repositories のリポジトリ名をクリッック -> editボタンをクリック -> 画面右下に変更した名称を入力し、 update name をクリック 上記の手順で、リポジトリ名を変更できます。

Web Creator 2009年5月号に記事を執筆しました。

No Comments
もうすぐ6月号が発売されるこの時期に告知するというのも微妙なんですが、web creators 2009年5月号の特別付録小冊子の一部の記事を、studio-int の石橋ひでやすさんとの共同執筆により書かせていただきました。 全国書店にて発売されておりますので、ぜひぜひお買い求めくださいませ。  

JavaScriptのArray.lengthプロパティでは、配列の要素数が取得できないことがある。

No Comments
最近知ったことなのですが、JavaScriptの配列のlengthプロパティは、配列の要素数を返すワケではないそうです。 JavaScriptの配列をも~っと深く理解する:lengthの不思議な動作 試しに、下記のようなコードを実行してみてください。 配列の要素数は1個であるにも関わらず、6と表示されるはずです。 <html><head><script type="text/JavaScript"> var hasOneElement = new Array(); hasOneElement[5] = 'one'; alert(hasOneElement.length);//6が表示される。</script></head><body></body></html> そこで、配列の要素数を取得するメソッドをArrayオブジェクトのプロトタイプに追加してみます。 <html><head><script type="text/JavaScript">Array.prototype.count = function(){  var count = 0;  for (var key in this) {    if (this.hasOwnProperty(key)) count++;  }  return count;}var test = new Array();test[5] = 'one';test[100] = 'two';alert(test.length); //101 が表示される。alert(test.count());//2 が表示される。</script></head><body></body></html> こうしてみると、既存のビルトインオブジェクトに対してメソッドを簡単に追加できるJavaScriptは、面白い言語だなぁと感じます。

Piece_Unity 1.7.x 以降のバージョンのエントリポイントを一つにまとめる。

No Comments
Piece_Unity 1.7.0以降、URLマッピングに利用される変数が、$_SERVER['SCRIPT_NAME']ではなく$_SERVER['REQUEST_URI'] に変更されました。 以前に利用されていた定義済の変数$_SERVER['SCRIPT_NAME']はmod_rewriteによってURLが書き換えられた場合、書き換え後のURLが格納されます。 このため、continuation.phpで、$_SERVER['SCRIPT_NAME']の値を書き換え前のURIに戻すためのやや複雑な処理を記述する必要がありました。 一方、 $_SERVER['REQUEST_URI']は、mod_rewriteの影響をうけないので、この書き換え処理は不要ですので、非常に簡単にエントリポイントを一つのファイルにまとめることができます。 例えば、こちらで紹介されているサンプルアプリケーションの場合、.htaccessファイルをwww/htdocs/直下に作成し、下記のような記述を行います. <IfModule mod_rewrite.c>    RewriteEngine On    RewriteBase /    RewriteCond %{REQUEST_FILENAME} !-d    RewriteCond %{REQUEST_FILENAME} !-f    RewriteRule ^(.*)$ continuation.php</IfModule> これで、リクエストされたファイルが存在しない(ファイルでもディレクトリでもない)場合、continuation.phpが呼ばれることになります。 このcontinuation.phpファイルの記述は、www/htdocs/order.phpの内容とまったく同じです。 <?php require dirname(__FILE__) . '/../webapp/config/bootstrap.php'; Piece_Unity::createRuntime()->dispatch(); このファイルをwww/htdocs/continuation.phpとして保存します。 フローの登録は通常どおり必要となります。このときに指定するURIは、書き換え前のものとなります。 ... - name: flowMappings type: configuration value: - url: /register-with-non-exclusive-mode.php flowName: Registration isExclusive: false ... # 上と同じインデント (字下げ) レベルに以下の 3 行を追加 - uri: ...

Piece_Unity 1.6.x のエントリポイントを一つにまとめる。

No Comments
Piece Frameworkのプロダクトの一つ、Piece_Unityの1.6.x系を利用して、ステートフルなWebアプリケーションを開発する場合、「エントリポイント」と呼ばれるファイルをフローの種類の数だけ用意するのが一般的だと思います。 そして、各エントリポイントへのurlが、どのフローと結びつくのかを、Dispacher_ContinuationプラグインのflowMappingsという設定ポイントで指定することになります。 - name: Dispatcher_Continuation point: - name: useFlowMappings type: configuration value: true - name: flowMappings type: configuration value: - url: /approot/crud/list.php flowName: Examples_CRUD_List isExclusive: false - url: /approot/crud/manage.php flowName: Examples_CRUD_Manage isExclusive: false - url: /approot/regist.php flowName: Examples_CRUD_Regist isExclusive: false 例えば上記の例では、http://hostname/approot/crud/ の直下に それぞれ、 list.php, manage.php. regist.php という三つのPHPファイルを設置する必要があります。 これを、Apacheのmod_rewriteモジュールを利用して、一つのPHPファイルのみで済ませる方法を考えてみました。 参考にしたのはCakePHPのapp/webroot フォルダ内の.htaccess ファイルの記述です。 まず、アプリケーションのルートとなるディレクトリ(ここではapproot)に、次のような記述をした.htaccessファイルを配置します。 <IfModule mod_rewrite.c>    RewriteEngine ...