Aptana1.5 インストールと日本語化

2009年7月30日

カテゴリー: Adobe AIR, Ajax, Aptana, JavaScript — admin @ 1:44 AM

こんぬつわ。
JavaとかRubyとかやろうかなと思いつつも、結局気づいたらJavaScriptしか書いてない僕です。

JavaScripterな人たちにとって有名か有名じゃないかわかりませんが、Adobe AIRでAjaxやらMXML+ActionScriptを使ってデスクトップアプリが簡単(?)に作れるオーサリングツール、Aptana。AIRアプリをつくるときにものすごく重宝しています。
Eclipseを元に開発されたらしいので、(Eclipseのプラグインとしてのインストールも可)Java開発ならEclipse、JavaScriptならAptanaというイメージで使っています。

元々英語なので、インストール後に日本語化しなくてはいけないので、簡単に手順を。

[1]
Aptana公式サイトからAptana本体をダウンロード

[2]
ダウンロード完了後、インストール。

[3]
英語のまま使いたかったらこのままでも使えますが、日本語化するため、eclipseの日本語化プラグインを使います。(aptanaはeclipseをベースに作られているため使用可能)。

こちらからPleiade(安定版)をダウンロードします。

[4]
Pleiadesを解凍し、featuresフォルダとpluginsフォルダをAptanaがインストールされているフォルダに移動し、コピーする。

[5]
AptanaStudio.iniに下記を追記する。
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

Aptanaを起動し、日本語化されていればインストール成功

環境が整ったら、AIRを開発するための環境を整えたりすればおk(^q^)

名前をつけるのがめんどくさい時 – 無名JavaScript

2009年7月22日

カテゴリー: JavaScript — admin @ 6:49 PM

プログラムを組んでいるとき、名前をつけるのがめんどくさいと思うことが多々多々ある。
そんなときはどうしているのかというと、大抵、

JavaScript:
  1. var a = 'string';
  2. function b(){
  3.    return a;
  4. }

といった具合に適当につける。

ひどい場合は、

JavaScript:
  1. var ahya = function(){
  2.    return;
  3. }

とか、

JavaScript:
  1. var moe = 'ahyao';
  2. var ooiwa = function(){
  3.    return moe;
  4. }

など、人名使ったり、宇宙語使ったり…。

そこで、前回のブログで紹介した、無名関数や無名コンストラクタを使うことで、名前を考えずにとも、ある一定のルールに従ってプログラムを組めば、毎回名前を考える必要はないパターンを紹介する。

まずは、無名関数でグローバル領域を汚さないようにする

JavaScript:
  1. //無名関数
  2. (function(){
  3.    //ここにソース
  4. })();

そして、いきなり実行する無名コンストラクタを実装する

JavaScript:
  1. //無名関数
  2. (function(){
  3.    //無名コンストラクタ
  4.    new function(){
  5.       //ここにソース
  6.    }
  7. })();

コンストラクタ内で呼び出したい関数があれば、
無名関数の中に実装する。

JavaScript:
  1. //無名関数
  2. (function(){
  3.    //無名コンストラクタ
  4.    new function(){
  5.       //ここにソース
  6.    }
  7.    //method_a
  8.    var a = fuction(arg){
  9.       //ここにソース
  10.       return arg;
  11.    }
  12.    //method_b
  13.    var b = fuction(arg){
  14.       //ここにソース
  15.       return arg;
  16.    }
  17. })();

引数に関しても、名前をつけるのがめんどくさい時がある。
さらに、引数の数も決まってない上に、増える可能性がある場合は、
引数を配列として取得するなり、オブジェクトにしてしまうなり方法は色々ある。

JavaScript:
  1. new function(arg){
  2.    var name = arg.name;
  3.    var age = arg.age;
  4.    var bloodType = arg.bloodType;
  5. }({
  6.    name: 'hiroki_ooiwa',
  7.    age: 25,
  8.    bloodType: 'RH-AB'
  9. });

というようにも書ける。
そうすると、引数を定義するときもすっきり見やすくわかりやすくなる。

めんどくさがりな人にはこんな書き方もあるということです。

urlエンコードと文字コード

2009年7月15日

カテゴリー: Ajax, JavaScript — admin @ 12:19 AM

最近、外部のAPIを使うようになってから、文字コードに振り回される機会が多いのでちょっとメモっとく。

utf-8でエンコードされてるものを使う場合、htmlがShift_JISやeuc-jpの場合、utf-8でエンコードされたAPIを読み込む場合はsharsetに読み込み元の文字コードを記述する。

HTML:
  1. <script type="text/javascript" src="xxxxxxx.js" charset="utf-8" /></script>

Firefoxやsafariといったブラウザは自動で内部変換してくれるのだが、IEは内部で変換してくれないのでこういった処置が必要になる。
もろもろめんどくさいが、指定しておいたほうが確実ですね。

header画像かえますた

2009年7月11日

カテゴリー: つれDUれ — admin @ 4:14 AM

ども、ぴろぴろです。
気分転換にheader画像のソースコード変えてみました。

わかる人にはわかる、エヴァ2号機のシンクロ率を計算する無名コンストラクタです(笑)

誰かEvangelionオブジェクトを定義してください。
特にシンクロ率を計算するEvangelion.getRateSynchronous()メソッドを!

実装できたとして、そもそもこの無名コンストラクタ動くのか?w

コンストラクタ – JavaScript

カテゴリー: JavaScript — admin @ 4:06 AM

前回は無名関数と無名コンストラクタについて書きました。
今回は、通常のコンストラクタについて書いてみます。

JavaScriptはプロトタイプベースなので、クラスという概念はありませんが、クラスっぽいものを定義してインスタンスを生成するっぽいことができます。

JavaScript:
  1. /**
  2. *   Class Ahyaとコンストラクタ
  3. */
  4. function Ahya(arg){
  5.     this.arg = arg;
  6.     alert(arg);
  7. }
  8. //public init() method
  9. Ahya.prototype.init = function(){
  10.     return this.arg;
  11. }
  12. var ahya = new Ahya('moe')// 'moe'がアラート表示
  13. alert( ahya.init() );   // 'moe'がアラート表示

まぁこんな感じ。
クラスベースをがっつりの人には、プロトタイプベースはわかりにくいかもしれない。

という自分もよく理解してないけど…。

無名関数、無名コンストラクタ – JavaScript

カテゴリー: JavaScript — admin @ 3:57 AM

JavaScript(Ajax)デビューしてから半年ほど経過した自分です。
JavaScriptって本当に柔軟な言語で、いろんな書き方できるから本当に面白いです。

今回は関数(function)についてちょっと書いてみます。

▼基本的なfunctionの書き方

JavaScript:
  1. function ahya(arg){
  2.     return arg
  3. }
  4. ahya('moe');    //戻り値 'moe'

これが一般的なスタンダードなやつですね。

他にもこんな書き方ができます。

JavaScript:
  1. var ahya = function(arg){
  2.     return arg;
  3. }
  4. ahya('moe');

あと、関数名を使わない無名関数(匿名関数)という書き方もできます。

JavaScript:
  1. (function(){
  2.     return arg;
  3. })('moe');

さらに、JavaScriptはオブジェクト指向言語なので、コンストラクタも使えます。
下記は無名コンストラクタです。

JavaScript:
  1. new function(arg){
  2.     return arg
  3. }('moe');

どれも返ってくる戻り値は同じですが、関数とコンストラクタでは決定的な違いがあります。
それは、thisが示すオブジェクトが違うということです。

▼詳しくはこちら
[JavaScript](function() {})()とnew function() {}の違い

といったように、JavaScriptはとても柔軟な言語なので、好みや状況に合わせていろんな書き方ができるということです。

phpでmkdirとrmdirをひたすら繰り返してみた

2009年7月7日

カテゴリー: PHP — admin @ 12:22 PM

Ajaxも飽きてきたのでそろそろPHPをやろうと思いやっとphpに入門しました。
とりあえず無駄にディレクトリを作ったり消したりしてみた。

# あらかじめ、/ooiwa/ は、パーミッションを777にしてある。

PHP:
  1. $_dir = '/ooiwa/ahya';
  2. $permit = 0777;
  3.  
  4. if( !file_exists($_dir) ){
  5.    print '"'.$_dir.'" はありません。'."\n";
  6.    if( mkdir( $_dir , $permit ) ){
  7.       print '"'.$_dir.'" を生成しました。'."\n";
  8.    }else{
  9.       print '"'.$_dir.'" を生成できませんでした。'."\n";
  10.    }
  11. }else{
  12.    print '"'.$_dir.'" はすでに存在します。'."\n";
  13.    if( rmdir( $_dir ) ){
  14.       print '"'.$_dir.'" を削除しました。'."\n";
  15.    }else{
  16.       print '"'.$_dir.'" を削除できませんでした。'."\n";
  17.    }
  18. }

ディレクトリは、ルートディレクトリからみてどこにでも作成できるらしい。イケないファイルやディレクトリは外から見えない領域にこっそり作れちゃいますね。

ただし、あらかじめphpで作成する場所の親ディレクトリは、パーミッションを 777 にしておかなくてはいけないので、そこがめんどっちいです。chmod()とかでどうにかならないかと思いましたが無理でした。

まぁそれができてしまったらいくらでもクラックできてしまうしできなくて当然だよね。

pearでHTTP_Requestクラスを使うには (1)

2009年7月3日

カテゴリー: PHP, pear — admin @ 1:19 AM

phpネイティブだとHTTP_Request通信はソースをいっぱい書かなきゃいけないが、PEAR拡張モジュールを使うことによってかなりラクができる。

▼参考サイト

http://www.phppro.jp/school/pear/vol8/1

HTTP_Requestクラスを使うには、下記のコマンドを実行する。

CODE:
  1. [root@host]# pear install HTTP_Request

これで晴れてHTTP_Requestが使いまくりである。
リファレンスはまた後日。

DEATH:REBIRTH

2009年7月2日

カテゴリー: つれDUれ, エヴァ — admin @ 12:09 PM