SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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/
「マウスを使わずにWebブラウジングがしたい?」
「そんな君にオススメのアプリがあるんだ」
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. マウスを使わずに SlideShare のスライドを閲覧

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 のリブログコマンドを実行
マウスを使わずにSlideShareのスライドを閲覧
問題
  • SlideShare のスライドは Flash / HTML5
     • Flash 版にはショートカットキーが用意されていない
     • HTML5 版では ← と → でスライド送りが可能
  • マウスでポチポチとクリックするのは面倒
  • キーボードだけで快適に閲覧するには?


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


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

Contenu connexe

Tendances

簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話yokoda_toshiaki
 
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Kazuhide Maruyama
 
Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxKouhei Maeda
 
Ansibleハンズオン勉強会
Ansibleハンズオン勉強会Ansibleハンズオン勉強会
Ansibleハンズオン勉強会Takahisa Iwamoto
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)泰 増田
 
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyWebフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyMasashi Shibata
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話Yoshihiro Ura
 
個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法
個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法 個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法
個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法 ericsagnes
 
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRubyemruby: ブラウザで動くRuby
emruby: ブラウザで動くRubymametter
 
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04敦志 金谷
 
@nukokusa_botを支える技術
@nukokusa_botを支える技術@nukokusa_botを支える技術
@nukokusa_botを支える技術Joe_noh
 
Web Workerで○○する話
Web Workerで○○する話Web Workerで○○する話
Web Workerで○○する話ushiboy
 
Gulp De wordpress in WordBench
Gulp De wordpress in WordBenchGulp De wordpress in WordBench
Gulp De wordpress in WordBenchKanako Kobayashi
 
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8ltれれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8ltJunpei Matsuda
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系祐司 伊藤
 
Chefのはじめの一歩
Chefのはじめの一歩Chefのはじめの一歩
Chefのはじめの一歩Misa Kondo
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 

Tendances (20)

簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話
 
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
 
Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
 
Ansibleハンズオン勉強会
Ansibleハンズオン勉強会Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)
 
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyWebフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
 
個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法
個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法 個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法
個人ブログから大規模まで! 多機能 CMS 「 eZ Publish コミュニティエディション」の活用法
 
emruby: ブラウザで動くRuby
emruby: ブラウザで動くRubyemruby: ブラウザで動くRuby
emruby: ブラウザで動くRuby
 
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
 
@nukokusa_botを支える技術
@nukokusa_botを支える技術@nukokusa_botを支える技術
@nukokusa_botを支える技術
 
Web Workerで○○する話
Web Workerで○○する話Web Workerで○○する話
Web Workerで○○する話
 
Gulp De wordpress in WordBench
Gulp De wordpress in WordBenchGulp De wordpress in WordBench
Gulp De wordpress in WordBench
 
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8ltれれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8lt
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系
 
Chefのはじめの一歩
Chefのはじめの一歩Chefのはじめの一歩
Chefのはじめの一歩
 
Dockerプレゼン
DockerプレゼンDockerプレゼン
Dockerプレゼン
 
Memcache Queue
Memcache QueueMemcache Queue
Memcache Queue
 
八王子
八王子八王子
八王子
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 

En vedette

Rios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLIRios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLIMasafumi Oyamada
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudRyousei Takano
 
『BrandSafe はてな』のアドベリフィケーションのしくみ
『BrandSafe はてな』のアドベリフィケーションのしくみ『BrandSafe はてな』のアドベリフィケーションのしくみ
『BrandSafe はてな』のアドベリフィケーションのしくみLintaro Ina
 
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~Ryousei Takano
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装Takuya ASADA
 
ネイティブ開発アンチパターン
ネイティブ開発アンチパターンネイティブ開発アンチパターン
ネイティブ開発アンチパターンYuki Tamura
 
はてなブックマーク in Scala
はてなブックマーク in Scalaはてなブックマーク in Scala
はてなブックマーク in ScalaLintaro Ina
 

En vedette (9)

ES.next WeakMap
ES.next WeakMapES.next WeakMap
ES.next WeakMap
 
Rios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLIRios::Proxy - A framework for CLI
Rios::Proxy - A framework for CLI
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC Cloud
 
『BrandSafe はてな』のアドベリフィケーションのしくみ
『BrandSafe はてな』のアドベリフィケーションのしくみ『BrandSafe はてな』のアドベリフィケーションのしくみ
『BrandSafe はてな』のアドベリフィケーションのしくみ
 
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
ネイティブ開発アンチパターン
ネイティブ開発アンチパターンネイティブ開発アンチパターン
ネイティブ開発アンチパターン
 
Ruby everywhere
Ruby everywhereRuby everywhere
Ruby everywhere
 
はてなブックマーク in Scala
はてなブックマーク in Scalaはてなブックマーク in Scala
はてなブックマーク in Scala
 

Similaire à OSC 2011 KeySnail

うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?Masahiro Sano
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスericsagnes
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 
MODXで“超”キレッキレのブログ作る秘訣公開します
MODXで“超”キレッキレのブログ作る秘訣公開しますMODXで“超”キレッキレのブログ作る秘訣公開します
MODXで“超”キレッキレのブログ作る秘訣公開しますKei Mikage
 
a-blog cms の基本 Ver.Kochi
a-blog cms の基本 Ver.Kochia-blog cms の基本 Ver.Kochi
a-blog cms の基本 Ver.KochiKasumi Morita
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキングTakayuki Kondou
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについてNobukazu Hanada
 
Mozillaのビルドインフラ
MozillaのビルドインフラMozillaのビルドインフラ
MozillaのビルドインフラMakoto Kato
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in OkazakiEtsushi Ishii
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセスMakoto Kato
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」ericsagnes
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装Heliumエンジンの設計と実装
Heliumエンジンの設計と実装DADA246
 
141115 making web site
141115 making web site141115 making web site
141115 making web siteHimi Sato
 
フロント作業の効率化
フロント作業の効率化フロント作業の効率化
フロント作業の効率化Yuto Yoshinari
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京hecomi
 

Similaire à OSC 2011 KeySnail (20)

うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
MODXで“超”キレッキレのブログ作る秘訣公開します
MODXで“超”キレッキレのブログ作る秘訣公開しますMODXで“超”キレッキレのブログ作る秘訣公開します
MODXで“超”キレッキレのブログ作る秘訣公開します
 
a-blog cms の基本 Ver.Kochi
a-blog cms の基本 Ver.Kochia-blog cms の基本 Ver.Kochi
a-blog cms の基本 Ver.Kochi
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
 
Mozillaのビルドインフラ
MozillaのビルドインフラMozillaのビルドインフラ
Mozillaのビルドインフラ
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
 
Ppl
PplPpl
Ppl
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
 
141115 making web site
141115 making web site141115 making web site
141115 making web site
 
フロント作業の効率化
フロント作業の効率化フロント作業の効率化
フロント作業の効率化
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 

OSC 2011 KeySnail