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が通らなかったのでそうした。

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

wordpressでmediawiki記法

月曜日, 11月 23rd, 2009 | 未分類 | コメントはまだありません

ということで、このエントリからmediawiki記法で記述しています。
普段から慣れているせいかこちらの方が書きやすいです。

WP-MediaWiki

段落やリストもいい感じ。

h1

h2

h3

  • リスト
    • リスト
      • リスト
  • リスト
  1. 番号
    1. 番号
      1. 番号
  2. 番号

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: , , ,

SyntaxHighlighter Plus

月曜日, 3月 2nd, 2009 | 未分類 | コメントはまだありません

このブログでもSyntaxHighlighter Plusを使いつつも上手く動作していなかったので、久々にググってみたらこちらのサイトの「追記」を試したら上手く動作しました。

http://manchie.com/74” target=”_blank”>SyntaxHighlighter Plus | manchie.com

最近のwordpressは、pluginの更新も管理画面からボタン一つでできてメンテナンスが非常に楽です。

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ラボ

mecabをソースからインストール

月曜日, 9月 29th, 2008 | 未分類 | コメントはまだありません

Pythonからmecabを使ってみたかったのですが、手元のUbuntu(hardy)のaptでは一つ古いバージョンのものしかなかったので、折角の機会と思ってソースからインストールしました。
インストール方法は基本的に公式サイトの通り。コンパイル環境の整備と、UTF-8向けの設定(mecab本体+ipa辞書)に手間取りました。
(あと、64bitな環境だとmecab本体のmake checkに失敗するようです。過去のMLで少し話題に挙がっていたみたいですが、とりあえずの利用は大丈夫そうです。)

  1. コンパイラのインストール (apt-get install gcc3.4 g++-3.4 libstdc++6
  2. mecab本体のconfigureに–with-charset=utf8を指定
  3. ipa辞書のconfigureも同様 –with-charset=utf-8 (こっちはなぜかハイフンがw
  4. sudo vi /etc/ld.so.confに/usr/local/libを追加。sudo ldconfig

Tags:

Macのキーバインドをいじってみた

日曜日, 9月 7th, 2008 | Mac | 2件のコメント

Macのキーバインドを変えるソフトといえば、http://www.pqrs.org/tekezo/macosx/keyremap4macbook/index.html.ja” target=”_blank”>KeyRemap4MacBookが定番だと思いますが、”リマップ設定がちょっとだけ自分の好みじゃない”なんてケースがたまにあると思います。

私の場合はControl_L+hjklが欲しかったのですが、Command_R+hjklしか設定値がない。ということで、ソースコードに手をいれてモードを追加しました。
makeのやり方とかは作者のサイト記載の通り。

src/core/kext/remap.cpp

void
remap_vimode(const RemapParams &params)
{
static ModifierCanceling mc_commandR;
static ModifierCanceling mc_controlL;

if (allFlagStatus.commandR.isHeldDown()) {
(中略)
}

if (allFlagStatus.controlL.isHeldDown()) {
bool cancel_control = false;

// Control_L+hjkl -> Up/Down/Left/Right
if (config.option_vimode_ctrl_hjkl) {
if (*(params.key) == KeyCode::H) {
<ul><li>(params.key) = KeyCode::CURSOR_LEFT;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
if (*(params.key) == KeyCode::J) {
<ul><li>(params.key) = KeyCode::CURSOR_DOWN;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
if (*(params.key) == KeyCode::K) {
<ul><li>(params.key) = KeyCode::CURSOR_UP;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
if (*(params.key) == KeyCode::L) {
<ul><li>(params.key) = KeyCode::CURSOR_RIGHT;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
}
if (cancel_control) {
mc_controlL.keyRelease(params, ModifierFlag::CONTROL_L);
return;
}
}

mc_commandR.restore(params, ModifierFlag::COMMAND_R);
mc_controlL.restore(params, ModifierFlag::CONTROL_L);
}

MacBookのファン回転数をコントロールする

火曜日, 8月 26th, 2008 | Mac | コメントはまだありません

ターミナル使用時に”CPUの温度が高くてたまらないよ!”的なことをMacBookが言うくせに、ファンを自分で回す気がないらしい。

なんてやつだ!

とりあえず、ファン回転数を制御できるhttp://www.alitacrew.org/icyclone/“>iCycloneというソフトを使ってみます。

ファンの回転数を直接していできるマニュアルモードと、ファンをidle化/最大化させる境界の温度を設定できるオートモードの2種類があって、色々とつかえそうです。

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)とかになります。

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

その他

track feed nnno.jp