ターミナルエミュレータをJavascriptで書いてみる

海腹川背はイラスト等々を全部出したので、会社の人達とタイムアタックとかをしていたのですが
DSの充電ケーブルを実家に持ってくるのを忘れたせいで、やることがなくなって悲しい感じでした。

で、暇なのでGoogle Chromeで動くtelnetもどきを書いています.
Chromeを使っている理由はWebSocketなわけですが,突然Chromeがクラッシュしたりして面白いです.
WebSocketがめちゃくちゃ便利かー というと,TCPそのまま使えるわけではないのでなんかよく分かりませんが,SSLトンネルみたいなApacheモジュール(ファイヤーウォール超えたい)とかを書けば,ブラウザで何でもできるーみたいな未来が待っていて楽しいかもしれません。
WebSocketサーバ側はRubyで書いていますが,OpenSSLライブラリ(とおもわれ)が
SEGV吐いて死ぬ && SSLSocket::pendingが0しか返さないとかで愛想が尽きてきたので
サーバはC++で書きなおすかもしれません。
TERM=vt100な環境ではemacsとか動いていて素敵です。
emacs.png

vt100だとemacsが白黒で悲しいのでxtermなコントロールシーケンスをサポートできるようにがんばります.

残念な点はCtrl+nとかが拾えなくて、emacs涙目とかでしょうか。これかな
http://code.google.com/p/chromium/issues/detail?id=5496

TERM=xterm

TERM=xtermな環境でもemacsが動いている用にみえます。
あと、unicodeに仮対応。
xterm.png
軽く編集するくらいなら、未対応のコントロールシーケンスが届くことは無いので一段落。
Ctrl-nが使えないので、あまり熱心にテストする気が起きないとか何とか。

M-x tetrisのブロックが欠けたりするので、微妙におかしいのは間違いないです。

  • 実家帰ってるの? おれもそろそろ帰るよー. -- yoppy3 2009-12-30 01:07:44 (水)
  • 実家埼玉に移っちゃったから今埼玉だったり。で、30日に岡山に飲みに行くけど、一晩遊んだら帰っちゃうんだよねぇ。 -- Naoki 2009-12-30 01:20:57 (水)
  • まじか,引っ越してたんだ.俺も今日夕方には帰ってるわ.飲み会いいねぇ.どのグループ飲みだろ? -- yoppy3 2009-12-30 06:24:51 (水)
  • 高校の時の弓道部だよ。 -- Naoki 2009-12-30 13:02:28 (水)

お名前: