Launchy Application Launcher Released for Linux (5)
share
digg
by
Tom (64)
on
Tombuntu (32)
3 weeks
ago
permalink
Launchy is a well-known open source application launcher for Windows. With version 2.1, Launchy has been ported to Linux. Launchy is a free windows and linux utility designed to help you forget about your start menu, the icons on your desktop, and even your file manager. Launchy can be installed from the DEB package provided on the download page. After installing the package, run Launchy from Applications->Accessories->Launchy. Launchy will appear in the top left corner ...
非同期処理いろいろ (2)
share
digg
by
admin (1395)
on
MASDA (1)
3 weeks, 6 days
ago
permalink
去年頃から、シングルスレッドかつイベントドリブンなFlash環境で散らかりがちな非同期処理を、すっきりと書けるようにするための試みが多く見受けられるようになりました。それらの特徴をざっと調べてみたメモになります。先駆者達のやり方を広く知り、あわよくば何か洞察を得たいからであって、各ライブラリの優劣を独断と偏見で決定するような主旨ではありません。それからプログラム勉強する前にまず日本語の勉強しろっていうくらい思いやりのない説明が延々続きますが、万が一誰かの参考になればと思い載せておくことにします。 各ライブラリの特徴をつかむため、以下のポイントについて共通で見ていくことにします。 合成 複数の処理を直列化・並列化した複合物を区別なく扱えるか?処理の入れ子はどのように実現されているか? 並列実行 複数の処理の同時実行と、完了の待ち合わせが可能か? 例外処理 エラーハンドラは追加できるか?エラーからの回復は可能か? 続行 エラー発生時に、現在の処理をスキップして、残りの処理を続行することが可能か? 中止 処理の中止は可能か? 値の受け渡し 処理の結果として得られた値を、後続の処理に受け渡す仕組みはあるか? 冗長さ 処理を追加する手順はどうか?クラスを新規に作るのか?クロージャを渡すのか? 動的な処理の追加 処理を追加できる有効なタイミングは?実行後にも処理を追加でき、実行キューのように振る舞うか? 開始トリガ 処理の構築と実行が切り離されていて明示的に開始するのか?それとも構築と同時に暗黙で開始されるのか? 再実行 同じ非同期処理を、2回以上実行可能か? 進捗通知 ロードなどの進捗を通知する枠組みがあるか? イベントへの適合 完了の通知は、AS3のイベントモデルに準拠して行われるか? 逆に、イベントを各々の非同期処理モデルに適合させる方法は提供されているか? flashrod Job var job:Job = new Sequence( new Trace("begin"), new Concurrent(new URLGet("http://www.google.com/"), new URLGet("http://www.yahoo.com/"), new URLGet("http://www.apple.com/"), new URLGet("http://www.mozilla.org/")), new Sequence(new URLGet("http://www.cnn.com/"), new URLGet("http://del.icio.us/")), new Trace("wait for 2 sec."), new Wait(2000), new Concurrent(new URLGet("http://tumblr.com/"), new URLGet("http://flickr.com/")), new Trace("end")); job.start(); 非同期処理の同期化を助ける非常にシンプルな方法です。引数なしのstartメソッドで実行が開始され、完了時にfinishedを送出するものをJobとし、全てのクラスはJobを実装します。たとえ同期処理でも、完了時にfinishedを送出することが求められます。 合成可。SequenceやConcurrentはJobインターフェースを実装している。 並列実行可。Concurrentクラスを使う。 エラーについては扱っていない。 続行可。たとえエラーが発生しても、finishedイベントを送出するようJobを実装すればよい。 中止は扱っていない。 値の受け渡しは不可。Job側で結果を保持しておく、などの必要があり。 traceすらもJobの実装クラスになる。クロージャ渡せるようにしたい人は各自でといった感じ。 非同期処理の構築はコンストラクタでのみ行われ、その後の変更は不可。 Job#start()で明示的な実行を行う。 ...
[as]AS3 で埋め込みフォントを使うテクニック (4)
share
digg
by
nitoyon (0)
on
てっく煮ブログ (0)
4 weeks
ago
permalink
埋め込みフォントを使う場合のちょっとしたTipsを3つ紹介しておく。 1. 何も考えずにフォントを埋め込む方法 フォントを埋め込むには、Embed メタタグを利用する。 package { import flash.display.Sprite; import flash.text.TextField; public class EmbedFontTest extends Sprite { [Embed(source='アニトM-教漢.TTF', fontName='anito')] public function EmbedFontTest(){ stage.align = "TL"; stage.scaleMode = "noScale"; var textField:TextField = new TextField(); textField.embedFonts = true; textField.width = 400; textField.height = 300; textField.x = 50; textField.wordWrap = true; textField.htmlText = "<font face='anito' size='30'>embedFont で回転やアルファの設定が自由自在になりますね。</font>"; textField.rotation = 10; addChild(textField); } } } Embed メタタグでは source 属性でフォントのパス、fontName 属性でFlash 中で利用するフォント名を設定する。 TextField ではメタタグで決定したフォント名を指定してやる。ここでは TextFormat を使うのが面倒なので、htmlText 中の font タグで直接設定してる。 TextField ...