emacs, ui, async

Post on 27-Jun-2015

1.427 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

kiwanami

2010/09/25 kansai_emacs #x02

id:kiwanami

• さくらいまさし• 属性:元未踏、凝縮系物理• 最近は elisp, JavaScript• 好きなOSはMac

User Interface Design

• ユーザーのことを知る• 本質を⾒つける• ⾒せ⽅、操作⽅法の開発

理想の言語環境とは?

作ったもの紹介

skype.el

• 動機–毎⽇何⼗個ものチャットでプロジェクト管理– LinuxのSkypeのGUI がひどかった–⽇本語⼊⼒に問題がある

• dbusでとりあえず作った• anything、migemoでの操作、検索

id-manager.el

• Webサービス、サーバー管理• OS⾮依存なパスワード管理• 暗号化と検索

cacoo.el

• Emacsの⽂字⼊⼒に図を融合• 改修中

– APIを使って図をとってこれるように

e2wm

• プログラミングのワークフローの⾒直し• windowのレイアウトを作業ごとに切り替えたい

• 改修中–⾮同期、イベントの扱いを改善後、機能追加予定

EmacsによるUI構築• エディタを中⼼としたアプリケーションの可能性

• Emacsの外の世界との連携

UI開発には非同期が重要

アニメーション• ユーザーへのメッセージ• 楽しさ、気持ちよさの演出• 実装としては⾮同期で動かす

速度• UIの速度で使い⽅が変わる

–業務システム– Google Instant

• なるべくレスポンスを早く返す–ユーザーを待たせない⼯夫–⾮同期で実⾏

外の世界• 「クラウド(ASP)」、マルチメディア• データがローカルにないかもしれない• 容量が⼤きい• Emacsと外の世界との密な相互作⽤

– TwitterなどのAPI呼び出し

最近のWeb周辺の動向• ⾮同期、イベントドリブン• Web界隈のGUI技術の急速な進歩

Emacsにおける非同期は?

現状のEmacsの⾮同期• 調べてみた

– elispのinfo –ローカル–ネット、ライブラリ、アプリなど

みんな普通にがんばっているらしい

• ⾮同期の便利なライブラリはないみたい• 結構みんなHTTPを⾃⼒で話すことが多い• emacs-w3mの⾮同期マクロ• Javaのconcurrentパッケージとか、

Mochikit.Async(JSDeferred)とかにあたるものがあれば便利そう

deferred.el

deferred.elとは?• JavaScriptの

JSDeferred, Mochikit.Asyncを参考• コールバック関数を後付け出来るようなしくみ

• ⾮同期処理を抽象化する道具

何が出来るか?• 外部との⾮同期連携• ⾮同期処理のチェイン、エラー処理• 「後で」

–データフロー、遅延評価• マクロでさらに強⼒

–ジェネレーター、スレッド

詳しくは、後⽇はてなで!

deferred.elデモ• Webで取ってくる• コマンド実⾏する(連結)• ジェネレーター(遅延評価)• 慣性スクロール(スレッド)

ありがとうございました!

top related