エセSMTPサーバー

メールを自動送信するシステムのテストをしたいとか、ドメイン設定やSSL設定に必要な認証メールを受け取りたいとか、ありますよね。

こんなとき「届いたメッセージのアカウント確認もメッセージ転送も行わず、ひたすらOKステータスを返してメッセージの内容を出力する」というエセSMTPサーバーが欲しくなります。

Pythonに便利なワンライナーが用意されていました。

$ sudo python -m smtpd -n -c DebuggingServer 0.0.0.0:25

たったこれだけでエセSMTPサーバーが起動します。
オプションの詳細はこちら。 Continue reading →

2進数リテラルと2進数ダンプ

C++14では2進数リテラルが規格に加わりました。GCCやClangではCでも使えます。というか、もともとコンパイラの独自拡張機能として実装済みだったものが規格になったみたいです。使い方はこんな感じ。

#include <stdio.h>

int main()
{
    char c = 0b01000001;

    printf("0x%X\n", c);
    printf("%c\n", c);

    return 0;
}
$ ./a.out
0x41
A

Continue reading →

TCP輻輳制御アルゴリズムの音質評価

ある晴れた春の昼下がり、ぼくは気づいた。

「おや?スピーカーから流れだすゆかりんの声がいつもよりかわいいぞ」

いつもゆかりんは世界一かわいいのだが、その日はいつにも増して、艶かしく繊細で麗しげに聞こえたのだ。決して私がゆかり王国民だからということではない。いつものように、ただLinuxのsambaサーバに置いたALACファイルを再生していたに過ぎない。ただひとつ、TCP輻輳制御アルゴリズムを変更していたことを除いては。

Continue reading →

ルンバは電気眼鏡の夢を見るか

Microsoft Windows 95 で遊べた伝説のゲーム、「Hover!」を覚えていますでしょうか? ユーザーの生産性を根こそぎ奪っていった Microsoft の戦略的キラーアプリです。 Windows 95 か…… 何もかも皆懐かしい。ということで、リアル「Hover!」ごっこをするために作りました。

ルンバに3Dカメラを乗っけて、リモートの Oculus Rift に投影しつつ、ジョイスティックで操作すると、リアル「Hover!」ごっこが出来ます。次は大陸間弾道ミサイルを搭載したいのですが、まぁ、今年はこのくらいで許してあげることにします。

あ、そうだ。おまけで掃除も出来ます。そう、ルンバならね。