よこいまさる日記

<< 2002/05/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
トップ «前の日(05-29) 最新 次の日(05-31)» 追記

Sun May 30 2004

今日一日

 なんだか睡眠しまくり。 朝7時に起きて10時にまた寝てしまった。 14時にまた起きて16時にはまた寝てしまった。 んで22時にまた起きて...。

The world's longest alphabetical E-mail address

 The world's longest alphabetical E-mail addressで abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com なんだそうで。


Mon May 30 2005

thumbnail 対応

posttdiary で thumbnail 作るテスト

Photo 6

たいしたことないのですが、写真つきメールを送ったときに日記の記事のところには 画像ファイルが大きくても 320x240 に収まるように thumbnail が表示されるように変更。 メールのデコードのときに JPEG で、320x240 を超えている場合、幅 320 高さ 240に収まるように ImageMagick で resize して、日記の記事のところにはリサイズされた画像ファイルが <img src="..."> で指定されるようになりました。

いままでは、HTML作るところで image のタグがあったら、そのファイルを open してサイズ取得して、320x240 の範囲を超えていたら img の attribute の width, height で収まるような値をしていていました。 携帯電話から VGA (640x480) 程度の画像ファイルをアップロードしているうちはよかったのですが、最近デジカメで SVGA サイズのものをアップロードして いちいち thumbnail 用にリサイズしていて面倒になってきたので、そろそろ server side でリサイズできるものが欲しいなぁと思い出したので、まずはメールで post する部分から作ってみた。

しゃもじが見つからない。

ご飯炊いてよそようとしたときしゃもじが行方不明。先週ご飯炊いたときには普通に洗って普通にしまったはずなのになぁ。仮に泥棒が入ったとしても、どうでもいいしゃもじなんかじゃなくって、もうちょっと金目のキャッシュカードとか液晶モニターとかノートパソコンとかパクるだろうし。

んで、ゴゾゴソと探していたら、テーブルナイフで手を切った。痛っ。ってかテーブルナイフで手を切れるんだな。絆創膏を探したのだが、こういうときに限って見つからないんですよね。

しゃもじは100円ショップとかで探してきます。100円もだせばイボイボのついた高級しゃもじが買えるでしょうきっと。

新しい携帯

かなり使いにくくて買って公開していた Sony Ericsson の V802SE がかなり嫌になっていて、先日の夕方のボーダフォンライブ3タコ円状 (3日連続で事故ったアレ) でつきあってられなくなったので、携帯電話の交換。だってMTBFとかMTTRとか考えると、その辺のパソコンのシステムよりひどいかもって思うわけですよ。

こんどはまた au に戻って W31S。 FMラジオとかついていますよ。 マジックゲートつき Memory Stick Duo だと音楽入れられるっていうことになっているのですが、これが最大でもたったの128MBまでしか発売していないといったマヌケ具合なので、実質的にはCDアルバム2枚分しか持ち運びできません。 「2GBのマジックゲートつきはないのか?」とかヨドバシの店員責めても、そんなものはないとかつき返されましたよ。 いつものことながらソフマップのほうが販売価格安かったのですが、電話番号の下4桁を選べられないってことだったので、ヨドバシでソフマップと同じ価格で売ってもらうおかげで半額以下。 ちなみに下4桁は2048、コンピュータ分かっている人にとってみれば、かなりきりのよい数字。 2048は2の11乗で16進数で0x0800、分かる人にしかわからないこのキリのよさ。 自分の電話番号を教えて反応があったら、多分その人とは仲良くできそう。 ちなみに希望した数字は... 1024, 2048, 4096。 1001 とか 77 もいいなぁと思ったのですが、ちょっとだけ遠慮しました。(笑)

12:43

三色丼

Photo 8

本日のツッコミ(全2件) [ツッコミを入れる]

knaka [0644(普通の人っぽい)とか2775(仲間を大切にしそう)とかもいいな。0700(友達いなさそう)どうよ?]

まさる [ 0700 は引きこもっているとき、go+rwx は他人の影響受け杉、u+s は他人の言いなり、g+s は「おまえど..]


Wed May 30 2007

PDF を JPEG に変換するには。

個人的メモ。 こんなコマンドを実行すればOK。

for infile in *.pdf ; do 
  outfile=$(echo $infile|sed -e s/.pdf/.jpg/)
  gs -dBATCH -dNOPAUSE -sDEVICE=jpeg -sOutputFile=out/$outfile $infile
done

(2007/6/5 追記) 「PDFをJPGに変換」とかいう検索ワードで検索して、この日記にたどり着く人が多いので、もうちょっと書きます。

このコマンドでは、カレントディレクトリにある pdf のファイルを ディレクトリ ./out/ に jpg に変換して保存する、という具合の動作をします。

上のコマンドでは GhostScript をつかっています。 Windowsでしたら Cygwin をインストール するときに、インストールするパッケージを選択するときに ghostscript を選択することで、利用できます。 Linux ならばそのままコマンド実行していただいて大丈夫かと思います。 上のコマンドですが、Unixなどのbashでのコマンドになります。 また、PDFファイルにフォントが埋め込まれていない場合、Ghostscript のフォントの設定が必要になるかとおもいます。(特に日本語フォント)

Linuxや Cygwin などのUnix環境を使われていない方の、PDFをJPGに変換する方法は… 知りませんw

AllAbout の記事を見ていたら、Overtureのクリック測定サーバのホスト名にYPNなる文字列が。

プクプクとインターネットしていたら、たとえばAllAboutのあるページ に Overture が配信していると思われる広告がある。 こんなJavaScriptが埋め込まれていて。

<!--//
(function(){
var pid = 'about_jp_cat_ctxt_bottom';if(pid.match(/_test/)){alert('testOvtID :'+pid);}
var maxCount = 3;
if(maxCount==0){zSr=new Array();}else{
document.write('<scr'+'ipt type="text/javascript" src="http://cm.jp.about.overture.com/js_flat_1_0/?config=2841970080&source='+pid+'&mkt=jp&ctxtId=cancer&maxCount=3&mkt=jp&keywordCharEnc=shiftjis&outputCharEnc=shiftjis&ctxtUrl='+aa.u.encodeURL(location.href)+'"><\/scr'+'ipt>');}
})();
//-->

ここにある http://cm.jp.about.overture.com/というURLを開いてみたところ、 favicon.ico が Yahoo! のもの となっていた。 このホストに当てられているIPアドレスを whois してみたところ Inktomi だし。

この部分で差し込まれている広告のリンク先URLを見ると、下記のようなホスト名になっている。

http://ypn-c101.overture.com/d/sr/?xargs=......

YPN って Yahoo! Publisher Network のことか? YPNは日本では overture が Yahoo!JAPAN と関係なく、US の overture や Yahoo! Inc. (US) とやっているのかなぁ。 いろいろと妄想。

[追記]ヤフーの天気を見ていたら、ヤフーの天気でもコンテントマッチ開始しているみたいですね。 こんなURLで広告掲載しているみたいで。

http://yjaxc.yahoo.co.jp/oi?t=j&s=weather_oj_cm_lmdl&i=2077740051&u=http%3a//weather.yahoo.co.jp/weather/jp/13/4410/13113.html

ページURLをここにも入れるのかよ、とかO塚くんに突っ込みたいところだけど、抑えておくw

業者ホイホイ掲示板を開設しましたを見てふと思った

はてなブックマーク経由。 悪徳商法マニアックスさんのところで、WebサイトなどでコメントSPAMをするロボットのIPアドレスを集めるために、いわゆるハニーポットを設置したんだそうで。 このホイホイに引っかかったIPアドレスのリストをみてみたところ、およそ1800ぐらいのホストが引っかかっていますね。 このリストのメンテナンスがどのようにされているのか分からないので、すぐさま使うってことはしないですけど。

ちなみにこのリストの書式が「deny from xxx.xxx.xxx.xx」と、Apacheの mod_access や mod_authz_host の deny from を使って設定することを想定しているのかとおもうのですが、mod_access や mod_authz_host って blacklist が1800もある状況でうまく動くんだっけ?っていうのが疑問に思えたので、さらっとコードを見直してみた。

apache httpd-2.2.4 では allow/deny の実装が modules/aaa/mod_authz_host.c にある。 directory directive ごとの allow/deny を保持する変数は、下記のような構造体になっている。

     65 typedef struct {
     66     int order[METHODS];
     67     apr_array_header_t *allows;
     68     apr_array_header_t *denys;
     69 } authz_host_dir_conf;

この段階で、denys は array なのね(´・ω・`)ってところでいやな予感がする。

つぎに deny from .. の部分で実際に動く部分を追いかけたら、たぶんこの辺だろう

    109 static const char *allow_cmd(cmd_parms *cmd, void *dv, const char *from,
    110                              const char *where_c)
    111 {
    112     authz_host_dir_conf *d = (authz_host_dir_conf *) dv;
    113     allowdeny *a;
    114     char *where = apr_pstrdup(cmd->pool, where_c);
    115     char *s;
    116     char msgbuf[120];
    117     apr_status_t rv;
    118
    119     if (strcasecmp(from, "from"))
    120         return "allow and deny must be followed by 'from'";
    121
    122     a = (allowdeny *) apr_array_push(cmd->info ? d->allows : d->denys);
    123     a->x.from = where;
    124     a->limited = cmd->limited;

やっぱり arrayか。

実際に各ディレクトリで allow,deny をチェックしているのはこの部分だろう。

    263 static int check_dir_access(request_rec *r)
    264 {
    265     int method = r->method_number;
    266     int ret = OK;
    267     authz_host_dir_conf *a = (authz_host_dir_conf *)
    268         ap_get_module_config(r->per_dir_config, &authz_host_module);
    269
    270     if (a->order[method] == ALLOW_THEN_DENY) {
    271         ret = HTTP_FORBIDDEN;
    272         if (find_allowdeny(r, a->allows, method)) {
    273             ret = OK;
    274         }
    275         if (find_allowdeny(r, a->denys, method)) {
    276             ret = HTTP_FORBIDDEN;
    277         }
    278     }
  ..... あとは省略 .....

よぉし、find_allowdeny 関数でも見てみるかとおもってみてみたところ、

    202 static int find_allowdeny(request_rec *r, apr_array_header_t *a, int method)
    203 {
    204
    205     allowdeny *ap = (allowdeny *) a->elts;
    206     apr_int64_t mmask = (AP_METHOD_BIT << method);
    207     int i;
    208     int gothost = 0;
    209     const char *remotehost = NULL;
    210
    211     for (i = 0; i < a->nelts; ++i) {
    212         if (!(mmask & ap[i].limited)) {
    213             continue;
    214         }
    215
    216         switch (ap[i].type) {
    217         case T_ENV:
    218             if (apr_table_get(r->subprocess_env, ap[i].x.from)) {
    219                 return 1;
    220             }
    221             break;

conf->denys はイテレーター処理されているのね。

このままだと、各リクエストごとに 1800 のイテレーターあたっていってしまうので、何らかの形で IP アドレスの binary search なりさせないと、やってられないすね。

Kensington Expert Mouse

Kensington Expert Mouse マイクロソフトのトラックボールが生産終了とかいう話を思い出したり、キーボードもほしいかなと思ったりしたので、ヨドバシへ。 キーボードのRealforceを見ていたのですが、いまいち萌えなかったので Kensington Expert Mouse を購入。 トラックボールの玉が大きくって、玉のまわりのリングがスクロールホイールになっていたり。

買った直後にトラックボールの転がりがいまいちだったのだが、手垢が付いたせいか転がりが良くなってきた。(笑)

本日のツッコミ(全2件) [ツッコミを入れる]

tsuyoshi [俺は、httpd.conf に書いたら apache 動かなくなった。 iptables で設定するのが吉だ。..]

まさる [この access control list なのですが、Apacheで1エントリあたり32byte 消費するとした..]


Fri May 30 2008

2008-05-30 の Geohist

Geohist でもっと見る


検索:
あわせて読みたい
2000|10|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|