狠狠撸

狠狠撸Share a Scribd company logo
KeySnail
How to become a Real Programmer




id: mooz / @stillpedant
ーー1982年
“Real Programmers Don’t Use Pascal”

「本物のプログラマはPascalを使わない」

                       ーー Ed Post
ントは不要である。 コードは一目瞭然なのだ。本物の
プログラマは9時から5時まで働いたりしない。本物の
ログラマはネクタイをしない。本物のプログラマはLIS
など使わない。本物のプログラマはハイヒールを履かな
い。本物のプログラマは構造化プログラミングを共産主
義者の陰謀だと考えている。本物のプログラマはHaske
を使う。本物のプログラマはマウスを使わない。本物の
プログラマは昼食時間に合わせて出勤する。本物のプロ
グラマは妻の名を知らないかもしれない。しかし、ASC
コードテーブル(か EBCDIC)はしっかり憶えている。本
のプログラマは、GOTO を恐れずに使う。本物のプログ
ラマは、5ページにわたる長い DO ループを混乱せずに
書ける。本物のプログラマはOperaを使う。本物のプロ
グラマは料理の仕方を知らない。食料品店は午前3時
ントは不要である。 コードは一目瞭然なのだ。本物の
プログラマは9時から5時まで働いたりしない。本物の
ログラマはネクタイをしない。本物のプログラマはLIS
など使わない。本物のプログラマはハイヒールを履かな
い。本物のプログラマは構造化プログラミングを共産主
義者の陰謀だと考えている。本物のプログラマはHaske
を使う。本物のプログラマはマウスを使わない。本物の
プログラマは昼食時間に合わせて出勤する。本物のプロ
グラマは妻の名を知らないかもしれない。しかし、ASC
コードテーブル(か EBCDIC)はしっかり憶えている。本
のプログラマは、GOTO を恐れずに使う。本物のプログ
ラマは、5ページにわたる長い DO ループを混乱せずに
書ける。本物のプログラマはOperaを使う。本物のプロ
グラマは料理の仕方を知らない。食料品店は午前3時
“Real Programmers Don’t Use Mouse”

「本物のプログラマはマウスを使わない」
(c) http://www.nongnu.org/ratpoison/
「マウスを使わずに奥别产ブラウジングがしたい?」
「そんな君にオススメのアプリがあるんだ」
KeySnail
How to become a Real Programmer




id: mooz / @stillpedant
自己绍介
id: mooz / @stillpedant
Add-ons for Firefox
  KeySnail
     Emacs 版 Vimperator.本日紹介.
  Clipple
     クリップボードマネージャ.
  gpum
     Gmail の未読メールを管理.

Others
  percol
     UNIX のパイプに新風を.コマンドラインで anything.el
  Rios::Proxy
     expect にさよなら.Ruby でコマンドラインにフック.
  zlc.el
     Emacs のミニバッフ?補完を zsh ライクに.
  org.js
     JavaScript で書かれた org-mode 記法のパーサ.
KeySnail
Emacs 版 Vimperator
KeySnail と Vimperator の比較
KeySnail / Vimperator 両方が提供する機能
  ?   独自の設定フ?イルによるカスタマイズ
  ?   独自のプラグインシステム
  ?   vim や zsh ライクなコマンド入力インタフェース
  ?   anything.el / unite.vim ライクなインタフェース

KeySnail にしかない機能
  ?   様々な組み込みキーバインド(Emacs, Vim, w3m)
  ?   GUI によるカスタマイズ機能
  ?   Emacs ユーザ向けの機能 (キルリング,前置引数)
  ?   プラグインの管理 UI + 自動更新確認機能

Vimperator にしかない機能
  ? 要素の文字列を元にした Hit a Hint
  ? 豊富なプラグインの数々
  ? その他,私の把握していない機能たくさん ;)
GUI による設定
様々な组み込みのキーバインド
简単プラグインインストール
プラグインマネージャ
キーボードブラウジング入门には最适
演習問題

1. マウスを使わずにリンクを開く

2. マウスを使わずに画像を Tumblr へ投稿

3. マウスを使わずにテキストを選択し Tumblr へ投稿

4. マウスを使わずに 狠狠撸Share のスライドを閲覧

5. マウスを使わずに HTML の select を選択
マウスを使わずにリンクを開く
問題
  ? 普通はマウスでリンクをクリックする
  ? キーボードだけでこれを行うには?

解法1: Firefox のキャレットブラウズモードを使う
  ? Firefox に組み込まれている機能
  ? F7 キーで切り替えが可能
  ? 手順
     1. F7 キーを押しコンテンツ内にキャレット(カーソル)を表示
     2. 十字キーを使ってリンクまでキャレットを移動
     3. Enter を押してリンクをたどる


解法2: KeySnail の Hit a Hint プラグインを使う
  ? hok.ks.js
マウスを使わずに画像を Tumblr へ投稿
問題
  ? Tombloo をインストールしていることが前提
  ? 画像を右クリックして Reblog を選択する
  ? キーボードだけで画像を選択するには?


解法: hok.ks.js と kungfloo.ks.js を使う
  ? HoK はリンク以外の要素も選択できる
     ? 選択対象を CSS のセレクタ形式で記述可能
  ? kungfloo.ks.js は Tombloo のラッパー
     ? HoK によって選択された要素を Tombloo 経由でリブログする
マウスを使わずにテキストを選択し Tumblr へ投稿
 問題
   ? Tombloo をインストールしていることが前提
   ? テキストを選択して Reblog を選択する
   ? キーボードだけでテキストを選択するには?


 解法: hok.ks.js + kungfloo.ks.js + caret-hint.ks.js
   ? caret-hint.ks.js は HoK によるキャレットの移動を可能に
   ? キャレットを選択したいテキストの大体の位置に動かしたら
      ? Ctrl + Space を押してマークを設定 (Emacs ユーザにおなじみ)
      ? hjkl によりキャレットを移動し,テキストを選択し
      ? kungfloo のリブログコマンドを実行
マウスを使わずに狠狠撸Shareのスライドを閲覧
問題
  ? 狠狠撸Share のスライドは Flash / HTML5
     ? Flash 版にはショートカットキーが用意されていない
     ? HTML5 版では ← と → でスライド送りが可能
  ? マウスでポチポチとクリックするのは面倒
  ? キーボードだけで快適に閲覧するには?


解法: slidehsare.ks.js を使う
  ? ページ送り / フルスクリーンの切り替えがキーボードで可能に
  ? Flash 版でも問題なく動作
マウスを使わずに HTML の select を選択
問題
  ? 都道府県の選択など,やたらと option の多い select 要素
  ? マウスを使って選択するのは面倒
  ? キーボードだけで高速に目当ての要素を選択するには?


解法: prompt.selector() を使う
  ? http://d.hatena.ne.jp/mooz/20100206/p1
  ? anything.el ライクなインタフェース
     ? 様々な候補を受け取り,それをリスト形式で表示
     ? ユーザが文字を打ち込むと,マッチする候補に絞り込まれる
     ? ユーザが候補を選択すると,選択された要素がコールバック関数へ渡る
        – 複数のコールバック関数を指定することも可能(?クション)
     ? シンプルなインタフェースだが,可能性は無限大!
ご清聴ありがとうございました

More Related Content

OSC 2011 KeySnail