みんなで一緒にターミナル Partty! バージョン0.2リリース!
1つのターミナルを複数の人で同時に操作できるソフトウェア Partty のバージョン0.2をリリースします!
- ソースコード:partty-0.2.0.tar.gz
- Intel Mac用バイナリ:partty-0.2.0-mac-intel.tar.gz
- PowerPC Mac用バイナリ:partty-0.2.0-mac-ppc.tar.gz
- Linux x86用バイナリ:partty-0.2.0-linux-i386.tar.gz
- Linux x86_64用バイナリ:partty-0.2.0-linux-x86_64.tar.gz
- FreeBSD x84用バイナリ:partty-0.2.0-freebsd-i386.tar.gz
Parttyとは?
1つのCUI端末を複数の人で同時に操作することができるようにするソフトウェアです。
ペアプログラミング、グループプログラミングに
ターミナルそのものを共有するので、打ち間違いやTab補完を使う瞬間まで生々しく共有されます。「ペアプロしよう」と言う代わりに、「パーティーしよう!」と言えば盛り上がること間違いなし!
シェルの使い方や目にもとまらぬエディタ捌きなどなど、ソースコードには現れないテクニックも共有することができます。
使い方
一番最初にターミナルを起動した人が「ホスト」になります。他の人は「ゲスト」として後から接続します。
まずはホストを起動します。
[driver.local ~/partty]$ ./partty host >Partty! start
続いて別のマシンから(あるいは同じマシンで別のターミナルを開いて)、ホストに接続します。引数にホストのIPアドレスかホスト名を指定してください。
[partner.local ~/partty]$ ./partty guest driver.local >Partty! connected
3人以上でもOKです。
[spectator.local ~/partty]$ ./partty guest driver.local >Partty! connected
※間違っても同じターミナル上でホストとゲストを両方起動してはいけません。
切断したいときは、「別のターミナルを開いて」、「./partty exit」とコマンドを実行して接続中のセッションを確認してください。
[spectator.local ~/partty]$ ./partty exit >Partty! session list: session 1 (guest): ./partty guest driver.local
それから切断したいセッションを選んで、「./partty exit <番号>」と実行してください。
[spectator.local ~/partty]$ ./partty exit 1 terminating session 1 (guest): ./partty guest driver.local
単純にparttyのプロセスにTERMシグナルを送ってもOKです。
ホストとゲストとの通信には、TCPの代わりにUNIXドメインソケットを使うこともできます。ちょっとセキュアに使えます。
[driver@driver.local. ~/partty]$ partty host -l ~/socket [driver@driver.local. ~/partty]$ chmod 660 ~/socket [partnerr@driver.local. ~/partty]$ partty guest -l ~/socket
端末サイズについて
ターミナルの大きさはホストに合わせられます。ホストよりもゲストの方が小さいと、変なところで改行されて崩れてしまいます。ゲストのターミナルを大きくするか、ホストのターミナルを小さくしてあげてください。
@CodeRepos
Partty!のソースコードはCodeReposのlang/c/parttyにあります。どんどんいじってください。どんどん改変してください。
epoll/kqueueの抽象化
Partty!はepoll/kqueue/select/pollを抽象化するライブラリFDIO::Multiplexerを含んでいます。こちらも合わせてどうぞ。
このライブラリを発展させて、今は非同期IOをpthreadでエミュレーションするライブラリlibpioというものを作っていたりもします。