2009年9月22日
.vimrcとランタイム以下が混沌としてきたので整理することにしました。
まずはここからデフォルトのランタイムパス以下のファイル群を取得。
http://www.vim.org/download.php
version 7.xのソースごとdownloadしてその中のruntimeディレクトリ以下が目的のものです。
とインストールしてる最中にこんなのがあることに気づきます。。
http://www.vim.org/runtime.php
指示通りにaapをインストールし、runtimepathにcdして実行するとどんどんファイルが更新されて行きます。
:cd $VIMRUNTIME
:!aap -f ftp://ftp.vim.org/pub/vim/runtime/main.aap fetch
一度これを実行しておけば、あとは定期的に
を実行するだけで、更新されたファイルのみアップデートしてくれるようです。
結構便利ですね。これ。
続いてカラースキームやらプラグインファイルをdownloadしていきます。
- inkpot.vim(color scheme)
- minibufexpl.vim
- yankring.zip
- surround.zip
- Align.vba.gz
- taglist.zip
- fuzzyfinder.zip
- eregex(まだ)
- snipettsEmu(まだ。snipetMetaに移行するか迷い中)http://blog.dealforest.net/2009/04/migrate-over-to-snipmate-from-snippetseeu
- mru(まだ)
- EnhCommentify.vim(まだ)
あわせて.vimrcも整理してかなりすっきりしました!
http://pakpak.jp/work/dot_files/_vimrc
カテゴリー: 未分類 | コメントはまだありません »
2009年9月12日
一つ前のエントリで取り上げたlog.asの実装のこの部分。
25
26
27
28
29
30
31
32
33
34
35
36
37
| try {
ExternalInterface.call(<><![CDATA[
(function(obj, klassName) {
obj.toString = function() { return klassName };
console.log(obj);
;})
]]></>.toString(),
ObjectUtil.clone(arg),
getQualifiedClassName(arg)
);
} catch(e:Error) {
ExternalInterface.call('console.log', r);
} |
ExternalInterface.callの第一引数がなんか見慣れない書式。
なんかオブジェクトつくってtoStringしてる?
調べてみた。
package {
import flash.display.*;
public class Hello extends Sprite {
public function Hello(){
var hoge:Object = <><![CDATA[
(function(obj, klassName) {
obj.toString = function() { return klassName };
console.log(obj);
;})
]]></>;
log(hoge);
log(hoge.toString());
}
}
}

なるほどー。CDATAセクションのみのXMLListオブジェクトつくってtoStringしてるんですね。それにしても変わった書式。
というか、ExternalInterface.callの第一引数、evalしたときに関数になってたら何でもokなんすね。
これならjs,flashの連携が楽にできそ。
タグ: flash, javascript, プログラム
カテゴリー: 未分類 | コメントはまだありません »
2009年9月12日
自分用のただのメモです。
まずはflex3sdkをインストール。
http://blogs.adobe.com/akamijo/archives/2009/03/flex_sdk_33.html
こちらを参考にしました。
そして適当なディレクトリ(Macなら/Applications/flex_sdk_3.4とか)にzipファイルを展開。
パスを通す。
export PATH=/Applications/flex_sdk_3.4/bin:$PATH
終わり。
次にログ出力のための設定。
これについては後で少し解説します。
frameworks/flex-config.xml
32
33
34
| <source-path>
<path-element>/Applications/flex_sdk_3.4/log</path-element>
</source-path |
souce-pathに指定したファイルパス以下のファイルはコンパイル時に自動でロードされます。
log以下には以下の2つのファイルを配置。
こちらからダウンロードできます。(ちなみに僕は作者ではありません。。)
http://github.com/hotchpotch/as3rails2u/blob/113c00677c1c1807e1f40060a4a49e8681a2831d/src/log.as
log/ObjectUtil.as
package
{
import flash.utils.getQualifiedClassName;
import flash.utils.ByteArray;
public class ObjectUtil {
public static function clone(arg:*):* {
var b:ByteArray = new ByteArray();
b.writeObject(arg);
b.position = 0;
return b.readObject();
}
public static function inspect(... args):String {
return inspectImpl(args, false);
}
internal static function inspectImpl(arg:*, bracket:Boolean = true):String {
var className:String = getQualifiedClassName(arg);
var str:String; var results:Array;
switch(getQualifiedClassName(arg)) {
case 'Object':
case 'Dictionary':
results = [];
for (var key:* in arg) {
results.push(inspectImpl(key) + ':' + inspectImpl(arg[key], false));
}
str = classFormat(className, '{' + results.join(', ') + '}');
// str = classFormat(className, arg);
break;
case 'Array':
results = [];
for (var i:uint = 0; i < arg.length; i++) {
results.push(inspectImpl(arg[i]));
}
if (bracket) {
str = '[' + results.join(', ') + ']';
} else {
str = results.join(', ');
}
break;
case 'int':
case 'uint':
case 'Number':
str = arg.toString();
break;
case 'String':
str = arg;
break;
default:
str = classFormat(className, arg);
}
return str;
}
internal static function classFormat(className:String, arg:*):String {
return '#<' + className + ':' + String(arg) + '>';
}
}
}
log/log.as
package {
import flash.external.ExternalInterface;
import flash.utils.getQualifiedClassName;
import ObjectUtil;
/**
* log() is Object inspect dump output to trace() and use
* Browser(FireFox, Safari and more) External API console.log.
*
* example
* <listing version="3.0">
* var a:Array = [[1,2,3], [4,[5,6]]];
* var sprite:Sprite = new Sprite;
* log(a, sprite);
* # output
* [[1, 2, 3], [4, [5, 6]]], #<flash.display::Sprite:[object Sprite]>
* </listing>
*/
public function log(... args):String {
var r:String = ObjectUtil.inspect.apply(null, args);
trace(r)
if (ExternalInterface.available) {
var arg:* = args.length == 1 ? args[0] : args;
try {
ExternalInterface.call(<><![CDATA[
(function(obj, klassName) {
obj.toString = function() { return klassName };
console.log(obj);
;})
]]></>.toString(),
ObjectUtil.clone(arg),
getQualifiedClassName(arg)
);
} catch(e:Error) {
ExternalInterface.call('console.log', r);
}
}
return r;
}
}
コンパイルしてみる。
/samples/explorerに移動して
% mxmlc explorer.mxml
設定ファイル "/Applications/flex_sdk_3.4/frameworks/flex-config.xml" をロードしています
/Applications/flex_sdk_3.4/samples/explorer/explorer.swf (382598 bytes)
ちゃんとswfが出力されました。
Rascutをいれる。
http://d.hatena.ne.jp/nitoyon/20070914/how_to_install_rascut
とすると、localhost:3001でプレビュー、ファイル更新を監視して自動的にコンパイル、そしてデプロイまでやってくれちゃいます。すてきです。
log.as
最後に上で設定したログ出力の関数について少しだけ触れておくと、
こんな風にプログラム中でおもむろにlog(object)と書くと、firebugのコンソールにログ出力されるという代物です。
package {
import flash.display.*;
import flash.text.*;
public class Hello extends Sprite {
public function Hello(){
var textField:TextField=new TextField();
textField.text="Hello World!";
addChild(textField);
log([1,2,3]);
log(textField);
}
}
}

カテゴリー: 未分類 | コメントはまだありません »
2009年9月7日
牧 大輔. 翔泳社 2009, 大型本, 344ページ, ¥ 2,940

さわりだけ読んで半年近く本棚に寝かしておりましたが、
昨日やっと読み終えました。
といってもあまり興味ない箇所ははしょりましたが^^;
デザパタと、perl使いが覚えておくべきことみたいなの(もう章立てわすれてる)は非常にためになった。
中級者向けかなと思いました。
体系的に学ぶというよりは、他の書籍でカバーしきれない内容を補ってくれる感じです。
初めてのperl、effective perlときてこれを読むと効果的かと思いました。
タグ: 書評
カテゴリー: 未分類 | コメントはまだありません »
2009年9月6日
ディスプレイを新調しました!
FlexScan EV2333W-Hです。
高さや確度を自由自在に変えることが出来るのと、目に優しい!というキャッチフレーズにのせられて買ってしまいました。
割高感はありますが、以前使っていたIOデータの古いディスプレイよりもギラギラしてないというか長時間見ていても疲れない感じがします。
おとなりはひと世代前のmac book君。そのまたとなりはtimecupsleです。
キーボードはHHK Professional2です。以前はmac book君のキーボードを使って作業していたのですが、
職場の環境と合わせるためにHHK Professional2代目購入しちゃいました。
ディスプレイとあわせて8万の出費。。。
結構いたいですが、これでかなり家の開発環境が快適になりました!
このブログの更新頻度もあがるかも??
タグ: 雑記
カテゴリー: 未分類 | コメントはまだありません »