nayoyaグループ - naoyaの日記 - Gearmanのやつ#2
clouderさんは結局、MSG_WAITALLを使う方法を取られたようですね。個人な趣味としてはあまりMSG_WAITALLは使わないほうなので、きっと私の場合はループを回すかな。
理由は大した事ではなく、サーバ側で「Content-Length」を出力し、そのContent-Length数分データを送信するようなCGIを書いた場合、バグで「Content-Length」分満たない内に落ちてしまった場合に、クライアントの受信がMSG_WAITALLだとバッファ全部破棄されてしまいエラーハンドリングし辛いからです。
(※たとえばどこまで受信したかが分からないとか...)
今日は本題から外れますが、上記リンクの中にも出てきたソケットディスクリプタから「fdopen」する処理をWindowsではどう書くかをご紹介。
2008/01/31
おそろしや、おそろしや...(JavaでByRef?)
おそろしやおそろしや...
むかーしむかし、Microsoft Visual J++という道具があったそうな...
その道具では、関数呼出の参照渡しを実現するために、配列を渡してJNI内部で値を設定するといった、奇怪な手法が使われておりましたとさ。
さて話は現代に移り、Microsoft Visual J#という道具が巷では出回っていると聞き、さっそく試した私は、腰を抜かしてしまいそうになりました。
Javaという言語仕様まで変えてしまうとは...
おそろしや、おそろしや...
#まぁ、Javaって言ってない(J#)から、いいんですか...
#そうですか...
むかーしむかし、Microsoft Visual J++という道具があったそうな...
その道具では、関数呼出の参照渡しを実現するために、配列を渡してJNI内部で値を設定するといった、奇怪な手法が使われておりましたとさ。
さて話は現代に移り、Microsoft Visual J#という道具が巷では出回っていると聞き、さっそく試した私は、腰を抜かしてしまいそうになりました。
public class Test
{
public static void test1(int a) { a = 2; }
public static void test2(/** @ref */ int a) { a = 2; }
public static void main(String[] args) {
int b = 3;
test1(b); System.out.println(b);
test2(b); System.out.println(b);
}
}
まさか、こんな結果になりますとは...Javaという言語仕様まで変えてしまうとは...
おそろしや、おそろしや...
#まぁ、Javaって言ってない(J#)から、いいんですか...
#そうですか...
私が良く使うキーボードショートカット
ショートカット一発検索で生活が変わる
を見ていて、普段自分がWindowsで使ってるキーボードショートカットを書いて見る事にする。
ただvimrcは、もう911行もある...。
vimrcでどんな事やってるかについては、また違うエントリで...
ウィンドウ最大化
Alt-Space Alt-X
押し方はAltキーを押しっぱなしで「スペース」、「X」と連続で押す。
元に戻したい場合は「X」の代わりに「R」を押す。
システムのプロパティ
Win-Pause
押し方はWindowsキーを押しながらPauseキー
まれに無限ループするプログラムを書いてしまった時等に、プロセス強制終了したい場合等に使う。
コンピュータのロック
Win-L
押し方はWindowsキーを押しながら「L」キー
突然会議に召集を掛けられた場合には、すかさず「Win-L」して席を外す。
番外編
普段からコマンドプロンプトを使う事が多い私は、デスクトップにコマンドプロンプトのショートカットを貼り、そのショートカットのプロパティでショートカットーキーを「Ctrl + Shift + Alt + F12」に設定している。基本的にはオリジナルの設定を変える事はしないほうです。便利だと思ったら付け足すくらい。
これでどの画面からでも「Ctrl + Shift + Alt + F12」でコマンドプロンプトを起動出来る。
ただvimrcは、もう911行もある...。
vimrcでどんな事やってるかについては、また違うエントリで...

