2008-03-01から1ヶ月間の記事一覧

はてなでFlashプログラミング

以前作ったLuaのWebアプリにMing/Rubyを組み込んでみた。 こんな感じでエントリにコードを書いて >|lua| response.content_type = 'application/x-shockwave-flash'movie = SWFMovie.new() movie.set_dimension(50, 50) font = SWFBrowserFont.new('_serif')…

はてなでFlashプログラミング その2

Ming/Rubyいじりから拝借。 [実行] response.content_type = 'application/x-shockwave-flash' --Ming.set_scale(1.0) m = SWFMovie.new() m.set_dimension(600, 600) s = SWFShape.new() f = s.add_fill(0x00, 0xff, 0x80, 0x80) s.set_right_fill(f) s.m…

Rua 0.4.2

http://rua.rubyforge.org/ http://rubyforge.org/frs/?group_id=4845 Luaに渡したオブジェクトが空テーブルになって返ってくるという、結構致命的なバグがあったので修正しました。

Phusion Passenger (a.k.a. mod_rails for Apache) Preview

http://www.modrails.com/ 「RailsSpawnServer」というディレクティブが出てくるから、外部のRailsのプロセスとApacheで通信するように見える。 mod_fcgidと比べて、プロセスを外部管理にする&FastCGIプロトコルを使わないことで、なんかのメリットがあるっ…

Making PStore reaaaally fast (and stable)

http://izumi.plan99.net/blog/index.php/2008/03/26/making-pstore-reaaaally-fast/とりあえず、あとで読む。

実験中

[実行] response.content_type = 'application/x-shockwave-flash' movie = SWFMovie.new() movie.set_dimension(50, 50) font = SWFBrowserFont.new('_serif') text = SWFTextField.new() text.set_font(font) text.add_string('Hello, world') info = mo…

mod_substitute.c

http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/mod_substitute.c?view=markup なんだこのフィルタのチュートリアルは? と、思うくらい分かりやすい。 しかし、やりたいことは単純なのに、この複雑さ。絶望的だ。

POSIX Threads for Win32

http://sourceware.org/pthreads-win32/ とりあえずメモだけ。

svn_string.c

http://svn.collab.net/repos/svn/trunk/subversion/libsvn_subr/svn_string.c APRのメモリプールを使って、Stringを実現しようとしている…ように見える。 apr_preallocってないのか…古いメモリは破棄できないのかな?

NHKアーカイブス

インベーダゲームのドキュメンタリーがやってるけど、なかなか面白い。 タイトーが市場にあふれるインベーダーゲームのコピーに苦言を呈してて、任天堂の山内博が「アミューズメント業界の発展のためには、秘密にすべきじゃない。オープンにすべきだ」なんて…

ShootingStarをwin32に移植してみた

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/asteroid/?root=svn すでに公式でWindowsへの対応が表明されているけど、勉強ってことで。WinSock2が使える環境なら、たぶんビルド可能。とりあえず「5分で作るチャット」を作って、FirefoxとOperaで動作…

echod_f: 標準入出力関数を使ってechoサーバ

recv(2)、send(2)を使わない。fdopenしたときに、close/fcloseの両方呼び出すべきなのかどうか、はっきりしないなぁ。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/types.h> #include <unistd.h> #include <errno.h> #define ECHO_PORT 7 #define MAX_BACKLOG 5 #define</errno.h></unistd.h></sys/types.h></arpa/inet.h></sys/socket.h></string.h></stdlib.h></stdio.h>…

WinSock: socketにfgetsを使えない… と思ったら出来た

_open_osfhandleしてfdopenすれば使えると思ったのに。 追ってみると、ReadFileでコケてるみたい。 ひょっとしてサーバ側だと使えないのかな?うーん… socketじゃなくてWSASocketを使ったらできた! #include <winsock2.h> #include <ws2tcpip.h> #include <stdio.h> #include <io.h> #include <fcntl.h> #inc</fcntl.h></io.h></stdio.h></ws2tcpip.h></winsock2.h>…

libevを使った低パフォーマンスなCOMETサーバ(試作)

「これはひどい」だ…orz。 my_commetd.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <alloca.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <ev.h> #define PORT 10080 #define MAX_BACKLOG 5 #define …</ev.h></errno.h></fcntl.h></unistd.h></sys/types.h></arpa/inet.h></sys/socket.h></alloca.h></string.h></stdlib.h></stdio.h>

Safe C String Library v1.0.3

http://www.zork.org/safestr/ なんかライブラリがありそうだと思ったら、あった。ほかにもいろいろあるみたい。 使ってみよう。 追記 こんなのも。 (via IPA ISEC セキュア・プログラミング講座:C/C++言語編 第1章 総論:ツールの利用)

XXL v1.0.1 (January 30, 2005)

http://www.zork.org/xxl/ 面白いけど、言語が変わってしまいそうで、使うのをためらうな…

Safe C String Libraryを使ってみる

フツーに使える。よいかも… #include <stdio.h> #include "safestr.h" int main() { safestr_t str; str = safestr_create("hello, world", 0); printf("%s\n", str); safestr_append(&str, SAFESTR_TEMP(". hello, safestr.")); printf("%s\n", str); safestr_replac</stdio.h>…

UNIXドメインソケットとdRubyを使ってRailsをリモートでいじる

environment.rbとか適当なファイルに以下のコードを追加する。 require 'drb/drb' unless $DRUBY_SERVER $DRUBY_SERVER = DRb.start_service("drbunix:/var/tmp/mongrel.#{Process.pid}.sock", Module.new) end あとはirbでいじり放題。 ポート番号を気にす…

mongrelでのスレッドのライフサイクル

mongrelでのスレッドの寿命を調べるために、0.3と1.0のソースを眺めてみる。 ざっと見た感じ、スレッドの再利用はしていない。スレッドの寿命とリクエストの寿命は大体、同じになる。 だから、Thred.currentになんかキャッシュしといて他のリクエストでも意…

XMLSocketでechoクライアントを作る

AS

とりあえずできた。IEでも動作。 Flashからconsole.logに出力できるのは便利だなー。 クライアント echo_client.as import flash.external.ExternalInterface; class EchoClient { static function main() { var log = function(msg) { ExternalInterface.ca…

XMLSocketで接続できない…

AS

XMLSocket使って、Flashでechoサーバのクライアントを作ろうとしたら、onConnectでなぜか失敗…(connectは成功してるのに) echoサーバには「」という文字列が飛んできてるので、ポリシーの設定のやりとりで失敗してんのかなぁ? import flash.external.Exte…

拝郷メイコ

テレビ神奈川見てて拝郷メイコが出てて「この人、誰だろー?」と思って調べたら、MEIKOの中の人だった。 無駄知識が増えた。

libevでechoサーバを作る

パフォーマンスがよいよいと評判のlibevでechoサーバを書いてみる。 echod_libev.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <ev.h> #define ECHO_PORT 7 #define MAX_BACKLOG 5 #def…</ev.h></errno.h></fcntl.h></unistd.h></sys/types.h></arpa/inet.h></sys/socket.h></string.h></stdlib.h></stdio.h>

Rua 0.4.1

http://rubyforge.org/frs/?group_id=4845 基本的に変更はなし。 VS2008買ったのとLua 5.1.3がリリースされたんでビルドし直し。 あとhave_library('iconv')がないとのご指摘があったので、extconf.rbを修正。libiconvがなくてもインストール可。というか、d…

てすと

ちょwWBSwww

まつもとゆきひろさんが出てたw ルビーオンレールスてwww

えびの中身

昼休みにEbbのソースをちょこちょこと読んでみる。 大まかな処理の流れは以下の通り。 Ebb::Serverをstartすると、FFI::server_listen_on_xxxでサーバソケットのイベントコールバックにebb.c#on_requestを登録 サーバにリクエストがくるとon_requestがコール…

libev

http://software.schmorp.de/pkg/libev.html えび経由で。 libevenの改良版?

link: 満足せる豚。眠たげなポチ。:Mongrel 生まれの高速(らしい) Web サーバ Thin に関するメモ。

http://blog.hacklife.net/archives/51374724.html スケーラビリティかんするコメントが興味深い。 「ユーザスレッドだから、スケーラビリティを得るための戦略としてはスレッディングじゃなくて、イベント駆動がいいよ」と理解。 libeventみたいな感じで、…

Windows: 一時ファイルを作成してロックする

_lockingのバイト数がよく分からないなー。 #include <stdio.h> #include <io.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <share.h> #include <sys/locking.h> #include <errno.h> #include <windows.h> #define BUFLEN 1024 int main() { int fd; char ftmp[BUFLEN]; GetTempPathA(sizeof(ftmp), ftmp)…</windows.h></errno.h></sys/locking.h></share.h></sys/stat.h></sys/types.h></fcntl.h></io.h></stdio.h>