前の月 / 次の月 / トップページ
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2006-03-28 Tue

ブックオフに本を売った

午前11時にブックオフが来た。
確認の電話をしてくれたそうだけど、
携帯の電源が入っていなくて申し訳ないことをした。

141点の買取で、金額は5210円。すげええええ。

事前に立てていた1900円という予想を大幅に超えた。

前回は本気でゴミを売ったけれど、今回は本棚で死んでる本、
押入れで死んでる本など、綺麗系だけどいらない本が
中心だったから、高く売れたんじゃないか、と予想。

関連エントリ

[2006-06-08-2] 捨てられない本への愛着を薄れさせる技術
[-] 1
投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2006-03-23 Thu

上海台所 味庵「なすと豚肉のからし炒め」

昼だし、何か食べようとウロウロしたら、一番最初に目に付いたので入っ
てみた。味庵ってアジアンですか。店主のセンスを感じますね。

店頭と店内はこんな感じ。


味庵味庵店内
味庵店内<br>
味庵店内

日替わり定食700円。ライス、スープ、コーヒーお代わり自由。

なすと豚肉のからし炒めなすと豚肉のからし炒め

味はおいしかったです。ご飯が進む味でした。店内は、ほぼ満員。客層が
男女半々。店員の対応が、店員ごとにまちまち。言語の壁かな。お昼ご飯
を食べて、コーヒー飲むのに丁度いいお店でした。

○上海台所 味庵

最寄駅大岡山
電話03-5754-6074
住所東京都大田区北千束3-29-15
定休無休
営業時間 11:00 - 14:30 / 17:00 - 22:30

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2006-03-22 Wed

cl.itemlistをsaryで検索

たつをさんと、とくひろさんのエントリを読んでいて
私もAjaxな検索をくっつけてみようかなと思って書くことにしました。
私の開発環境は、あいかわらずDebian Sarge Linuxです。

Saryに興味があったのでSaryを使用。
初めに、Saryをソースからインストールしなくても何とかなるかもと思い
apt-get installしました。

# apt-get install sary

スルスルとSaryがインストールされました。
最新版のSaryではないようです。ちょっと心配。でも気にしない。

次にcl.confのhtmlテンプレートに以下のJavascriptとformを挿入。
たつをさんのコードを、ほぼそのまま流用しました。
3文字より少ないクエリの場合はクライアントサイドで
空表示をするように変更しました。それだけ。

<script type="text/javascript">
    var xmlhttp=false;
    /*\@cc_on \@*/
    /*\@if (\@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
    try {
	 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
	 try {
	     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	 } catch (E) {
	     xmlhttp = false;
	 }
    }
    \@else
	 xmlhttp=false
    \@end \@*/
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	 try {
	     xmlhttp = new XMLHttpRequest();
	 }
	 catch (e) {
	     xmlhttp=false
	 }
    }
</script>

<script type="text/javascript">
    function countatest_popup(id, key) {
	 if (!document.getElementById) return;
	 var element = document.getElementById(id);
	 if (key.length < 3) {element.innerHTML = ""; return;}
	 key = encodeURI(key); // UTF-8?
	 if (!xmlhttp) return;
	 xmlhttp.open("GET", "sarysearch.cgi?"+key, true);
	 xmlhttp.onreadystatechange=function() {
	     if (xmlhttp.readyState==4 && xmlhttp.status == 200) {
		 element.innerHTML = xmlhttp.responseText;
	     }
	 }
	 xmlhttp.send(null)
    }
</script>

<form name="ol_form" method="GET"action="clsearch.cgi" style="margin:0;padding:0">
<input name="key" size="20" onkeyup="countatest_popup('countatest', this.value);" onfocus="countatest_popup('countatest',this.value);" type="text">
<input value="search" type="submit">
<span id="countatest"></span>
</form>


さらにsarysearch.cgiという名前のPerlプログラムを書いて設置。
このcgiが忙しく働くわけです。

#!/usr/bin/perl

#cl.itemlistをsaryでajax検索。perlで。
#3文字以下のクエリには件数だけを返す仕様
#結果表示がモタモタするのが嫌いならsleepを消す。
use strict;
use warnings;

my $sary_path = "/usr/bin/sary";
my $file_name = "./cl.itemlist";
#ミスタイプの修正を考慮(変わりにイライラするかも)
sleep(1);
print "Content-Type: text/html;\n\n";
#見た目はここで指定。別にいいじゃん。
print '<div class="ajax_sary">';
my $key = ( $ENV{'QUERY_STRING'} );
$key =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1 )/eg;
#saryでヒット数カウント(要mksary cl.itemlist)
my $count = `$sary_path -i -c  "$key" $file_name`;
print '*クエリの英字は大文字小文字を別として扱います。<br />';
print '○<b style="background-color:#ffff66">' . $key . '</b>';
#utf8文字列をデコード
unless ( utf8::is_utf8($key) ) {
    utf8::decode($key);
}
#4文字以上のクエリにのみプレビューを返す。
if ( ( $count > 0 ) && ( length($key) > 3 ) ) {
    print 'のヒット数 : ' . $count . '箇所<br />';
    print '○最近の記事<br />';
    #saryで検索(要mksary cl.itemlist)
    my @sary_result = `$sary_path  "$key" $file_name`;
    #検索ノイズを大雑把に消す準備
    my $tag_regex_ = q{[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))}; #'}}}}
    my $comment_tag_regex = '<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)';
    my $regex  = qq{$comment_tag_regex|<$tag_regex_};
    my $space  = '\x20';
    my $zspace = '(?:\xA1\xA1)';
    my $noise  = '(?:' . $space . '|' . $zspace . ')';
    my $limit;
    foreach (@sary_result) {
	 my ( $link, $title, $body ) = split( '\t', $_ );
	 #リンク抽出
	 $link =~ s|.+href="(.+?)".+|$1|;
	 #カテゴリ表示除去
	 $title =~ s|\[.+?\]$||g;
	 #リンク再構築
	 $link = "<a href=\"$link\">$title</a>";
	 print $link. '<br />';
	 #検索ノイズを大雑把に消す
	 $body =~ s|$regex||gi;
	 $body =~ s|$noise||gi;
	 unless ( utf8::is_utf8($body) ) {
	     utf8::decode($body);
	 }
	 my $snip;
	 #本文中に$keyがあった場合
	 while ( $body =~ m|(.{0,20})$key(.{0,20})|g ) {
	     $snip = $snip . '...' . $1 . '<b style="background-color:#ffff66">' . $key . '</b>' . $2;
	 }
	 #本文中に$keyがなかった場合(タイトルにあるとき)
	 unless ($snip) {
	     if ( $body =~ m|^(.{1,40})| ) { $snip = $1; }
	 }
	 if ( utf8::is_utf8($snip) ) {
	     utf8::encode($snip);
	 }
	 print $snip. '...' . '<br /><br />';
	 $limit++;
	 #検索結果のプレビューは3件まで。
	 if ( $limit >= 3 ) {
	     last;
	 }
    }
    print '○これ以上は検索結果からお探し下さい';
}
elsif ( $count > 0 ) {
    #3文字以下のクエリには件数だけ返す
    print 'のヒット数 : ' . $count . '箇所<br />';
}
else {
    print 'はヒットしませんでした。<br />';
}
print '</div>';


検索窓に0〜2文字までのクエリが入力された場合には、
クライアント側で空表示の処理が行なわれて、
3文字クエリには、Saryによってヒットした箇所の数だけを返します。
4文字以上のクエリには、ヒット箇所の数と、プレビューを数件返します。

ショボいとこ多数。
Saryが大文字小文字を区別するようになってて不便。うーん。
Saryを2回実行しているのが無駄。うーん。
タグの除去はcl.itemlistの生成段階で除去すべきか。うーん。
それにしても、このコード汚くないか? うーん。

まぁ、今後、自分が一番頻繁に使いそうです。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

東工大大岡山キャンパスの桜並木工事は急ピッチで進行中

学生から「本当に終わるの?」と疑問の声が上がっている、
東工大大岡山キャンパスの桜並木工事ですが、終わりますね。これは。

桜並木正面	桜はこんな感じで厳重に保護
桜並木真後ろバリアフリーですね

桜並木の長さが若干短くなった気がしますけれど、立派な桜が残った、
というのは嬉しいことです。完成まで頑張れ頑張れ。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

王将「餃子定食」

細かいことを考えるのが嫌で、餃子の王将に直行。
餃子定食を食べました。

餃子の王将の餃子定食

うまー。

○餃子の王将 大岡山店

最寄駅大岡山
電話03-5701-0255
住所東京都大田区北千束1-42-2
定休無休
営業時間11:30 - 22:00

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2006-03-17 Fri

環境を構築

世の中の状況を見渡したら、自分が使っている環境にストレスを感じたので
今使っているのものは、そのまま使うことにして
vmwareへのインストールを裏で行なうことにした。
debian sargeでいいや。
基本的なところはインストール終了。
いまはperl環境構築中。インストール時間長い。うーん。
これが終わったら、.emacsを移植してみて、足りないモジュールをちょろ
ちょろ足す。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2006-03-01 Wed

レシピ検索サイトにもっとがんばってほしい

夕食のためのレシピを探して思ったんだけど、レシピ検索こそ表記ゆれへ
の対策を頑張って欲しいな、と思った。
でも人手だと限界があるのかもしれない。
ひょっとして、
・あるメニューにタグ付けして、そのデータを教師データにする。
・タグ付けしてないデータを教師データを使って判定。似た言葉を回収。
・回収した言葉も次のタグ付けしてないデータの判定に利用
みたいにして、似た言葉を捜してあげると、良い感じなのだろうか。
言葉の長さとか、単位とかでなんとかならないかな。ならないか。
でも、よく整頓されていて、単位にうるさい大規模レシピサイトが2つあ
れば、なんか楽しそうな雰囲気。
ただ、まぁ、現状でも十分に便利なんだよね。ありがたや。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

ルーター

調べ物があるときに限ってルーターが不調になる。
今日は、何度もルーターがハングしてるのか知らないけどwan側に一切繋
がらなくなる。
ルーターを取り替えて何とかなるなら取り替えるが、取り替えても再現し
たら泣くに泣けない。
いろいろやってみてるけど、やっぱ、ルーターっぽいんだよな・・。
はぁ、無駄だ。この時間。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |