プログラム

Ubuntuでactionscript 環境構築

火曜日, 11月 24th, 2009 | ActionScript | コメントはまだありません

こちらを参考にactionscriptの開発環境を構築していましたが、いくつか寄り道が必要だったのでメモを残しておきます。
[補足] 私の環境:Ubuntu 9.10 (Ubuntu Netbook Remix)

vim

パッケージ

debianではvim-fullパッケージを入れていたのですが、Ubuntu9.10では同名のパッケージがありません。代わりにvim-noxというパッケージを入れます。

syntax

元記事にあるplugin以外で、as3.0に対応したものがあったので導入してみました。
actionscript.vim – ActionScript 3.0 syntax file : vim online

ただし、vimでファイルタイプを正しく判定できなかったので下記の方法で解決。

  • $HOME/.vim/ftdetect/ft.vim を作成
  • 上記ファイル内にファイルタイプを決めるためのコマンドを書く
    • au! BufNewFile,BufRead *.as setf actionscript

omni補完

こちらを利用。
ActionScript 3 Omnicomplete – Omnicompletion plug-in for ActionScript 3 : vim online

rascut

そもそもruby環境がないのでインストール。バージョンを指定しなかったが、私の場合は1.8が勝手に選択された。(どういう基準なんだろう。)

aptitude install ruby rubygems ruby-dev

後は元記事のとおりに。
ただし、gem install …はroot権で実行した。原因は分からないが最初上手く動作しなかったのと、コマンドへのpathが通らなかったのでそうした。

これでガンガン開発するぞ!

PEARのConsole_CommandLine使いやすいよ

月曜日, 3月 16th, 2009 | PHP | コメントはまだありません

“pythonのoptparseモジュールに触発されて”とマニュアルにあるように、Pythonのそれと同じノリで書けます。

とっても便利。
試しに、Googleのajax translationをPHPから叩くスクリプトを書いてみました。
php script_name –helpとかやってみると簡単な使い方が表示されます。


require_once 'Console/CommandLine.php';
require_once 'HTTP/Client.php';

$parser = new Console_CommandLine();
$parser->description = 'This script is a Google AJAX Language API script to use the translation.';

$parser->version = '0.0.1';
$parser->addOption('from', array(
'short_name'  => '-f',
'long_name'   => '--from',
'description' => 'from language',
'help_name'   => 'FROM',
'action'      => 'StoreString',
'default'     => 'ja',
));
$parser->addOption('to', array(
'short_name'  => '-t',
'long_name'   => '--to',
'description' => "to language",
'action'      => 'StoreString',
'default'     => 'en',
));
$parser->addArgument('text', array(
'description' => 'the text to translate.'
));

try {
$result = $parser->parse();
// do something with the result object
<ol><li>print_r($result->options);
</li><li>print_r($result->args);
</li></ol>
} catch (Exception $exc) {
$parser->displayError($exc->getMessage());
exit;
}

// langpairは|(%7C)で区切る
$url = '<a href="http://ajax.googleapis.com/ajax/services/language/translate';">http://ajax.googleapis.com/ajax/services/language/translate';</a>
$data = array(
'v' => '1.0',
'q' => $result->args['text'],
'langpair' => sprintf("%s|%s", $result->options['from'], $result->options['to'])
);

try {

$client = new HTTP_Client();
$r_code = $client->get($url, $data);
if ($r_code != 200) {
throw new PEAR_Exception('HTTP_Client return not 200.');
}
$response   = $client->currentResponse();
$trans      = mb_convert_encoding($response['body'], 'utf-8', mb_internal_encoding());
$trans_arr  = json_decode($trans);

if ($trans_arr->responseStatus != 200) {
throw new PEAR_Exception($trans_arr['responseDetails']);
}
$trans_result = $trans_arr->responseData->translatedText;
echo $trans_result . "\n";

} catch (PEAR_Exception $e) {
echo "[Exception]" . $e->getMessage() . "\n";
}

?>

Tags: , , ,

awkで外部コマンドを実行する

木曜日, 12月 11th, 2008 | awk | コメントはまだありません

私が軽く検索した範囲では、殆どの例題プログラムがlsコマンドやdateコマンドの実行結果をそのままprintするだけで、データ入出力の活かし方まで気を利かせた例題はありませんでした。
ということで、自分なりの答えを書いてみます。


{
command = sprintf("echo SELECT * FROM hoge WHERE status = %s | mysql -u **** -p **** -N db_name", $3);

while ((command | getline r_line) > 0) {
split(r_line, result, ” “); # str to array.
}

close(command);

… (つづく) …
}

基本的には、変数commandに実行したいコマンドを記述して、whileループにてコマンドの実行結果を1行ずつ変数r_lineに受け取ります。
んで、自動的に配列にしてくれるわけではないのでsplit()関数を用いて配列にします。

例題のとおり、標準入力から受け取った$3の値をSQLに差し込んだ上でSQLを発行、結果を配列で受け取ってその後の処理に渡します。(本来のプログラムは、close(command); 以降に処理が続きます。あと、splitの第3引数は正しくはTABかもー)

いまどきawkを使う方は限られているのかもしれませんが、どなたかの参考になれば。

PythonのUnicodeEncodeError

水曜日, 11月 26th, 2008 | Python | コメントはまだありません

HDEラボさんの記事が一番勉強になりました。ホントに。
ようやく理解できた気がします。。。
記事中の「はまりどころ」の3件(print, パイプ, ファイルオブジェクトへのwrite)がずばりハマりすぎて仕方なかったです。

これでようやく素敵なCLI生活を送れそうです。

http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html” target=”_blank”>PythonのUnicodeEncodeErrorを知る – HDEラボ

findコマンドで正規表現

土曜日, 8月 23rd, 2008 | シェルスクリプト | コメントはまだありません

ほとんど自分用のメモなんですが、-nameオプションで需要を満たせなくなったので、-regexオプションをつかってみます。なお、findはOSによって利用できるオプションが違ってるらしく、詳しくはman findとかやって確認したらいいと思います。

Mac OS Xでは、BSD findが入ってます。
-Eを指定することで、正規表現で利用できる構文をextended (modern) regular expressionsに変更してみました。

[sourcecode]
find -E . -regex ‘.*(rm|wmv)$’
[/sourcecode]

ちなみに、Ubuntuとかだと、GNU findが入っているので、-regextype (emacs | posix-awk | posix-basic | posix-egrep | posix-extended)とかになります。

#というか何をしようとしていたのか、まるわかりな気がしますが・・・///

Mac OS X (Lepard)でPython開発環境を整える

日曜日, 8月 17th, 2008 | Python, プログラム | コメントはまだありません

ちょっと前から、Pythonで遊んでます。仕事ではどうしても特定の言語に偏りがちなので、他言語での実装や(自分の中で)新しいもの、未知なるものに触れたい想いがあったからです。なぜPythonかは特に理由もないですが、標準ライブラリとか豊富らしいので、色々と遊べそうだなぁと思ってます。

ってことで、Eclipse上で動作する統合開発環境であるPyDevをMac OS Xに導入してみたので、そのときのメモです。

  1. Python本体をインストール
    http://www.python.org/” target=”_blank”>本家サイトからdmgパッケージをダウンロード、インストーラーが付いてるので指示に従う。
  2. Eclipseをインストール
    こっちもhttp://www.eclipse.org/downloads/index.php” target=”_blank”>本家サイトからダウンロード。パッケージはClassicを選択。
  3. PyDevのインストール
    EclipseのSoftware Updatesを使ってインストール (パッケージの取得先はhttp://pydev.sourceforge.net/updates/
  4. PyDevでPythonのパスを設定
    Eclipse上のPreferenceでPyDev -> Interpreter – Pythonにて設定。”1″でインストールしたPythonのパスを設定してあげる。

これでとりあえずは使えるようになりました。

その他

track feed nnno.jp