2007/10/21: jEditがかなり便利です。 (Processing用エディタ)
前のエントリーで、jEditのインストールと、コードのカラーリングについて書きましたが、今回はjEditの便利な機能について。
■1 短縮入力
前回少し触れた、Abbreviations(短縮入力?アブリビエイション?)なんですがが、この機能は相当便利そうです。インストールの仕方は、ここ(英語)に書いています。一応、日本語でも解説しとくと、Windowsだと、
という名前のフォルダに、ダウンロードして解凍したabbrevsという名前のファイルを、置くだけ(上書きするだけ)です。ちなみに、僕は、何を勘違いしたか、マイドキュメントのフォルダの中に、.jeditというフォルダがあるのかと思って、数時間混乱してましたが、よーく見たら、Documents and Settingsの中のユーザフォルダ直下で、マイドキュメントフォルダじゃなかった。。。。のね。ということで、jEditをインストールした時点で勝手にできるっぽい、この.jeditというフォルダに、ダウンロードしたファイルを置くと、この機能が使えるようになります。
どんな機能かというと、例えば、
他にも
for文とか打つの面倒なときもあるので便利そうです。
この定義は後から自分で編集もできるので、自分がよく使うメソッドや、定型のフォーマットを作るとさらに便利になりそうですね。ちなみに、この変換を、どのキーでやるかは、Utilities->Global Optionsの中の、Abbreviationsという項目で、Space bar expands abbrevsというのにチェックを入れとくと良いっぽいです。ちなみに、ここで、フォーマットを足したり減らしたり、再編集したりできます。このGlobal Optionsというのが、要はPreferenceってことですね。
■2 タブとか
普通ですが、jEditは複数のタブ(というかペイン)を作って、複数のファイルを同時に編集することもできます。もちろん、別ウィンドウで開くのも可能です。で、このペイン増やしたり減らしたりするのは、Ctrl+1(ペイン1つに戻す)、Ctrl+2(縦に分割)、Ctrl+3(横に分割)って感じでショートカットがあって扱いやすいです。あと、各ペインの上のあたりに、ファイル名が書いてるバーがあるんですが、そこをクリックすると、最近使ったファイルのリストが出てきて、そこからファイル名選択するだけでそのファイルを開けたりします。この機能はさりげなく便利です。サクサク動くし。
画面はこんな感じ。

ということで、WindowsでのProcessingのプログラミングは、当分jEditを使うことになりそうです。フリーソフトというのが良いですね。Macでも使えるし。HTMLのコーディングとかにも使いやすいかもしれません。これで仕事の合間(mioは仕事ではwin使ってます)に、ちょっとProcessingやってみっか!ってのができる環境が整いました。
■1 短縮入力
前回少し触れた、Abbreviations(短縮入力?アブリビエイション?)なんですがが、この機能は相当便利そうです。インストールの仕方は、ここ(英語)に書いています。一応、日本語でも解説しとくと、Windowsだと、
C:\Documents and Settings\{USERNAME}\.jedit
という名前のフォルダに、ダウンロードして解凍したabbrevsという名前のファイルを、置くだけ(上書きするだけ)です。ちなみに、僕は、何を勘違いしたか、マイドキュメントのフォルダの中に、.jeditというフォルダがあるのかと思って、数時間混乱してましたが、よーく見たら、Documents and Settingsの中のユーザフォルダ直下で、マイドキュメントフォルダじゃなかった。。。。のね。ということで、jEditをインストールした時点で勝手にできるっぽい、この.jeditというフォルダに、ダウンロードしたファイルを置くと、この機能が使えるようになります。
どんな機能かというと、例えば、
smって書いて、その後、スペースキーを押すと、
smooth();に変換してくれたりします。
prで
println();は結構使えるかも。
他にも
for#i#100#で、
for(int i = 0; i < 100; i++) {とか。
}
for文とか打つの面倒なときもあるので便利そうです。
この定義は後から自分で編集もできるので、自分がよく使うメソッドや、定型のフォーマットを作るとさらに便利になりそうですね。ちなみに、この変換を、どのキーでやるかは、Utilities->Global Optionsの中の、Abbreviationsという項目で、Space bar expands abbrevsというのにチェックを入れとくと良いっぽいです。ちなみに、ここで、フォーマットを足したり減らしたり、再編集したりできます。このGlobal Optionsというのが、要はPreferenceってことですね。
■2 タブとか
普通ですが、jEditは複数のタブ(というかペイン)を作って、複数のファイルを同時に編集することもできます。もちろん、別ウィンドウで開くのも可能です。で、このペイン増やしたり減らしたりするのは、Ctrl+1(ペイン1つに戻す)、Ctrl+2(縦に分割)、Ctrl+3(横に分割)って感じでショートカットがあって扱いやすいです。あと、各ペインの上のあたりに、ファイル名が書いてるバーがあるんですが、そこをクリックすると、最近使ったファイルのリストが出てきて、そこからファイル名選択するだけでそのファイルを開けたりします。この機能はさりげなく便利です。サクサク動くし。
画面はこんな感じ。

ということで、WindowsでのProcessingのプログラミングは、当分jEditを使うことになりそうです。フリーソフトというのが良いですね。Macでも使えるし。HTMLのコーディングとかにも使いやすいかもしれません。これで仕事の合間(mioは仕事ではwin使ってます)に、ちょっとProcessingやってみっか!ってのができる環境が整いました。
2007/10/20: WindowsでのProcessing用エディタ2 jEdit編
Windowsユーザにこれは、わりとオススメです。
jEdit
前回、Eclipseを紹介しましたが、Eclipseは、基本、javaの開発っぽい感じになってしまうので、Processingの文法と少し変わってきます。(正しい表現じゃない気がしますが。。)例えば、PAppletクラスのサブクラスを使ってメインのdrawなどの処理を行うことになるので、書かなければいけないことが少し増えます。
↓こんな感じ
ProcessingのみだとこれだけでOKなものです。
なので、Eclipseで実行することを前提に書くのは、小規模なプログラムの場合面倒だったりします。で、もしかしたら、EclipseではProcessingを実行せずに、単にエディタとして使うという手もあるのかもしれませんが、Processing独自のメソッドなんかのカラーリングの仕方とかがちょっとよく分からなかったので、他にTextMateぐらいの感覚で使えるエディタが、Windowsにないのか調べてみました。(Eclipseでのカラーリングの仕方知ってる人いたら教えてください。)
そこで出てきたのが、jEditというオープンソースのプログラム用エディタ。
TextMateみたいに、TextMate側からProcessingを呼び出して、ファイルを実行するみたいなのは、できるのかどうか良く分かりませんでしたが、Processingのコードのカラーリングができて、画面も結構綺麗なので、良いかなと思っています。
↓画面はこんな感じです。

コードのカラーリング方法は、
このProcessing用のコード・カラーリング設定ファイル(XMLファイル)をダウンロードして、Program Files->jEdit->modesというフォルダに突っ込む。で、このmodesというフォルダにある、catalogというファイルをエディタで開いて、
という行を一行足す。
これでOK。
英語の解説は、以下のサイトに載っています。このサイトに載っている、ショートカットみたいな機能が相当便利そうなので、こっちも要研究ですな。
http://www.processinghacks.com/hacks/jedit
解説してくれているのは、Karsten Schmidt (aka toxi)さんという人で、Processingの使い手っぽいし、もしかしすると、jEditは結構良いのかも。Windowsだと。
http://toxi.co.uk/
■外部エディタ使う場合

↑このように、
Use external editorにチェック入れましょう。
すると、Processingの編集画面では編集できなくなって、混乱がなくなります。
ちなみにMacのTextMateだとファイル保存すると、TextMate側で読み込みなおしたりしてくれるので、このチェックを入れなくても良いっぽいですが、他でやる場合はチェックを入れておいたほうが良さそうです。
jEdit
前回、Eclipseを紹介しましたが、Eclipseは、基本、javaの開発っぽい感じになってしまうので、Processingの文法と少し変わってきます。(正しい表現じゃない気がしますが。。)例えば、PAppletクラスのサブクラスを使ってメインのdrawなどの処理を行うことになるので、書かなければいけないことが少し増えます。
↓こんな感じ
import processing.core.*;
public class Sketch071020 extends PApplet{
public void setup(){
size(200, 200);
stroke(155,0,0);
}
public void draw(){
line(mouseX,mouseY,width/2,height/2);
}
}
ProcessingのみだとこれだけでOKなものです。
void setup(){
size(200, 200);
stroke(155,0,0);
}
void draw(){
line(mouseX,mouseY,width/2,height/2);
}
なので、Eclipseで実行することを前提に書くのは、小規模なプログラムの場合面倒だったりします。で、もしかしたら、EclipseではProcessingを実行せずに、単にエディタとして使うという手もあるのかもしれませんが、Processing独自のメソッドなんかのカラーリングの仕方とかがちょっとよく分からなかったので、他にTextMateぐらいの感覚で使えるエディタが、Windowsにないのか調べてみました。(Eclipseでのカラーリングの仕方知ってる人いたら教えてください。)
そこで出てきたのが、jEditというオープンソースのプログラム用エディタ。
TextMateみたいに、TextMate側からProcessingを呼び出して、ファイルを実行するみたいなのは、できるのかどうか良く分かりませんでしたが、Processingのコードのカラーリングができて、画面も結構綺麗なので、良いかなと思っています。
↓画面はこんな感じです。

コードのカラーリング方法は、
このProcessing用のコード・カラーリング設定ファイル(XMLファイル)をダウンロードして、Program Files->jEdit->modesというフォルダに突っ込む。で、このmodesというフォルダにある、catalogというファイルをエディタで開いて、
<MODE NAME="processing" FILE="processing.xml" FILE_NAME_GLOB="*.pde" />
という行を一行足す。
これでOK。
英語の解説は、以下のサイトに載っています。このサイトに載っている、ショートカットみたいな機能が相当便利そうなので、こっちも要研究ですな。
http://www.processinghacks.com/hacks/jedit
解説してくれているのは、Karsten Schmidt (aka toxi)さんという人で、Processingの使い手っぽいし、もしかしすると、jEditは結構良いのかも。Windowsだと。
http://toxi.co.uk/
■外部エディタ使う場合

↑このように、
Use external editorにチェック入れましょう。
すると、Processingの編集画面では編集できなくなって、混乱がなくなります。
ちなみにMacのTextMateだとファイル保存すると、TextMate側で読み込みなおしたりしてくれるので、このチェックを入れなくても良いっぽいですが、他でやる場合はチェックを入れておいたほうが良さそうです。
2007/10/16: WindowsでのProcessing用エディタ1 Eclipse編
ずっと前から気になってた、Eclipseをついに使ってみました。Processing用のテキストエディタについては、MacではTextMateという気の利いたテキストエディタがあったのですが、Windowsはどれが良いのか分からないというのもあって、Eclipseを試してみようと思いました。Eclipseというと、レベルの高いプログラマーが使う、超レベルの高いソフト、みたいなイメージだったんですが、意外と簡単に使えることが発覚。Processingのフォーラムをがんばって解読してインストールしました。
以下、日本語且つ画像付きという超分かりやすい解説を作ったんで、僕みたいに英語の文章を読むのに50メートル走を全力で走りきるぐらいのエナジーを必要とする人は是非ご覧ください。ちなみに、Mac版のEclipse使いたい人は、英語ですがこちらが画像付きで親切かも。
まずは、Eclipseをダウンロードしましょう。
http://www.eclipse.org/
http://www.eclipse.org/downloads/
僕は、Eclipse IDE for Java Developers - Windows (78 MB)というのをダウンロードしました。(これで問題なかったです)他のサイトだと、eclipse-SDK-3.1.2-win32.zipとか、JavaSDKとか書いてたんですが、多分これのことかと。違ったら教えてください。
インストールの仕方はここが画像つきで分かりやすいかな。
で、Eclipse起動しましょう。
以下、画像付きで、EclipseでProcessingのコーディングと、実行する方法となります。

ばーん。起動ぐらい猿でもできるけど、相手がEclipseだけに、起動しただけで感動してしまった。。

起動したらこんな感じ。(もしかしたら別の画面だったかも)ここから、Processingのプロジェクトを作って、Processingのライブラリを読み込んだりして、ProcessingをEclipseから使えるようにします。
以下、日本語且つ画像付きという超分かりやすい解説を作ったんで、僕みたいに英語の文章を読むのに50メートル走を全力で走りきるぐらいのエナジーを必要とする人は是非ご覧ください。ちなみに、Mac版のEclipse使いたい人は、英語ですがこちらが画像付きで親切かも。
まずは、Eclipseをダウンロードしましょう。
http://www.eclipse.org/
http://www.eclipse.org/downloads/
僕は、Eclipse IDE for Java Developers - Windows (78 MB)というのをダウンロードしました。(これで問題なかったです)他のサイトだと、eclipse-SDK-3.1.2-win32.zipとか、JavaSDKとか書いてたんですが、多分これのことかと。違ったら教えてください。
インストールの仕方はここが画像つきで分かりやすいかな。
で、Eclipse起動しましょう。
以下、画像付きで、EclipseでProcessingのコーディングと、実行する方法となります。

ばーん。起動ぐらい猿でもできるけど、相手がEclipseだけに、起動しただけで感動してしまった。。

起動したらこんな感じ。(もしかしたら別の画面だったかも)ここから、Processingのプロジェクトを作って、Processingのライブラリを読み込んだりして、ProcessingをEclipseから使えるようにします。
» 続きを読む
2007/10/14: Processingのスコープ(変数定義の注意点)
関数の中のローカル変数を別の関数の中から参照できないのは知っていましたが、関数の中でもif文の中で定義した変数をif文の外から参照しようとするとエラーになるみたいです。また、関数の中で変数を定義する場合は、その値が使われる前に必ず値を入れておかなければ、エラーになります。(エラーとなって、実行できません)
これはエラー。
FLASH(AS2)とかだと、if文の中を通らなかったときに、undefinedとしてくれるけど、Processingの場合は、ちょっと厳しいみたいです。
要は、絶対undefinedにはならないようにしないといけないみたいです。
また、関数の外で変数を定義するときは関数の名前だけでOKですが、関数の中で定義するときは、同様の理由で、その変数が使われる前に必ず値を入れておかないといけないようです。
つまり、
はもちろんエラーとなります。
また、以下の場合もエラーです。
ただ、else ifじゃなくて、elseにするとエラーは出ません.
以上、if文の中で変数の値を入れる場合について書きましたが、そこまで考えるのは面倒なので、なるべく、最初に初期値も入れてしまいましょう。
以下のような感じで。
または、
■おまけ
以下のようなことをしても意味はないですが、
定義した変数を参照しないプログラムになっていれば、
エラーは出ないようです。
boolean a = true;
void func1()
{
if( a==true)
{
int b = 1;
}
println( b );
}
これはエラー。
FLASH(AS2)とかだと、if文の中を通らなかったときに、undefinedとしてくれるけど、Processingの場合は、ちょっと厳しいみたいです。
要は、絶対undefinedにはならないようにしないといけないみたいです。
また、関数の外で変数を定義するときは関数の名前だけでOKですが、関数の中で定義するときは、同様の理由で、その変数が使われる前に必ず値を入れておかないといけないようです。
つまり、
void func1()
{
int b;
println( b );
}
はもちろんエラーとなります。
また、以下の場合もエラーです。
void func1(){
boolean a = true;
int b;
if( a==true)
{
b = 1;
}
else if(a==false)
{
b = 2;
}
println(b);
}
ただ、else ifじゃなくて、elseにするとエラーは出ません.
void func1(){
boolean a = true;
int b;
if( a==true)
{
b = 1;
}
else
{
b = 2;
}
println(b);
}
以上、if文の中で変数の値を入れる場合について書きましたが、そこまで考えるのは面倒なので、なるべく、最初に初期値も入れてしまいましょう。
以下のような感じで。
void func1()
{
int b=1;
println( b );
}
または、
void func1()
{
int b;
b=1;
println( b );
}
■おまけ
以下のようなことをしても意味はないですが、
定義した変数を参照しないプログラムになっていれば、
エラーは出ないようです。
void func1()
{
int b;
}
2007/10/10: Processing用のエディタにTextMateを使う
Processing標準のIDEが使いにくいのでTextMateを使ってみることにしました。
徳井さんの記事とおり、TextMate本体とGetBundleをインストールし、BundleにProcessingを追加することはできました。でも、PDEファイルを編集してショートカットを使ってみると、古いバージョンのProcessingが立ち上がってしまうなど上手くいきませんでした。調べてみると、Processingのバージョンによってアプリケーション名や呼び出しのスクリプトが異なるようで、TextMateのBundle Editorで修正作業が必要でした。以下は、Processing 0125 BETA用です。
まず、TextMateで「Bundles > Bundle Editor > Show Bundle Editor」からエディタを開きます。そして、Run In Processingのコマンドを以下のように変更します。
-
Save: Current File
Command(s):
osascript <<EOF
tell application "Processing 0125" to run
tell application "Processing 0125" to activate
tell application "Processing 0125" to open POSIX file "${TM_FILEPATH}"
delay 1
tell application "System Events" to tell process "Processing"
keystroke "r" using command down
end tell
EOF
Input: None
Output: Discard

-
以上でおしまい。
これで、ファイルを編集して「コンマンド+R」すれば、Processingが立ち上がり、ファイルが開き(すでに開かれている場合は再読み込みされます)、実行されるところまで自動的に行われます。Processingの立ち上がりに多少時間がかかるものの、まま快適です。TextMateはお試し版だけど、ActionscriptやPHPにも対応してるし、よさそうなら購入しようと思います。
*追記*
Processing側でエラーが出た時に、直接Processingの方で書き換えてセーブすれば、TextMate側でもちゃんとその修正を読込み直してくれるのが手間いらずですごくいい!
<参考URL>
TextMate
GetBundle
TextMate日本語入力プラグイン
Processing用のエディタ(徳井直生さん)
Processing.org Discussion : Processing + Textmate
徳井さんの記事とおり、TextMate本体とGetBundleをインストールし、BundleにProcessingを追加することはできました。でも、PDEファイルを編集してショートカットを使ってみると、古いバージョンのProcessingが立ち上がってしまうなど上手くいきませんでした。調べてみると、Processingのバージョンによってアプリケーション名や呼び出しのスクリプトが異なるようで、TextMateのBundle Editorで修正作業が必要でした。以下は、Processing 0125 BETA用です。
まず、TextMateで「Bundles > Bundle Editor > Show Bundle Editor」からエディタを開きます。そして、Run In Processingのコマンドを以下のように変更します。
-
Save: Current File
Command(s):
osascript <<EOF
tell application "Processing 0125" to run
tell application "Processing 0125" to activate
tell application "Processing 0125" to open POSIX file "${TM_FILEPATH}"
delay 1
tell application "System Events" to tell process "Processing"
keystroke "r" using command down
end tell
EOF
Input: None
Output: Discard

-
以上でおしまい。
これで、ファイルを編集して「コンマンド+R」すれば、Processingが立ち上がり、ファイルが開き(すでに開かれている場合は再読み込みされます)、実行されるところまで自動的に行われます。Processingの立ち上がりに多少時間がかかるものの、まま快適です。TextMateはお試し版だけど、ActionscriptやPHPにも対応してるし、よさそうなら購入しようと思います。
*追記*
Processing側でエラーが出た時に、直接Processingの方で書き換えてセーブすれば、TextMate側でもちゃんとその修正を読込み直してくれるのが手間いらずですごくいい!
<参考URL>
TextMate
GetBundle
TextMate日本語入力プラグイン
Processing用のエディタ(徳井直生さん)
Processing.org Discussion : Processing + Textmate
» 続きを読む
2007/10/06: Max/MSP 5
↓新機能を見れるムービー
http://www.cycling74.com/story/2007/10/5/91222/9559
非常に楽しみになってきた。
相当大きな変更があるとのプレスリリースがあったので、
何か勉強しなおさないといけないのかと思っていましたが、
そういうわけではなさそう。
Presentationモードというのが素晴らしい。
今まで面倒だった作業がこれでなくなる。
あと、Undoが今までは1回しかできなかったのが、
何回でもできるようになるらしく、それも素晴らしい。
jitterの描画処理がどうなるのかも楽しみ。
ProcessingやQCでしかやりにくかったことが、
jitterだけで簡単にできるようになったらいいんですけど。
後は、酷いと言われている音質も良くなると良いなぁ。
Max/MSP5が出るころには、
新しいMacが欲しいところ。
http://www.cycling74.com/story/2007/10/5/91222/9559
非常に楽しみになってきた。
相当大きな変更があるとのプレスリリースがあったので、
何か勉強しなおさないといけないのかと思っていましたが、
そういうわけではなさそう。
Presentationモードというのが素晴らしい。
今まで面倒だった作業がこれでなくなる。
あと、Undoが今までは1回しかできなかったのが、
何回でもできるようになるらしく、それも素晴らしい。
jitterの描画処理がどうなるのかも楽しみ。
ProcessingやQCでしかやりにくかったことが、
jitterだけで簡単にできるようになったらいいんですけど。
後は、酷いと言われている音質も良くなると良いなぁ。
Max/MSP5が出るころには、
新しいMacが欲しいところ。