STUDIO KINGDOM
NetBeansでMercurialを試してみた
- 2009-01-25 (日)
ポストSubversionといわれているMercurialを試してみました。また、NetBeansが標準でMercurialをサポートしているようなのでNetBeansもついでに導入してみました。それぞれの特徴は下記のとおり。
Mercurial
ようはSubversionのようなバージョン管理ツールなんですが、大きな違いは従来のバージョン管理ツールとは違ってプロジェクト間で共有するリポジトリを事前に用意しなくて良いという点です。共有リポジトリを用意しないでローカルのみでバージョン管理することが可能で、また、後ほど構築した共有リポジトリにまとめてコミットしてしまうといったことが出来るようです。ローカルで個人的にバージョン管理、サーバ等の共通スペースでチーム間でのバージョン管理が出来るということですね。
NetBeans
Eclipseと同じような統合開発環境(IDE)です。Eclipseと比較すると、よりGUI的で動作が速いように感じます。個人的にはEclipseが細かいカスタマイズが可能な自作PCだとすると、NetBeansは安定したメーカ製のPCという印象を持ってます。またEclipseのようにJavaだけでなくPHPやRuby(Rails)、C等のメジャーな言語もサポートされています。
Mercurialのインストール
MercurialにもSubversionのようにWindowsクラインであるTortoiseHgがあるので、そちらをインストールしてみました。
ちなみにMercurialの意味は水銀で、水銀の元素記号がHgとなっています。
※TortoiseHgは現在のバージョンでは日本語環境に問題があるようです。NetBeans上で使う分には問題無いと思いますが、念のためTortoiseHg以外のインストーラのリンクを貼り付けておきます。
Mercurialの利用>インストール
それではまず、TortoiseHgをダウンロードしてきます。
http://tortoisehg.sourceforge.net/

↓

↓

ダウンロードしたexeファイルをダブルクリックして、インストールを行います。
NetBeansをインストール
下記サイトからNetBeansをダウンロードします。使用言語によって任意のツールを選択することが可能です。また、後から[ツール]->[プラグイン]で機能追加することもできます。
http://www.netbeans.org/downloads/?pagelang=ja

ダウンロードしたexeファイルをダブルクリックして、インストールを行います。インストールが完了したらNetBeansを起動して動作確認を行ってください。
NetBeans上でMercurialの基本動作を確認
まずはプロジェクトを初期化します。ナビゲーションからプロジェクトを選択し、[バージョン管理]->[プロジェクトを初期化]を選択してください。

プロジェクトフォルダにMercurialの管理ファイルが作成されます。Subversionは各フォルダに隠しファイルが生成されますが、Mercurialはプロジェクトフォルダ直下にのみ作成されるようです。これは良いですなぁ。

とりあえず、初回コミットを試してみます。コミットするフォルダを右クリックして[Mercurial]->[コミット]を選択。
コミットをクリックしたら下記ウインドウが表示されました。空欄には自分の名前とメルアドを記入すれば良いと思うんですが、Name Contextの欄がどういうことなのか分からない。Global to ~がサーバ等の共有リポジトリへのコミットでLocal to ~がローカルへのコミットってことでしょうか。

コミットした後、適当なファイルを編集して差分確認を行ってみました。

ちゃんとローカルとリポジトリで比較されてますね。時間があれば、サーバにMercurialをインストールしてそちらへのコミットも試してみたいと思います。

Flash CS3に入門してみた
- 2008-12-01 (月)
ので、ちょっとまとめておく。ちなみにFlashといっても、デザイナー等の芸術家向けのアニメーションタイプとプログラマー向きのアプリケーションタイプがあるとして、もちろん後者のアプリケーションタイプをターゲットにした内容になっています。
インスタンスのタイプ
インスタンスのタイプには以下の3つがある。
- ムービークリップ
- ボタン
- グラフィック
ムービークリップとグラフィックの違いがよく分からない。つまづく人は多いはず。大きな違いはActionScriptが「書ける/書けない」ということらしい。ムービークリップシンボルとグラフィックシンボルの違いは? – 教えて!goo
フレームについて

| ○ | 白マル | 空白キーフレーム | ムービークリップなどが何も無い状態が開始されることを示す。 他にレイヤーが無ければ、何も表示されないことになる。 |
| ● | 黒マル | キーフレーム | ムービークリップなどが初めて登場することを示す。 |
| a | 小文字のa | アクションスクリプト | アクションスクリプトが書かれているフレーム。 |
| □ | 白い長方形 | フレーム終了 | 続行されてきたキーフレームの状態が終了するフレームであることを示す。 |
| 上記以外 | 通常のフレーム | 前方のキーフレームの状態をキープする。 |
ActionScript用のレイヤーを用意する
ActionScriptをフレームに書く場合、ActionScript用のレイヤーを作り、そちらにまとめるようにする。

よく使うショートカット
| F5 | フレームの追加 |
| Shift + F5 | フレームの削除 |
| F8 | シンボルに変換 |
| F9 | アクションパネルを開く |
| Ctrl + Enter | ムービープレビュー |
フレームアクションと描写
フレームアクションは、そのフレームに再生が移ってきたタイミングで実行されるらしい。1フレームだけの場合にフレームアクションが繰り返されないのは、「1フレーム目⇒1フレーム目⇒1フレーム目」となり、再生が移ってきたという判定がされないからなのであろう。ちなみにfpsとは1秒間に何コマ再生されるかということ。
変数の宣言
var n:int = 10; var str:String = "Flashcs3"; var mc:MovieClip = new MovieClip();var value:*
コロンで区切って型を指定することによって、コードヒントが使えるようになる。型を厳密に指定しない場合は、4行目のように指定する。
アクションスクリプトはで来るだけ一箇所(1フレーム内)に収める
そうすることで以下のメリットがある
- 処理が細切れにならず、一箇所を確認するだけで全体の流れを把握することが出来る。
- 一箇所にまとめたスクリプトと一緒にムービークリップをシンボル化すると、扱いやすいシンボルになる。前述した1フレームの場合に、フレームアクションが繰り返されないという特性を利用できる。
タイムラインが読み込まれる順番
タイムラインは一番階層が上のメインフレームから下の階層に向かって順番に読み込まれる。同じタイムライン上で、初めてそのタイムラインに登場するムービークリップに対して上の階層からアクセスしようとすると値を取得することが出来ない。この問題は必要な場合は、処理を関数として予め宣言し、読み込んでおくことで解決できる。
Windows + Xampp環境にAkelosで簡易Blogを作ってみる(3)
- 2008-11-29 (土)
前回の「Windows + Xampp環境にAkelosで簡易Blogを作ってみる(2)」からの続きです。
この記事はAkelos公式サイトの解説動画を参考にしています。
1). 多言語対応を試してみる
Akelosはデフォで多言語に対応するための仕組みがあるようです。インストール時にen,jaなどを入力したのはこのためだったようですね。app/locales/blog/jp.phpを開いて、$dictionary['The Akelos Blog'] に格納されている値を日本語の任意の文字列に変更してください。一覧ページのタイトルが変更されていることを確認できると思います。
ここで、「http://localhost/en/blog/listing/」を開いてみましょう。タイトルは元の「The Akelos Blog」であることが確認できると思います。en.phpもjp.phpと同じフォルダ内に存在します。この機能と.htaccessを使えば、多言語対応のサービスが簡単に作れそうですね。
2). ログをとる
config/config.phpを編集して、ログファイルを出力するように設定を変更します。、boot.phpのインクルード処理の前にAK_LOG_EVENTSを定義します。
[sourcecode language='php']
define(‘AK_LOG_EVENTS’, true);
include_once(dirname(__FILE__).DIRECTORY_SEPARATOR.’boot.php’);
[/sourcecode]
登録や更新処理を行うとlog/development.logが生成され、ログ出力されていることを確認できると思います。
3). ユニットテスト
ユニットテストを試してみます。test/unit/app/modelsに生成したモデルに合わせて、ユニットテスト用のファイルが格納されているので、testコマンドで実行してみます。
php test ./unit/app/models/post.php
コマンドが実行された後、1件の失敗があることを確認できると思います。

では、テストが通るパターンを試してみましょう。test/unit/app/models/post.phpを開き、test_should_be_added()関数を下記のように書き直します。
[sourcecode language='php']
function test_should_be_added()
{
$Post = new Post(array(‘title’=>’First test post’, ‘body’=>’Say hello’));
$Post->comment->create(array(‘body’=>’hello!’));
$Post->save();
$Post->reload();
$this->assertEqual(1, $Post->comment->count());
}
[/sourcecode]
また、test/unit/app/models/comment.phpのtest_should_be_added()関数の中身は全てコメントアウトし、app/installers/comment_installer.phpの初期コメント生成の処理もコメントアウトします。
[sourcecode language='php']
//$Post = new Post(1);
//$Post->comment->create(array(‘body’=>”コメントをどうぞ。”));
//$Post->save();
[/sourcecode]
再度、コマンドを実行します。
php test ./unit/app/models/post.php
今度はテストが通ったことを確認できると思います。
解説動画では、Akelosコンソールで更に何かをしているようですが、あまり重要そうではないので省きます。
まとめ
解説動画を元に実際にAkelosをインストールして、簡単なBlogの作成、ユニットテストまで行いましたが、バージョンの違いのせいか、ところどころ異なる点がありました。ただ、触っていて感じたことは、「噂どおりCakePHPより良さそうだ」ということです。2つのフレームワークの比較について、時間があればまた記事にしてみたいと思います。