Proxy DHCPを使ってネットワークブートサーバーを構築する

pxe-pdhcpはProxy DHCPサーバーの実装です。Proxy DHCPはPreboot Execution Environment (PXE)というネットワークブートの標準規格を使ってディスクレスコンピュータをネットワークブートする際に使います。ディスクレスコンピュータは簡単に増やしたり交換…

Setting up network boot server using Proxy DHCP server

pxe-pdhcp is an implementation of Proxy DHCP server. Proxy DHCP is used to boot diskless computers by using the network boot standard named Preboot Execution Environment (PXE). PXE with Proxy DHCP makes it easy to prepare thin clients, HPC…

オブジェクト指向パーサジェネレータ 「Metal」based on Parsing Expression Grammar

Parsing Expression Grammar (PEG)をベースとした構文解析器を生成するパーサジェネレータMetalを作りました。Rubyで書かれており、Rubyのコードを生成します。Metalの多くはOMeta: an Object-Oriented Language for Pattern MatchingをRubyに移植したもので…

自己構文拡張・マルチパラダイム言語

id:ranhaに影響されて、言語方面に興味を持ちつつある今日この頃、Objective-Cをちょっと触ってみたので紹介してみます。 Objective-Cの特徴(WikiPedia:Objective-C): 静的型付けと動的型付けの両方をサポート コンパイル時型チェックが効く ダックタイピ…

Cometと同時接続数制限

HTTPプロキシを通してCometサーバーに接続する場合や、1つブラウザで複数のタブを開いてCometサーバーに接続する場合、同時接続数制限が問題になる。Cometでは1つのリクエストに対して応答を遅らせるため、クライアント1台がコネクションを1本占有してしまう…

Aerial over Comet

Aerial(エアリアル) - Ajax/Cometの次を行く リアルタイム双方向RPCのトラックバックより引用: 次世代Webアプリケーション基盤技術 - 個人的まとめ他 これは本当に非常に素晴らしい。 ただ、Flash・サーバ間の通信がHTTPじゃなく、Socket(独自プロトコル …

Aerial(エアリアル) - Ajax/Cometの次を行く リアルタイム双方向RPC

JavaScript - サーバー間で双方向のRPC通信を行う技術は「Aerial」(エアリアル)という名前になりました*1。アイディアを出していただいた皆様、ありがとうございましたm(_ _)m Aerialは、通信にFlashを使い、JavaScriptとサーバープログラムとの間で双方向…

Comet/Ajaxの上を行く技術

上を行くかどうかは知りませんが :-pAjaxはクライアントの都合でサーバーに通信を仕掛けるpull型の通信ができ、Cometはサーバーが好きなタイミングでクライアントへデータを送りつけるpush型の通信ができるわけですが、新たに双方向の通信ができる技術を開発…

Partty!でリモートペアプロしてみた

Cagraの開発でPartty!.orgを使ってリモート・ペアプログラミングをやってみたところ、かなりイイ感じだったので書いてみます。 使ったツール: Partty!.org(ターミナル共有) IRC(コミュニケーション等々) IRCのログ(作業の記録) Mercurial(ソースコー…

P2P分散ストレージ「Cagra」

id:nyaxt氏との共同開発の分散ストレージ「Cagra」(かぐら)のアルファ版をリリースしました。 cagra α3リリース cagra テクニカルデモ α2リリース 分散ストレージエンジンテクニカルデモ α版リリース cagraのα版試してみたよ - takumalog Cagraは以下のよ…

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の操作画面は、普通の動画と比べればサイズは小さ…