カメログ(2006-01-24) lsのソース読む

で、単純にソースの長さで比較すると、freebsd版のls.cが861行なのに対してGNU版は4245行。同じ機能のプログラムでソースが5倍かよ…。あとifdef多すぎ。まあGNU版は対応プラットフォームがいっぱいあるからしょうがないと言えばしょうがないけど、なんだかなー。

freebsd版は861行なのかよ! たしかにlsは超長かった覚えがある。逆に短くておれに勇気を与えてくれるようなソースは無いのかと思って調べてみました。

Debian etchでは基本的なコマンドはcoreutilsに入ってるそうです。

apt-get source coreutils
wc -l *.c | sort
      2 lbracket.c
      2 ls-dir.c
      2 ls-ls.c
      2 ls-vdir.c
      7 md5.c
      7 sha1sum.c
     71 false.c
     71 true.c
     75 sync.c
     82 pwd.c
     86 hostid.c
     96 yes.c
    103 link.c
    103 unlink.c
    106 logname.c
    107 dirname.c
    109 whoami.c
(略)
   1757 tail.c
   1941 stty.c
   2006 od.c
   2024 tr.c
   2227 ptx.c
   2573 sort.c
   2863 pr.c
   4038 ls.c

lsは最長かよ! 短い方は単にdefineしてるだけとか抜かすとyesとかその辺っぽい。 yesはひたすらy y y y y y y y …と出すだけの男らしいコマンド。(y/n聞いてくるコマンドに流し込む以外の用途は不明)

96行とは急激に親しみが沸いてきたのでソース見てみる。

(略)
  if (argc == 1)
    {
      argv[1] = "y";
      argc = 2;
    }
  for (;;)
    {
      int i;
      for (i = 1; i < argc; i++)
        if (fputs (argv[i], stdout)  EOF
            || putchar (i  argc – 1 ? ’\n’ : ’ ‘) == EOF)
          {
            error (0, errno, _(””standard output”“));
            exit (EXIT_FAILURE);
          }
    }

ああ、たしかにインデントキモイけどかわいいよ!yesかわいい!

mixiコミュニティ [Let’s PHP]

4: xxxxxxx

投書ありがとうございます。

まだちょっとゆっくり話します。小さいxxx研究団体の日本代表部に仕事しますから日本語をあまり喋られないけど、機会を与える会社があれば進行が早いですよ。

場数を踏んでいて敏腕を振るいたいですね。相応な会社を知れば紹介して下さい!

斬新なやる気表現に心打たれた! たぶん文法は間違ってないと思うよ!

cat-agency.jpg

ヤベーぞ! 今週出てきた弁護士の人、絶対後でヤクザに殺される顔してるぞ!

ref: 週刊モーニング

武蔵流プログラマへの道 – httpsで提供されているフィードをとりこむ

そこでhttpsのRSSを読み込んでhttpにして返すスクリプトを書こうと思ったのですが、もっと手軽にやる方法を思いついてふとチャレンジしてみたらあっさりできました。

gjすぎ!

カメログ(2005-12-31) ガンマギークとは?

アルファギークに分かりやすく説明してもらって、「うわー、なるほど、こんなすごい技術だったのか!」と気づく。

これすごい実感あります。アルファギークな人が「最近xxxをやってる」みたいなのを見ても、「ふーん、なんでそんなのやってんだろ」とか思ってて、しばらくしてわかりやすく紹介されてはじめて、「うぉおおおお」っていう・・・。

「8681が何かって?」

「おれんちのscreenのプロセスIDに決まってんだろ!」

(毎朝↓)

screen -r 8681

メールアドレスって大文字小文字区別するんだっけ? 気になって調べてみました。

rfc822(jp)

フィールド名は一つ以上の印字可能な文字(コロン・スペースそして 制御文字を除く)から構成されています。フィールド名は一行に収まらなく てはなりません。フィールド名を比較する際大文字小文字は区別されません。

(中略)

その他の構文単位を一致には、ケース情報は無視されなければなりませ ん。例えば、フィールド名で”“From”“・”“FROM”“・”“from”“そして”“FroM”“でさ え構文的には同等で、全て同等に処理されるべきです。 これらの単位を生成する場合アルファベット文字の大文字と小文字の混 在も使われるかもしれません。この仕様書で示している例はメッセージ 制作過程のために示唆されています。 注意: 予約されたローカル部分(local-part)アドレス、”“Postmaster”“、 は例外です。 ””Postmaster”“の値が解釈される際、”“POSTMASTER”” や”“postmaster”“を含む如何なるケース混在(大文字小文字混在) でも受け入れられなければなりません。

結論から言うと、

ドメイン部分は大文字小文字の区別無し、ローカル部分はpostmaster以外は送信先の実装依存 (postmasterは大文字小文字区別しない)

だそうです。ほー。

スカイフィッシュはこんな姿だ

下は攻撃体制に入り、ホバリングしているときに取る体制

スカイフィッシュと坂本氏が恐ろしすぎる!

メシを残すことで有名な西田 | 本日のカレー

オフィスにて「腹ぁー減りましたねぇ。メシ行きませんか?」と声をかけてきた西田は私が見た白昼夢であったのだろうか。

毎日毎日の西田の残しっぷり。

Apacheメモ。

ヘッダや404ページでソフトのバージョンとかを出さない

ServerTokens Prod   # Headerから情報を消す
ServerSignature Off # Errorページ等から情報を消す

※Apache2xではServerTokensだけで両方消える。

fakemac:~% HEAD http://localhost/foo
404 Not Found
Connection: close
Date: Mon, 23 Jan 2006 09:45:43 GMT
<strong>Server: Apache/2.0.55 (Debian) PHP/4.4.0-4</strong>
Content-Type: text/html; charset=iso-8859-1
Client-Date: Mon, 23 Jan 2006 09:45:43 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1
fakemac:~% GET http://localhost/foo
&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt;
&lt;html&gt;&lt;head&gt;
&lt;title&gt;404 Not Found&lt;/title&gt;
&lt;/head&gt;&lt;body&gt;
&lt;h1&gt;Not Found&lt;/h1&gt;
&lt;p&gt;The requested URL /foo was not found on this server.&lt;/p&gt;
&lt;hr&gt;
<strong>&lt;address&gt;Apache/2.0.55 (Debian) PHP/4.4.0-4 Server at localhost Port 80&lt;/address&gt;</strong>
&lt;/body&gt;&lt;/html&gt;

これが、

fakemac:~% HEAD http://localhost/foo
404 Not Found
Connection: close
Date: Mon, 23 Jan 2006 09:46:01 GMT
<strong>Server: Apache</strong>
Content-Type: text/html; charset=iso-8859-1
Client-Date: Mon, 23 Jan 2006 09:46:01 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1
fakemac:~% GET http://localhost/foo
&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt;
&lt;html&gt;&lt;head&gt;
&lt;title&gt;404 Not Found&lt;/title&gt;
&lt;/head&gt;&lt;body&gt;
&lt;h1&gt;Not Found&lt;/h1&gt;
&lt;p&gt;The requested URL /foo was not found on this server.&lt;/p&gt;
&lt;hr&gt;
<strong>&lt;address&gt;Apache Server at localhost Port 80&lt;/address&gt;</strong>
&lt;/body&gt;&lt;/html&gt;

こうなる。(さっそくGETを使い始めた野郎)