2008-01-01から1年間の記事一覧

Flash Player 9,0,115,0のに対処する方法

いまさら画期的な発見!まずは長い前置きから。 最新のFlash Playerでは、SocketまたはXMLSocketを使ってサーバーと通信するとき、最初に<policy-file-request/>\0(\0はNULL文字)という文字列を送信してきます。これに対して<cross-domain-policy><allow-access-from domain="*" to-ports="*"/></cross-domain-policy>\0というような文字列を返してやらないと、まったく通</policy-file-request/>…

100コインで1UPするデーモン

何かのコマンドが標準出力に"Error"と出力したら音を鳴らすプログラムには多々問題がありました。 コインをゲットする音を再生するのにmplayerを起動しているので、大変重い。`yes ok`とやってしまうと大変なことになる。 それ以前にmplayerを起動するのはカ…

partty.org-0.3.3

partty.orgコマンドをアップデートしました。バグフィックスがメインです。Linuxや他のOSで、ゲストからの操作がまったくできないバグを修正しました。 partty.org-0.3.3.tar.gz partty.org-0.3.3.mac_intel.zip partty.org-0.3.3.linux_i386.tar.gz partty.…

TODOのデータ構造について

TODOのデータ構造はキューであると考えている人が多いのではないか。しかし私の経験では、TODOのデータ構造はスタックである。 すなわち、後から追加されたTODOほど、先に処理される。逆に最初に追加したTODOは、いつまで経っても処理されない。これが現実で…

ハチロク世代開発合宿

ハチロク世代開発合宿に参加してきました。分散ファイルシステムを作る、Ruby版Partty!サーバーを作る、温泉に入る、道に迷うなどしてきました。 id:nishiohirokazuさんにインスパイアされて、「何かのコマンドが標準出力に"Error"と出力したら音を鳴らす」…

メモ

Partty!.org関連 「今見ている人の人数」を見たい IRCのログを見られるようにしたい Live Codingに対して言いたい放題するのが良い Flex IRCクライアントがイマイチ使いにくい 枠が小さい nickが長すぎる nickをhash(rand())で決めているのを、OpenIDで認証…

最近発見した話題

id:yappoさんが、PerlでPartty!サーバーに接続するモジュール「Net::Partty」を開発されているのを発見!yappo++++++ 第3回(KLab勉強会#3のメモ)に引き続き、KLab勉強会#4に参加させていただきました。その懇親会で、VIVER COREを使っていただいている方を…

1000speakers:3のプレゼン資料(Keynote)

半透明エフェクトとかが好評だったらしいので、1000speakers:3で使ったKeynoteデータを公開してみます。Keynote '08が要ります。 1000speakers3-frsyuki.zip プレゼンは見た目勝負!なんてところも無いわけではないと思うので、とりあえずよそ見されずに見て…

1000speakers:3

先日1000speakers:3で発表してきました。題は「Partty!.orgでペアプログラミング」で、Partty!.orgの仕組みについてです。 プレゼンの内容は、私の発表も含めてすべてニコニコ動画にアップされていて、アカウントを持っていれば誰でも見ることができます。す…

セキュアVM BitVisor 0.2 公開

突然きた!しまった!何も準備してない! セキュアVMプロジェクト BitVisorのインストールの流れを見る限りでは、 bitvisor.elfをコンパイルする bitvisor.elfをGRUBでロード BitVisorが起動 BitVisorがMBRをロード? GRUBがもう一度起動する 適当なOSを起動…

partty.org-0.3.1にバージョンアップ - Partty!.org

partty.orgコマンドを更新しました。 変更点は以下の通りです。 FreeBSDに対応 ゲストロック時に「*locked*」、ロック解除時に「*unlocked*」と表示する -kオプション:パスワードに関わらず、ゲストからの操作をすべて無効化する partty.orgコマンドの実行…

セッションサーバーの実装 - Internal Partty!.org

Partty!.orgの中核は、ターミナルの操作画面を中継するセッションサーバーです。セッションサーバーはC++で書いてあります。 ターミナルの操作画面をホスト(partty.orgコマンド)から受け取り、Flexやtelnetのゲストに転送します。 セッションサーバーは主…

Partty!.orgの操作方法

これは! http://www.partty.org/session/test2/2008/03/14/16/08/47そういえば書いてなかった>< Flexターミナルエミュレータで日本語入力 インプットメソッドがONだと直接入力ができません。回避策として、Flexターミナルエミュレータの下の方にある「Com…

Partty!.org@CodeRepos

CodeRepos://websites/partty.org ↑LinuxかMac OS X Leopardで動きます*1。1024番以下のポートをlistenしないので、ユーザー権限で動かせます。 # Ramaze、Erubis、Mongrelをインストール $ gems install ramaze $ gems install erubis $ gems install mongr…

録画データが削除できるようになりました - Partty!.org

パスワードを入力すると、録画データが削除できるようになりました。セッションページの下部にある「delete this session」のリンクをたどり、パスワードを入力してください。 データ自体は削除されていないので、もう一度パスワードを入力すれば元に戻せま…

シークバーを実装しました - Partty!.org

録画データのプレイヤーにシークバーを実装しました。ブログに貼り付けられたプレイヤーも更新されます。 Partty!.orgキャッシュがしつこく残って、リロードするだけでは新しいプレイヤーに更新されないかもしれません。Command+Option+Eで1回キャッシュを空…

Flex SDKをインストールしてHello, World!するデモ

人気急上昇かもしれないFlexを、ゼロから始めてみるデモです。 お品書き: AdobeのサイトからFlex SDKをダウンロードする Flex SDKをインストールする rascutをインストールする Hello, World!なインターフェイスを書く ActionScriptを書いてアクションを加…

Partty!.orgのしくみ - みんなでペアプロできるサービス

今操作しているターミナルを共有できるサービスPartty!.orgを公開しました。Partty!.orgソフトウェアの中に入っているpartty.orgコマンドを使うと、今操作しているターミナルの画面を、他の人に見せたり、操作してもらったりすることができます。共有されて…

Ramzeを使ってみる

Partty!.orgのWebインターフェイスはRubyで書いたのですが、Ruby on Railsではなく、Ramazeという変な名前のWebフレームワークを使ってみました。Railsと比べてブラックボックスがずっと少なく、分かりやすいのがいい感じです。データベースを使わずにVCモデ…

Captty - ターミナル録画ツール

ターミナルを録画するツールにはttyrecがありますが、Partty!.orgではCapttyというツールを開発しました。Capttyはttyrecと比べて、データを圧縮する、ウィンドウサイズを保存するという利点があります。 CUIの操作画面は、普通の動画と比べればサイズは小さ…

Partty!.org始めました - みんなでペアプロできるサービス

今操作しているターミナルを共有できるサービスPartty!.orgを始めました。 Partty!.org ソースコード ソースコード@CodeRepos Partty!.orgソフトウェアを使ってシェルを起動すると、Webブラウザやtelnetコマンドを使って、その操作の様子が見られるようにな…

Flexで〜Service要素を作る

mx.core.IMXMLObjectインターフェイスを実装したクラス作ると、<HTTPService>要素のような、描画はされないけどMXMLに組み込める要素を作れるようです。mx.core.IMXMLObjectにはinitializedというメソッドしかないので、作るのは簡単です。initializedメソッドはMXMLのプ</httpservice>…

Flex Terminal + Telnet

ちまちまと改良を続けているFlexターミナルエミュレータですが、オープンソースのFlex 3.0がリリースされた記念でちょっと宣伝します。 インターフェイスをしっかり作ったので、ライブラリとして使いやすくなりました。 マルチバイト文字の扱いを割とまじめ…

mpioで作るメモリキャッシュサーバー

高速なイベント駆動IOライブラリ mpioがそこそこ動くようになったので、ちょっとサンプルプログラムを作ってみました。memcachedプロトコルと互換性のあるメモリキャッシュサーバーだったりするとカッコイイと思ったのですが、即席なので全然関係ないメモリ…

S6プレゼンメーカー

http://syuki.skr.jp/s6maker/ ちょっと作ってみました。ほとんどPressmateそのまま。ファイルに保存するコードをコメントアウトしただけッス>< リロードするとショッキングなことになるので注意!

Apache FOPで日本語システムフォントを使う

長らくApache FOPでOpenTypeフォントが使えないかと実験していたのですが、やっとその方法を発見しました。Apache FOPというのはXSL-FOの処理系で、XML文章を整形してPDFを書き出すことができます。ポイントは、 サーバーサイドで動く XSLTを使って「文章本…

CGIでRailsをまともに動かす

普通にRuby on RailsをCGI(dispatch.cgi)で動かすと遅すぎてやってられませんが、gateway.cgiを使うと、そこそこの速度で動くようになります。 最初に仕掛けを紹介してしまうと、1回目のアクセスがあったときに常駐プロセスを起動し、2回目以降のアクセス…

別のプロセスにファイルディスクリプタを転送する

UNIXドメインソケット経由でファイルディスクリプタを別のプロセスに渡すことができるらしいと言うことで、試してみました。Manpage of UNIX Manpage of SEND標準出力を別のプロセスに渡してみます。渡された側のプロセスは、自分の標準入力からの入力を、渡…

Rubyでインクリメント演算子

モドキ。ちょっと%が多め。 n = Counter.new puts n #=> 0 n%%%++% # インクリメント! puts n #=> 1 n%%%--% # デクリメント! puts n #=> 0 ↓ネタのタネ class Counter def initialize count = 0 @count = count end def % op if op == '++' @count += 1 s…

KeyRemap4MacBook

Macでキーマップのカスタマイズと言えばKeyRemap4MacBook(とPCKeyboardHack)。以前(もう1年近く前!)同じようにカーネルに潜り込んでキーマップをカスタマイズするドライバを作ろうとしたことがあったのですが、私にはちょっとムリだったようで…。個人的…