トップ(最新) | <前

nDiki : HTTP

HTTP - Hypertext Transfer Protocol

メモ

キャッシュ関連のヘッダ

リクエストレスポンス
If-Modified-Sinceo
If-None-Matcho
Expireso
Last-Modifiedo
Etago
Cache-ControlooHTTP/1.1 より。Expires や Pragma より優先される。
Pragmaoo

キャッシュさせたくないならば

 Pragma: no-cache
 Cache-Control: no-cache

web

RFC

キャッシュに関するページ

User-Agent リクエストヘッダフィールド

スポンサード リンク

Related term

2005年5月10日 (火)

iモードHTMLシミュレータ Version 7.2 このエントリーを含むはてなブックマーク

iモード向けの簡単なCGI プログラム開発を社内で頼まれているので、動作・レイアウト確認用にシミュレータを探してみる。

あら、NTTドコモで配ってらっしゃる。 ということでダウンロード。昔633S用につくったiモード向けページなどを閲覧してみる。

機種別のプロファイルのようなものはなくて、自分で画面サイズやiモード対応HTMLバージョンの選択をしてあげる必要があるけれど、HTTPヘッダのチェックやHTMLのソース表示、文法チェック機能などがあり今回はこれで充分いけそうだ。

スポンサード リンク


[ 5月10日全て ]

2005年9月11日 (日)

Firefox ユーザプロファイル作り直し このエントリーを含むはてなブックマーク

ブックマークSage まわりその他がおかしくなったので、ユーザプロファイルを半年ぶりに作り直し。 拡張機能の整理(New は 前回から新たに使うようになったもの)。

@ テーマ

@ Debian パッケージで入れてしまう拡張

  • DOM Inspector (mozilla-firefox-dom-inspector)
  • Diggler (mozilla-diggler)
  • Live HTTP Headers (mozilla-livehttpheaders)
  • Firefox Development JLP

@ 必須拡張

  • タブブラウザ拡張
    • Tab Mix + Tab Mix Plus にしようと思ったけれど、ツールバーを左に持ってこれなさそうなので、やっぱりコレに。
  • Add Bookmark Here
    • Galeon ユーザだった自分には必須。
  • SwitchProxy Tool
  • Web Developer
    • CSS書き時必須。フォームの POST -> GET 変換も便利。
  • Google Pagerank Status
  • (New) Google Toolbar for Firefox
    • 本家のやつ。
  • (New) Adsense Notifier
  • (New) Sage

[ 9月11日全て ]

2005年10月15日 (土)

POEHTTP プロキシサーバ このエントリーを含むはてなブックマーク

Privoxy などのプロキシサーバを使うと閲覧するWebページの書き換えをすることができるのだが、凝ったことをするとなると無理がある。

以前から興味のあった POEHTTP プロキシサーバを作ってみることにしよう。 といってもまずは、サンプルを動かしてみるところから。

POE Cookbook の web proxy サンプルを動かしてみる。 なるほど短く書けていいな。

これに Web ページを書き換えるコードを挿入してあげれば、簡単に希望するプロキシサーバの出来上がり。 Greasemonkey も悪くないけれど、ローカルのデータとかを利用してページを書き換えたい時はこっちの方が楽であろう。 それに Perl だし。


[ 10月15日全て ]

2005年10月29日 (土)

他の Web サイトの情報を URI::Fetchキャッシュ付き取得 このエントリーを含むはてなブックマーク

WiKickerDiKicker でうまく他のサイトの情報を取り込んで利用できるようにしたい。 相手サイト・自サイトともに負荷をかけないように処理するには、うまくキャッシングする必要がある。

キャッシュ機能のあるPerlHTTPユーザエージェントには

などがある。

@ WWW::Mechanize::Cached 1.32

WWW::Mechanize::Cached は1度取得したレスポンスを無条件に1日間キャッシュする。 WWW::Mechanize のサブクラスで、便利な機能が利用できるが、キャッシュは適当。

キャッシュCache::FileCache決め打ち。

@ LWP::UserAgent::WithCache 0.03

LWP::UserAgentのサブクラス。 Expires、Last-Modified、Etag ヘッダを考慮して処理する。

キャッシュCache::FileCache決め打ち。

@ URI::Fetch 0.04

fetch サブルーチンのみを提供するシンプルなモジュール。

キャッシュは Cache 系APIのモジュールを指定する。実際には Cache::Cache 系でもOK。 Last-Modified、Etag を考慮して処理する。

前回のアクセスから一定時間はキャッシュを返すようにする機能があり、RSS や Atom フィードを取得して利用するのに便利。

@ 今回は

URI::Fetch をチョイス。 our を使っているのでそのままでは Perl 5.005_03 では動かないが、use vars に書き換えれば問題なく動く。


[ 10月29日全て ]

2006年2月18日 (土)

Perl CGI プログラムのテストには WWW::Mechanize::CGI このエントリーを含むはてなブックマーク

CGI プログラムを書いていて、いつも困るのがリグレッションテスト

パッケージのビルド時に実行するテストスーツ (make check / make test 用テストプログラム群) に含めておきたいが、さすがにその場で Web サーバの下へセットアップするわけにもいかない。 ミニ Web サーバを同梱してテストスーツ内で起動する方法はちょっとおおがかかりだし、ポート番号の選択やらサーバの停止の問題もあって、かなり面倒。

結局、テストスーツの中で環境変数や標準入力など CGI リクエスト環境をセットアップして、CGI プログラムを実行するという王道(?)かつ泥臭いテストを書くことになったりする。

何かいいものはないかと探していたところ、WWW::Mechanize::CGI というものをみつけた。

LWP::UserAgent を継承した WWW::Mechanize モジュールは Web ブラウジングを容易にする有名どころのモジュールである。

WWW::Mechanize::CGI モジュールはさらにこれを拡張したモジュールで、HTTP リクエストを、仮想的に CGI プログラムやサブルーチンへの呼出しにしてくれる。 これを用いるとあたかも Web サーバ上の CGI プログラムにリクエストしレスポンスを受けとっているかのように、テストプログラムを書くことができる。

素晴しい。

さっそく WiKicker のテストを書き換えてみた:

 use Test::More tests => 2;
 use WiKicker::WikICGI::Controller;
 use WWW::Mechanize::CGI;
 use File::Temp qw(tempdir);
 use File::Spec;
 my $www_dir = tempdir(CLEANUP => 1);
 my $mech = WWW::Mechanize::CGI->new;
 $mech->cgi(sub {
              $ENV{PATH_INFO} = '' if $ENV{PATH_INFO} eq '/';
              WiKicker::WikiCGI::Controller->new->run});
 $mech->env($mech->env,
            SCRIPT_FILENAME => File::Spec
                                 ->catfile($www_dir . '/wiki'),
            SCRIPT_NAME => '/wiki');
 my $response = $mech->get('http://localhost/wiki');
 ok($response->is_success);
 like($response->content,
      qr|<title>WikiForum\[WiKicker\]: FrontPage</title>|);

WWW::Mechanize::CGI オブジェクトを new した後、cgi メソッドで CGI サブルーチンを指定するか、cgi_application メソッドで外部 CGI プログラムを指定する。 ここでは直接、CGI サブルーチン (WiKicker::WikiCGI::Controller->new->run を実行)を指定した。

なおここで WWW::Mechanize::CGI が使っている HTTP::Request::AsCGI 0.5 における PATH_INFO の扱いが Apache などとは違って、空でも必ず '/' が入るようになっている。 これだと WiKicker では困るので、サブルーチンのところで修正している。

後は必要ならば WWW::Mechanize::CGI::env で、追加の環境変数設定を行っておく。

セットアップが済めば通常の WWW::Mechanize と同様に get 等でリクエストを行いレスポンスを受けとることができるようになる。

いい。しばらく試してみて不具合がなさそうなら、定番のテストスタイルにしたい。

ちなみに Test::Harness 用の Test::WWW::Mechanize にあわせて、Test::WWW::Mechanize::CGI というものもある。 これらを用いるとさらにテストを書くのが楽になるが、依存するモジュールも多いので無理に使わないほうがいいかもしれない。


[ 2月18日全て ]

2006年5月22日 (月)

WiKicker 0.30 リリース - トップページのページ名を変更できるようにするなどの機能追加 このエントリーを含むはてなブックマーク

2006年2月13日以来、3カ月ぶりのリリース。

  • コメント書き込みでも書き込み禁止パターンが適用されるように改良。
  • WikiPage 編集画面で Ctrl+S を押すとプレビューするように改良。
  • WiKicker の トップページのページ名を変更できるように改良 (toppage.pagename プロパティ)。
  • トピックパス表示で常にトップページを先頭に表示するオプション (topicpath.showtop プロパティ) を追加。
  • エラー時の HTTP レスポンスコードを 503 にした。
  • テストスクリプトの改善。

セッション管理/認証/承認機能のコードを書きはじめてパッケージには含まれているけれど、まだ完成していないので有効になるようにはなっていない (あ、ちょっと中途半端になっているかも)。


[ 5月22日全て ]

2006年6月10日 (土)

WiKicker における PageName 最長文字数 このエントリーを含むはてなブックマーク

WiKicker では PageName を エンコードした文字列を URI に埋め込んだり、サーバで保存する際のファイル名にしたりしている。 このため、PageName の最長文字数はそれらの最長文字数に依存しているはずである。

今まで確認を後回しにしていたのだが、新しい機能の追加の際に確認しておく必要があるので調査してみた。

@ WiKicker の実装

WiKicker の実装がらみとして最長を決める要素としては

がある。

@ 各仕様等による制約

  • HTTP では URI の長さには制限なし (RFC2616 3.2.1)
  • Web サーバは Request-URI が長いと 414 Request-URI Too Long を返す (RFC2616 10.4.15)。Apache は LimitRequestLine ディレクティブにより、URI を含むリクエスト行のサイズを制限することができる(配布時には 8190)。
  • Internet Explorer が扱える URL の長さは 2083文字。
  • ext2ファイル名は 255文字まで(増やすこともできる)。
  • 手元の Linux 2.6.15 で試したところ、パス名は 4095文字まで。

@ WiKicker で問題が出ない PageName 最長文字数

上記の中ではファイル名による制約が一番大きい。

WiKicker 内部でファイル名として base64 (の亜種) でエンコードしたものを使っているので、元の文字列はは最長 189バイトまでなければならない。base64 だと3バイトで4文字になるため、189バイトで 252文字となる。

WiKicker ではここでさらにファイル名に ',v'、'-lock' をつける事があるので、実際には元の文字列は最長 186 バイトまでとなる。

PageName が 186 バイトまでだとすると、URL エスケープしたとして558バイト。 WikiEngine のスクリプトの URL や他のパラメータとあわせても、これぐらいなら大丈夫のはずである。

ということで WiKicker では Linux 上だと通常 PageName は 186 バイトが最長と言ってよさそうだ。 日本語の文字はだいたい UTF-8 で3バイトになるので、62 文字までということになる。

そのうち、WiKicker に制約チェックを入れることにしよう。 そのうち。


[ 6月10日全て ]

2006年6月20日 (火)

WiKicker 0.35 リリース - 添付機能の修正など このエントリーを含むはてなブックマーク

添付機能を有効にすると、添付ファイルが無いページに対応するディレクトリが無条件に作られてしまう問題を修正。

それから日本語ファイル名のファイルを WikiPage に添付した際、Internet Explorer でそのファイルをダウンロードして保存しようとすると URI エスケープされた文字列がデフォルトの保存ファイル名になってしまいよろしくない。 このため、Content-Disposition ヘッダをつけてレスポンスを返すためのダウンロード用のリンクも追加。

Cotent-Disposition ヘッダでファイル名を指定する際、

ファイル名シフト JIS でエンコードしてしまうようにした。

ファイル名シフト JIS で表現できない文字があるかもしれないし、Accept-Language に ja があったからといって Windowsロケール日本語になっているという保証もないので、かなりいい加減なコードである。

なにか良い方法があったら修正したい。


[ 6月20日全て ]

2006年11月27日 (月)

Iceweasel 2.0 (Firefox 2.0) にほぼ無事移行終了 このエントリーを含むはてなブックマーク

ホールドしていた Debian GNU/Linux sid ノート PCFirefox を 1.5 か 2.0 にそろそろ上げることにした。

@ Firefox 拡張機能

心配していた Firefox 拡張機能等の移行は以下の通り:

Firefox 拡張機能1.5 時代2.0 へ
Adsense Notifier0.9.2OK
SwitchProxy Tool1.4NG -> install.rdf を書き換えてインストール
Google Toolbar for Firefox2.1.20060807LOK
Tabbrowser Extensions2.1.2006031301NG
Wev Developer1.0.2OK
Greasemonkey0.6.6.20061017.0OK
TinyUrl Creeator1.0.1NG -> 無視
Fasterfox2.0.0OK
CustomizeGoogle0.55OK
Add Bookmark Here0.5.5OK
Mozex1.07.1NG -> 1.9.5
All-in-One Gestures0.18.0OK
VideoDownloader1.1.1OK
FoxyProxy2.2.1OK
SearchStatus1.18OK
Japanese Language Pack(deb)1.5.0.7deb はまだ
Beagle Indexer0.5NG -> 0.6
hatenabar0.4.0OK
Diggler(deb)0.9OK
Live HTTP Headers(deb)0.12OK

ほぼ問題なく動いた。

Tabbrowser Extensions については残念だがしょうがない。 かわりに

  • Tab Mix Plus 0.3.5
  • Undo Closed Tabs Button 2.0.0

インストール

TinyUrl Creeator は最近使っていないので問題なし。

SwitchProxy Tool は一応いれたけれど、考えてみれば最近は FoxyProxy の自動切り替えが申し分ないので別に無くてもよかったのであった。

それとステータスバーがごちゃごちゃしてきたので、整理できるように

  • Organize Status Bar 0.5

インストール

@ テーマ

Modern Pinball 1.5.2 が NG だったので、Modern Pinball v2.0.2 for Firefox v2.0 ( http://mozilla-themes.schellen.net/... ) を入れ直した。

@ 移行してみて

2.0 になったからといってあまり変わった感じはしないか。

Tabbrowser Extensions が使えなくなって、タブまわりの使い勝手が悪くなったのは痛い。個別に拡張機能を入れていくしかないか。

せめてタブを縦並びにできればいいのだが。


[ 11月27日全て ]

2007年12月29日 (土)

Twitter ベイジアンフィルタプロキシ このエントリーを含むはてなブックマーク

Twitter で following が増えてくるにつれて、タイムラインに目を通すのが大変になってきた(という程きちんと見ている訳ではないが)。 さっとタイムラインをなめて面白そうな情報をピックアップしたい時は、「おはよう」とか「風呂入った」とか「トイレ」とかは除外して読みたい(そういう書き込み自体は嫌いじゃないのだが、人生はあまりにも短い)。

Twit や P3:PeraPeraPrv では NG ワード指定ができて、それらを含むステータスは表示しないようにできるのだが、Twitter の書き込みは揺らぎが激しすぎて指定しきれないという弱点がる。

ということでベイジアンフィルタでフィルタリングしてみることにした。

自前で Twitter クライアントを作る気はないので、proxy の形でさっと実装してみた。

 #!/usr/bin/perl

 use strict;
 use warnings;

 use HTTP::Proxy;
 use HTTP::Proxy::BodyFilter::complete;

 my $proxy = HTTP::Proxy->new(port => 8088);
 $proxy->push_filter(response => HTTP::Proxy::BodyFilter::complete->new,
                     mime     => 'application/xml');
 $proxy->push_filter(response => Bsfilter->new,
                     mime     => 'application/xml');
 $proxy->start;

 {

   package Bsfilter;

   use File::Temp qw/tempfile/;
   use XML::XPath;
   use base qw(HTTP::Proxy::BodyFilter);

   sub filter {
     my ($self, $dataref, $message, $protocol, $buffer) = @_;
     return unless defined($$dataref) && $$dataref ne '';
     eval {
       my $xml = XML::XPath->new(xml => $$dataref);
       my @nodes = $xml->findnodes('/statuses/status/text/text()');
       return unless @nodes;
       for my $node (@nodes) {
         my $text = $node->getNodeValue;
         if (is_NG($text)) {
           $node->setNodeValue("[NG] $text");
         }
       }
       $$dataref = qq(<?xml version="1.0" encoding="UTF-8"?>\n);
       $$dataref .= $xml->get_context->toString;
       utf8::encode($$dataref);
     };
     if ($@) {
       warn $@;
     }
   }

   sub will_modify { 1 }

   sub is_NG {
     my ($text) = @_;

     my ($fh, $filename) = tempfile();
     utf8::encode($text);
     print $fh $text;
     close($fh);
     my $result
       = system(
       "bsfilter --homedir ~/.twitter-bsfilter --ignore-header --auto-update $filename"
       );
     unlink($filename);

     return !$result;
   }
 }

@ HTTP proxy の作成

PerlHTTP proxy を作ろうとして真っ先に思い浮かんだのは POE だけれど、ちょっとヘビーなので今回は HTTP::Proxy をチョイス。 もともとフィルタリング HTTP proxy を作ることを念頭に置いた Perl モジュールなので今回の目的にぴったり。

1つはまった点といえば、filter の呼び出しがレスポンス全てを取得してからではなく一部分ずつの呼び出しになるところ。その仕様に気がつくのにちょっと時間がかかってしまった。 例えば XML 形式のレスポンスをフィルタしようとしても、普通に HTTP::Proxy を使うと XML の一部ずつがフィルタに渡されるため、XML のパースがうまくいかない。

これについては HTTP::Proxy::BodyFilter::complete を使うことで、まとめてフィルタに渡せるようになった。

@ レスポンスの処理

Twitter のタイムライン取得については P3:PeraPeraPrvXML 形式で取得しているので、そのタイプのレスポンスをフィルタするようにした。

XML::XPath でステータス部分を抜き出して NG 判定し、NG であれば先頭に [NG] を追加する。 これで Twitter クライアント側で [NG] を NG ワード指定すれば、表示されないようにすることができる。

@ bsfilter による NG 判定

NG 判定は普段メールspam フィルタとして使っている bsfilter を使った。 単純に system 関数で呼び出して結果を取得するだけ。

今回は対象がメールではないので --ignore-header を指定。また自動的に学習するように --auto-update を指定。 それと普段メールのフィルタリングに使っているのとは bsfilterデータベースを別にしたいので、--homedir も指定しておく。

@ NG と非 NG の学習。

NG ワードを twitter-NG.txt に、非 NG ワードを twitter-clean.txt に書いて以下のコマンドを実行。

 bsfilter --add-clean --ignore-header --homedir ~/.twitter-bsfilter twitter-clean.txt
 bsfilter --add-spam --ignore-header --homedir ~/.twitter-bsfilter twitter-NG.txt
 bsfilter --update --homedir ~/.twitter-bsfilter

自分の環境 (Debian GNU/Linux sid)では、UTF-8 で書いておいて問題なかった。

@ フィルタリングしてみる

あとは先の proxy を起動し、P3:PeraPeraPrv でプロキシとして localhost:8088 を指定すれば OK。

タイムラインを取得するたびに bsfilter が動いて NG なステータスには [NG] が挿入される。

@ フィルタリングの精度

これについては、まだまだチューンの必要ありかな。

  • 事前の学習データが少ない。
  • --auto-update していることもあり、最初に NG 判定が多いとそちら側に強化されすぎる。
  • 毎回 bsfilter を呼んでいるため、同じステータスが何度も学習される。

まだ使える精度まで上がってないけれど、教師データを増やせばそれなりにいけるかもしれない。

proxy の枠組ができたので、(@~は抜いてから bsfilter に渡すとか、前後の文脈も含めるとか)いろいろ試して遊べそうではある。 別に bsfilter にこだわらず、正規表現による判定などをしてもよいし。

この辺り P3 は Java で書かれているので、プラグインを書いて拡張できるよう将来になると面白いなと思ってみたり。


[ 12月29日全て ]

Related web page

勝手にブログ評論(α版) http://www.naney.org/diki
GET リクエストのようであるとも言える。漆黒のコーディングは、闇夜に舞う。紳士淑女は刮目してノート PCを見よ。どれだけ多くの血を流そうとも、必ずやを手に入れるという作者の強い意志を感じる。結局、ノート PCしかない。むしろ「パック伝票待ち」大会などと称して、それをたたえるのはどうだろうか。ホームエレクターがそんなに好きなのか。まあ良い。パリの12区あ
http://onosendai.jp/hyoron/hyoron.php?URL=http%3A%2F%2Fwww.naney.org%2Fdiki
[戯] HTTP リクエストの処理完了までの所要時間をログに記録する
&nbsp;&nbsp;<strong>http</strong>://sonic64.com/2005-12-28.html &nbsp;&nbsp;Apache 2.x では,CustomLog に %D &nbsp;&nbsp;を指定してあげれば OK. &nbsp;&nbsp;Apache 1.3x では %T で秒単位で記録できるらしい (ほとんど意味なし).
http://cl.pocari.org/2006-01-06-4.html
antipop2.0: HTTP::Recorder による WWW::Mechanize ひな形コード生成
」の「UNIX 処方箋」にて「WWW::Mechanize モジュールによる Web アクセスの自動化」というコラムがあったので読んでみたら、WWW::Mechanize なコードを生成してくれる <strong>HTTP</strong>::Recorder なるモジュールが紹介されていて、これは便利げ! と思い、ちと使ってみた。 てか、Perl.com に &quot;Web Testing with <strong>HTTP</strong>::Recorder&quot; つって詳細な解説がありますね。 <strong>HTTP</strong>::Recorder は、<strong>HTTP</strong>::Proxy によるプロクシサーバの user a
http://antipop.gs/mt/2004/12/18/042322
日本語ファイル名
HTTP
http://oku.edu.mie-u.ac.jp/~okumura/php/filename.php
naoyaのはてなダイアリー - POX over HTTP
激しく同意。こういうのは POX over <strong>HTTP</strong> (POST) と呼べばよい del.icio.us/url/22e8592bebe5e074f587c6dbb5537f2a POX て何だという話をちょっと前に書きましたが。yohei さん曰く、いわゆる &quot;GET で XML 返し&quot; してるだけで REST みたいな、誤用されてる API のアーキテクチャ(?)は &quot;POX over <strong>HTTP</strong>&quot; と呼べばよいとのこと。 いつもその類を XML over <strong>HTTP</strong> って言ってたけど、XML-RPC も SOAP も AtomPP も、&quot;XML over <strong>HTTP</strong>&quot; って
http://d.hatena.ne.jp/naoya/20060303/1141381256
はてなブックマーク - http://b.hatena.ne.jp/*url=*. の人気エントリー
http://b.hatena.ne.jp/entrylist?sort=count&url=http%3A%2F%2Fb.hatena.ne.jp%2F*url%3D*.
W3C準拠なHTTPパンティ - Engadget Japanese
&nbsp;<strong>HTTP</strong>&#12398;&#12473;&#12486;&#12540;&#12479;&#12473;&#12467;&#12540;&#12489;&#12434;&#12354;&#12375;&#12425;&#12387;&#12383;&#22899;&#24615;&#29992;&#19979;&#30528; &quot;<strong>HTTP</strong>anty&quot;&#12290;&#12300;403&#65306;Forbidden&#12301;&#12420;&#12300;200&#65306;OK&#12301;&#12398;&#12424;&#12358;&#12395;&#12289;&#12522;&#12463;&#12456;&#12473;&#12488;&#12408;&#12398;&#36820;&#20107;&#12392;&#29702;&#30001;&#12434;&#12462;&#12540;&#12463;&#12395;&#12418;&#20998;&#12363;&#12426;&#12420;&#12377;&#12367;&amp;#20253
http://japanese.engadget.com/2006/01/28/w3c-http/
lighttpd FastCGI は mod_perl Apache1.3 より1割ほど高速 :: Drk7jp
巷で超高速 Web サーバとして話題になっている lig<strong>http</strong>d を試してみました。lig<strong>http</strong>d に関する日本語ドキュメントは非常に少なく、ちょっと込み入った設定ファイルの記述方法とかの解析に手間取りました。 lig<strong>http</strong>d のコンセプトは、「セキュアで省メモリで高速に動作し、柔軟性もある」なのですが、「lig<strong>http</strong>d 公式サイトのベンチマーク結果」や「UnknownPlace. - Catalyst ベンチ」で簡単な
http://www.drk7.jp/MT/archives/000917.html
@IT:httpd.confによるWebサーバの最適化(1/3)
http://www.atmarkit.co.jp/flinux/rensai/apache2_03/apache03a.html
マルチプラットフォームの高速ウェブサーバ lighttpd 1.4.3公開 (MYCOM PC WEB)
http://pcweb.mycom.co.jp/news/2005/09/02/007.html

■よく検索されるキーワード

torrent(174) expressions(80) 竹内まりや(62) ドラマ(27) x31(25) linux(24) windows(23) 壁紙(22) 動画(21) 手帳(21) wiki(20) perl(20) 画像(19) debian(19) 蘇える金狼(18) 吉瀬美智子(18) mp3(16) 使い方(15) 秋葉原(14) thinkpad(14) ダウンロード(14) usb(14) 竹内まりあ(13) バッグ(13) ヨドバシカメラ(12) リフィル(12) ubuntu(12) ノート(11) xp(11) ヨドバシ(11) 作り方(11) skype(10) so905ics(10) nikon(10) ほぼ日手帳(10) porter(10) 無印(9) cvs(9) サンプル(9) 生年月日(9) a6(9) ヤマダ電機(9) 評判(9) 写真(9) firefox(8) 書き方(8) 方眼(8) .torrent(8) 万年筆(8) 日本語(8) apache(8) tc-1(8) 無料動画(8) 冷蔵庫(8) 設定(8) 修理(8) 今村恵子(8) インストール(7) ダイソー(7) 無料(7) 無印良品(7) ほぼ日(7) nikkor(7) dvd(7) システム手帳(7) 水谷ケイ(6) cgi(6) c#(6) うなぎ(6) スーパー(6) hdd(6) 変換(6) ssh(6) vq1005(6) 2009(6) 風邪(6) centos(6) 機内持ち込み(6) 2008(6) 比較(6)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 4.77082s / load averages: 0.40, 0.31, 0.38
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)