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パッケージとか、
    Mo...
deferred.el
deferred.elとは?
• JavaScriptの
    JSDeferred, Mochikit.Asyncを参考
• コールバック関数を
    後付け出来るようなしくみ
• ⾮同期処理を抽象化する道具
何が出来るか?
• 外部との⾮同期連携
• ⾮同期処理のチェイン、エラー処理
• 「後で」
 – データフロー 、遅延評価
• マクロでさらに強⼒
 – ジェネレーター 、スレッド
詳しくは、後⽇はてなで!
deferred.el デモ
•   Webで取ってくる
•   コマンド実⾏する(連結)
•   ジェネレーター(遅延評価)
•   慣性スクロール(スレッド)
ありがとうございました!
Upcoming SlideShare
Loading in...5
×

Emacs, ui, async

1,434

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,434
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Emacs, ui, async

  1. 1. kiwanami 2010/09/25 kansai_emacs #x02
  2. 2. id:kiwanami • さくらいまさし • 属性:元未踏、凝縮系物理 • 最近は elisp, JavaScript • 好きなOSはMac
  3. 3. User Interface Design • ユーザーのことを知る • 本質を⾒つける • ⾒せ⽅、操作⽅法の開発
  4. 4. 理想の言語環境とは?
  5. 5. 作ったもの紹介
  6. 6. skype.el • 動機 – 毎⽇何⼗個ものチャットでプロジェクト管理 – LinuxのSkypeのGUI がひどかった – ⽇本語⼊⼒に問題がある • dbusでとりあえず作った • anything、migemoでの操作、検索
  7. 7. id-manager.el • Webサービス、サーバー管理 • OS⾮依存なパスワード管理 • 暗号化と検索
  8. 8. cacoo.el • Emacsの⽂字⼊⼒に図を融合 • 改修中 – APIを使って図をとってこれるように
  9. 9. e2wm • プログラミングのワークフローの⾒直し • windowのレイアウトを作業ごとに切り替えた い • 改修中 – ⾮同期、イベントの扱いを改善後、 機能追加予定
  10. 10. EmacsによるUI構築 • エディタを中⼼としたアプリケーションの可 能性 • Emacsの外の世界との連携
  11. 11. UI開発には非同期が重要
  12. 12. アニメーション • ユーザーへのメッセージ • 楽しさ、気持ちよさの演出 • 実装としては⾮同期で動かす
  13. 13. 速度 • UIの速度で使い⽅が変わる – 業務システム – Google Instant • なるべくレスポンスを早く返す – ユーザーを待たせない⼯夫 – ⾮同期で実⾏
  14. 14. 外の世界 • 「クラウド(ASP)」、マルチメディア • データがローカルにないかもしれない • 容量が⼤きい • Emacsと外の世界との密な相互作⽤ – TwitterなどのAPI呼び出し
  15. 15. 最近のWeb周辺の動向 • ⾮同期、イベントドリブン • Web界隈のGUI技術の急速な進歩
  16. 16. Emacsにおける非同期は?
  17. 17. 現状のEmacsの⾮同期 • 調べてみた – elispのinfo – ローカル – ネット、ライブラリ、アプリなど
  18. 18. みんな普通にがんばっているらしい • ⾮同期の便利なライブラリはないみたい • 結構みんなHTTPを⾃⼒で話すことが多い • emacs-w3mの⾮同期マクロ • Javaのconcurrentパッケージとか、 Mochikit.Async(JSDeferred)とかにあたるも のがあれば便利そう
  19. 19. deferred.el
  20. 20. deferred.elとは? • JavaScriptの JSDeferred, Mochikit.Asyncを参考 • コールバック関数を 後付け出来るようなしくみ • ⾮同期処理を抽象化する道具
  21. 21. 何が出来るか? • 外部との⾮同期連携 • ⾮同期処理のチェイン、エラー処理 • 「後で」 – データフロー 、遅延評価 • マクロでさらに強⼒ – ジェネレーター 、スレッド
  22. 22. 詳しくは、後⽇はてなで!
  23. 23. deferred.el デモ • Webで取ってくる • コマンド実⾏する(連結) • ジェネレーター(遅延評価) • 慣性スクロール(スレッド)
  24. 24. ありがとうございました!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×