見てきた全てを記録するmod_estraier

フォワードプロキシを利用して、見てきたURL全てを記録する仕組みを考えていて、SetOutputFilter+PHP外部スクリプトでそれっぽいのを作ってみた。

trace.php
[php num=1]#!/usr/bin/php -q <?php /* * CREATE TABLE log ( * id int(11) NOT NULL auto_increment, * timestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, * uri varchar(255) NOT NULL, * title varchar(255) NOT NULL, * contents text, * PRIMARY KEY (id), * UNIQUE KEY uri (uri) * ); / mb_detect_order('EUC-JP,SJIS,UTF-8,ASCII'); $documentUri = getenv('DOCUMENT_URI'); $documentPathInfo = getenv('DOCUMENT_PATH_INFO'); $queryStringUnescaped = getenv('QUERY_STRING_UNESCAPED'); $buf = @file_get_contents('php://stdin');

echo $buf;

$documentUri = mysql_real_escape_string($documentUri);

$enc = 'auto'; if (preg_match('/<meta http-equiv="Content-Type" content="text\/html; charset=([^"]+)"/i', $buf, $matches)) { $enc = $matches[1]; } $buf = mb_convert_encoding($buf, 'UTF-8', $enc);

$title = ''; if(preg_match('/([^<]+)<\/title>/i', $buf, $matches)) { $title = <a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql">mysql</a>_real_escape_string($matches[1]); }</p> <p>$buf = <a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql">mysql</a>_real_escape_string($buf); $dbh = <a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql">mysql</a>_connect('<a class="keyword" href="http://d.hatena.ne.jp/keyword/localhost">localhost</a>', 'user','password'); <a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql">mysql</a>_select_db('test'); $<a class="keyword" href="http://d.hatena.ne.jp/keyword/sql">sql</a> =<<<<em><a class="keyword" href="http://d.hatena.ne.jp/keyword/EOD">EOD</a></em> INSERT DELAYED IGNORE INTO log SET <a class="keyword" href="http://d.hatena.ne.jp/keyword/uri">uri</a> = '$documentUri', title='$title', contents = '$buf' <em><a class="keyword" href="http://d.hatena.ne.jp/keyword/EOD">EOD</a></em>; <a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql">mysql</a>_query($<a class="keyword" href="http://d.hatena.ne.jp/keyword/sql">sql</a>, $dbh);</p> <p>exit();[/<a class="keyword" href="http://d.hatena.ne.jp/keyword/php">php</a>] <a class="keyword" href="http://d.hatena.ne.jp/keyword/httpd">httpd</a>.conf<br /></p> <div class="code"><pre>ExtFilterDefine trace mode=output intype=text/html cmd="/usr/local/bin/trace.<a class="keyword" href="http://d.hatena.ne.jp/keyword/php">php</a>" EnableEnv=PROXY_TRACE SetOutputFilter trace ProxyRequests On <Proxy *> SetEnv PROXY_TRACE </Proxy *></pre></div> <p>ってかさ、あるじゃんかね、そういうの。<br /> <a href="http://piro.sakura.ne.jp/latest/blosxom/webtech/2006-05-11_mod_estraier.htm">mod_estraierによる履歴全文検索</a><br /> <a href="http://espion.just-size.jp/archives/05/086181756.html">WWWOFFLE & Estraier で快適キャッシュ検索</a><br /> コード書く前に気付けよなぁ。。。<br /> あとこれも。<br /> <a href="http://www.forest.impress.co.jp/article/2005/09/05/ehm.html">「Firefox」閲覧履歴を詳細表示・検索できる「Enhanced History Manager」</a></p> </div> <footer class="entry-footer"> <div class="entry-tags-wrapper"> <div class="entry-tags"> </div> </div> <p class="entry-footer-section track-inview-by-gtm" data-gtm-track-json="{"area": "finish_reading"}"> <span class="author vcard"><span class="fn" data-load-nickname="1" data-user-name="dev0000_1" >dev0000_1</span></span> <span class="entry-footer-time"><a href="https://dev0000-1.hatenablog.com/entry/2006/12/03/1226/"><time data-relative datetime="2006-12-03T14:13:34Z" title="2006-12-03T14:13:34Z" class="updated">2006-12-03 23:13</time></a></span> <span class=" entry-footer-subscribe " data-test-blog-controlls-subscribe> <a href="https://blog.hatena.ne.jp/dev0000_1/dev0000-1.hatenablog.com/subscribe?utm_source=blogs_entry_footer&utm_medium=button&utm_campaign=subscribe_blog"> 読者になる </a> </span> </p> <div class="hatena-star-container" data-hatena-star-container data-hatena-star-url="https://dev0000-1.hatenablog.com/entry/2006/12/03/1226/" data-hatena-star-title="見てきた全てを記録するmod_estraier" data-hatena-star-variant="profile-icon" data-hatena-star-profile-url-template="https://blog.hatena.ne.jp/{username}/" ></div> <div class="social-buttons"> <div class="social-button-item"> <a href="https://b.hatena.ne.jp/entry/s/dev0000-1.hatenablog.com/entry/2006/12/03/1226/" class="hatena-bookmark-button" data-hatena-bookmark-url="https://dev0000-1.hatenablog.com/entry/2006/12/03/1226/" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="この記事をはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only.gif" alt="この記事をはてなブックマークに追加" width="20" height="20" style="border: none;" /></a> </div> <div class="social-button-item"> <div class="fb-share-button" data-layout="box_count" data-href="https://dev0000-1.hatenablog.com/entry/2006/12/03/1226/"></div> </div> <div class="social-button-item"> <a class="entry-share-button entry-share-button-twitter test-share-button-twitter" href="https://twitter.com/intent/tweet?text=%E8%A6%8B%E3%81%A6%E3%81%8D%E3%81%9F%E5%85%A8%E3%81%A6%E3%82%92%E8%A8%98%E9%8C%B2%E3%81%99%E3%82%8Bmod_estraier+-+%E7%9C%A0%E3%82%8B%E9%96%8B%E7%99%BA%E5%B1%8B%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%AD%E3%82%B0&url=https%3A%2F%2Fdev0000-1.hatenablog.com%2Fentry%2F2006%2F12%2F03%2F1226%2F" title="X(Twitter)で投稿する" ></a> </div> </div> <div class="google-afc-image test-google-rectangle-ads"> <div id="google_afc_user_container_1" class="google-afc-user-container google_afc_blocklink2_5 google_afc_boder" data-test-unit="/4374287/blog_user"></div> <a href="http://blog.hatena.ne.jp/guide/pro" class="open-pro-modal" data-guide-pro-modal-ad-url="https://hatena.blog/guide/pro/modal/ad">広告を非表示にする</a> </div> <div class="customized-footer"> <div class="entry-footer-modules" id="entry-footer-secondary-modules"> </div> </div> <div class="comment-box js-comment-box"> <ul class="comment js-comment"> <li class="read-more-comments" style="display: none;"><a>もっと読む</a></li> </ul> <a class="leave-comment-title js-leave-comment-title">コメントを書く</a> </div> </footer> </div> </article> <!-- rakuten_ad_target_end --> <!-- google_ad_section_end --> <div class="pager pager-permalink permalink"> <span class="pager-prev"> <a href="https://dev0000-1.hatenablog.com/entry/2006/12/04/1230/" rel="prev"> <span class="pager-arrow">« </span> Comitt4u.jpなくなったっぽい </a> </span> <span class="pager-next"> <a href="https://dev0000-1.hatenablog.com/entry/2006/12/02/1225/" rel="next"> apache2のmod_log_mysql <span class="pager-arrow"> »</span> </a> </span> </div> </div> </div> <aside id="box1"> <div id="box1-inner"> </div> </aside> </div><!-- #wrapper --> <aside id="box2"> <div id="box2-inner"> <div class="hatena-module hatena-module-profile"> <div class="hatena-module-title"> プロフィール </div> <div class="hatena-module-body"> <a href="https://dev0000-1.hatenablog.com/about" class="profile-icon-link"> <img src="https://cdn.profile-image.st-hatena.com/users/dev0000_1/profile.png" alt="id:dev0000_1" class="profile-icon" /> </a> <span class="id"> <a href="https://dev0000-1.hatenablog.com/about" class="hatena-id-link"><span data-load-nickname="1" data-user-name="dev0000_1">id:dev0000_1</span></a> </span> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> <div class="profile-about"> <a href="https://dev0000-1.hatenablog.com/about">このブログについて</a> </div> </div> </div> <div class="hatena-module hatena-module-search-box"> <div class="hatena-module-title"> 検索 </div> <div class="hatena-module-body"> <form class="search-form" role="search" action="https://dev0000-1.hatenablog.com/search" method="get"> <input type="text" name="q" class="search-module-input" value="" placeholder="記事を検索" required> <input type="submit" value="検索" class="search-module-button" /> </form> </div> </div> <div class="hatena-module hatena-module-links"> <div class="hatena-module-title"> リンク </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li> <a href="https://hatena.blog/">はてなブログ</a> </li> <li> <a href="https://hatena.blog/guide?via=200109">ブログをはじめる</a> </li> <li> <a href="http://blog.hatenablog.com">週刊はてなブログ</a> </li> <li> <a href="https://hatena.blog/guide/pro">はてなブログPro</a> </li> </ul> </div> </div> <div class="hatena-module hatena-module-recent-entries "> <div class="hatena-module-title"> <a href="https://dev0000-1.hatenablog.com/archive"> 最新記事 </a> </div> <div class="hatena-module-body"> <ul class="recent-entries hatena-urllist "> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://dev0000-1.hatenablog.com/entry/2016/01/08/013534" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">エリート育成とか</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://dev0000-1.hatenablog.com/entry/2016/01/08/002633" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">参入障壁とか</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://dev0000-1.hatenablog.com/entry/2015/12/26/220448" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">MVCが嫌いな理由とか</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://dev0000-1.hatenablog.com/entry/2015/12/26/200610" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">労働組合とか</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="https://dev0000-1.hatenablog.com/entry/2015/12/23/222646" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ユニットテスト書き方希望とか</a> </div> </li> </ul> </div> </div> <div class="hatena-module hatena-module-archive" data-archive-type="default" data-archive-url="https://dev0000-1.hatenablog.com/archive"> <div class="hatena-module-title"> <a href="https://dev0000-1.hatenablog.com/archive">月別アーカイブ</a> </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li class="archive-module-year archive-module-year-hidden" data-year="2016"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2016" class="archive-module-year-title archive-module-year-2016"> 2016 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2016/01" class="archive-module-month-title archive-module-month-2016-1"> 2016 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2015"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2015" class="archive-module-year-title archive-module-year-2015"> 2015 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2015/12" class="archive-module-month-title archive-module-month-2015-12"> 2015 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2015/11" class="archive-module-month-title archive-module-month-2015-11"> 2015 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2015/10" class="archive-module-month-title archive-module-month-2015-10"> 2015 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2015/09" class="archive-module-month-title archive-module-month-2015-9"> 2015 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2015/05" class="archive-module-month-title archive-module-month-2015-5"> 2015 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2015/03" class="archive-module-month-title archive-module-month-2015-3"> 2015 / 3 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2014"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2014" class="archive-module-year-title archive-module-year-2014"> 2014 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2014/03" class="archive-module-month-title archive-module-month-2014-3"> 2014 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2014/02" class="archive-module-month-title archive-module-month-2014-2"> 2014 / 2 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2013"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2013" class="archive-module-year-title archive-module-year-2013"> 2013 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2013/09" class="archive-module-month-title archive-module-month-2013-9"> 2013 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2013/07" class="archive-module-month-title archive-module-month-2013-7"> 2013 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2013/03" class="archive-module-month-title archive-module-month-2013-3"> 2013 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2013/02" class="archive-module-month-title archive-module-month-2013-2"> 2013 / 2 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2012"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2012" class="archive-module-year-title archive-module-year-2012"> 2012 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2012/11" class="archive-module-month-title archive-module-month-2012-11"> 2012 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2012/10" class="archive-module-month-title archive-module-month-2012-10"> 2012 / 10 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2010"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2010" class="archive-module-year-title archive-module-year-2010"> 2010 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2010/07" class="archive-module-month-title archive-module-month-2010-7"> 2010 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2010/05" class="archive-module-month-title archive-module-month-2010-5"> 2010 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2010/03" class="archive-module-month-title archive-module-month-2010-3"> 2010 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2010/02" class="archive-module-month-title archive-module-month-2010-2"> 2010 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2010/01" class="archive-module-month-title archive-module-month-2010-1"> 2010 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2009"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2009" class="archive-module-year-title archive-module-year-2009"> 2009 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/12" class="archive-module-month-title archive-module-month-2009-12"> 2009 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/11" class="archive-module-month-title archive-module-month-2009-11"> 2009 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/10" class="archive-module-month-title archive-module-month-2009-10"> 2009 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/09" class="archive-module-month-title archive-module-month-2009-9"> 2009 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/08" class="archive-module-month-title archive-module-month-2009-8"> 2009 / 8 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/07" class="archive-module-month-title archive-module-month-2009-7"> 2009 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/06" class="archive-module-month-title archive-module-month-2009-6"> 2009 / 6 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/05" class="archive-module-month-title archive-module-month-2009-5"> 2009 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/04" class="archive-module-month-title archive-module-month-2009-4"> 2009 / 4 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/03" class="archive-module-month-title archive-module-month-2009-3"> 2009 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/02" class="archive-module-month-title archive-module-month-2009-2"> 2009 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2009/01" class="archive-module-month-title archive-module-month-2009-1"> 2009 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2008"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2008" class="archive-module-year-title archive-module-year-2008"> 2008 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/12" class="archive-module-month-title archive-module-month-2008-12"> 2008 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/11" class="archive-module-month-title archive-module-month-2008-11"> 2008 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/10" class="archive-module-month-title archive-module-month-2008-10"> 2008 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/09" class="archive-module-month-title archive-module-month-2008-9"> 2008 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/08" class="archive-module-month-title archive-module-month-2008-8"> 2008 / 8 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/07" class="archive-module-month-title archive-module-month-2008-7"> 2008 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/06" class="archive-module-month-title archive-module-month-2008-6"> 2008 / 6 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/05" class="archive-module-month-title archive-module-month-2008-5"> 2008 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/04" class="archive-module-month-title archive-module-month-2008-4"> 2008 / 4 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/03" class="archive-module-month-title archive-module-month-2008-3"> 2008 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/02" class="archive-module-month-title archive-module-month-2008-2"> 2008 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2008/01" class="archive-module-month-title archive-module-month-2008-1"> 2008 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2007"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2007" class="archive-module-year-title archive-module-year-2007"> 2007 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/12" class="archive-module-month-title archive-module-month-2007-12"> 2007 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/11" class="archive-module-month-title archive-module-month-2007-11"> 2007 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/10" class="archive-module-month-title archive-module-month-2007-10"> 2007 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/09" class="archive-module-month-title archive-module-month-2007-9"> 2007 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/08" class="archive-module-month-title archive-module-month-2007-8"> 2007 / 8 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/07" class="archive-module-month-title archive-module-month-2007-7"> 2007 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/06" class="archive-module-month-title archive-module-month-2007-6"> 2007 / 6 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/05" class="archive-module-month-title archive-module-month-2007-5"> 2007 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/04" class="archive-module-month-title archive-module-month-2007-4"> 2007 / 4 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/03" class="archive-module-month-title archive-module-month-2007-3"> 2007 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/02" class="archive-module-month-title archive-module-month-2007-2"> 2007 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2007/01" class="archive-module-month-title archive-module-month-2007-1"> 2007 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2006"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2006" class="archive-module-year-title archive-module-year-2006"> 2006 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/12" class="archive-module-month-title archive-module-month-2006-12"> 2006 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/11" class="archive-module-month-title archive-module-month-2006-11"> 2006 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/10" class="archive-module-month-title archive-module-month-2006-10"> 2006 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/09" class="archive-module-month-title archive-module-month-2006-9"> 2006 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/08" class="archive-module-month-title archive-module-month-2006-8"> 2006 / 8 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/07" class="archive-module-month-title archive-module-month-2006-7"> 2006 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/06" class="archive-module-month-title archive-module-month-2006-6"> 2006 / 6 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/05" class="archive-module-month-title archive-module-month-2006-5"> 2006 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/04" class="archive-module-month-title archive-module-month-2006-4"> 2006 / 4 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/03" class="archive-module-month-title archive-module-month-2006-3"> 2006 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/02" class="archive-module-month-title archive-module-month-2006-2"> 2006 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2006/01" class="archive-module-month-title archive-module-month-2006-1"> 2006 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2005"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2005" class="archive-module-year-title archive-module-year-2005"> 2005 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/12" class="archive-module-month-title archive-module-month-2005-12"> 2005 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/11" class="archive-module-month-title archive-module-month-2005-11"> 2005 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/10" class="archive-module-month-title archive-module-month-2005-10"> 2005 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/09" class="archive-module-month-title archive-module-month-2005-9"> 2005 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/08" class="archive-module-month-title archive-module-month-2005-8"> 2005 / 8 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/07" class="archive-module-month-title archive-module-month-2005-7"> 2005 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/06" class="archive-module-month-title archive-module-month-2005-6"> 2005 / 6 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/05" class="archive-module-month-title archive-module-month-2005-5"> 2005 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/04" class="archive-module-month-title archive-module-month-2005-4"> 2005 / 4 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/03" class="archive-module-month-title archive-module-month-2005-3"> 2005 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/02" class="archive-module-month-title archive-module-month-2005-2"> 2005 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2005/01" class="archive-module-month-title archive-module-month-2005-1"> 2005 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2004"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://dev0000-1.hatenablog.com/archive/2004" class="archive-module-year-title archive-module-year-2004"> 2004 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/12" class="archive-module-month-title archive-module-month-2004-12"> 2004 / 12 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/11" class="archive-module-month-title archive-module-month-2004-11"> 2004 / 11 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/10" class="archive-module-month-title archive-module-month-2004-10"> 2004 / 10 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/09" class="archive-module-month-title archive-module-month-2004-9"> 2004 / 9 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/08" class="archive-module-month-title archive-module-month-2004-8"> 2004 / 8 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/07" class="archive-module-month-title archive-module-month-2004-7"> 2004 / 7 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/06" class="archive-module-month-title archive-module-month-2004-6"> 2004 / 6 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/05" class="archive-module-month-title archive-module-month-2004-5"> 2004 / 5 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/04" class="archive-module-month-title archive-module-month-2004-4"> 2004 / 4 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/03" class="archive-module-month-title archive-module-month-2004-3"> 2004 / 3 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/02" class="archive-module-month-title archive-module-month-2004-2"> 2004 / 2 </a> </li> <li class="archive-module-month"> <a href="https://dev0000-1.hatenablog.com/archive/2004/01" class="archive-module-month-title archive-module-month-2004-1"> 2004 / 1 </a> </li> </ul> </li> </ul> </div> </div> </div> </aside> </div> </div> </div> </div> <footer id="footer" data-brand="hatenablog"> <div id="footer-inner"> <div style="display:none !important" class="guest-footer js-guide-register test-blogs-register-guide" data-action="guide-register"> <div class="guest-footer-content"> <h3>はてなブログをはじめよう!</h3> <p>dev0000_1さんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?</p> <div class="guest-footer-btn-container"> <div class="guest-footer-btn"> <a class="btn btn-register js-inherit-ga" href="https://blog.hatena.ne.jp/register?via=200227" target="_blank">はてなブログをはじめる(無料)</a> </div> <div class="guest-footer-btn"> <a href="https://hatena.blog/guide" target="_blank">はてなブログとは</a> </div> </div> </div> </div> <address class="footer-address"> <a href="https://dev0000-1.hatenablog.com/"> <img src="https://cdn.blog.st-hatena.com/images/admin/blog-icon-noimage.png" width="16" height="16" alt="眠る開発屋はてなブログ"/> <span class="footer-address-name">眠る開発屋はてなブログ</span> </a> </address> <p class="services"> Powered by <a href="https://hatena.blog/">Hatena Blog</a> | <a href="https://blog.hatena.ne.jp/-/abuse_report?target_url=https%3A%2F%2Fdev0000-1.hatenablog.com%2Fentry%2F2006%2F12%2F03%2F1226%2F" class="report-abuse-link test-report-abuse-link" target="_blank">ブログを報告する</a> </p> </div> </footer> <script async src="https://s.hatena.ne.jp/js/widget/star.js"></script> <script> if (typeof window.Hatena === 'undefined') { window.Hatena = {}; } if (!Hatena.hasOwnProperty('Star')) { Hatena.Star = { VERSION: 2, }; } </script> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&appId=719729204785177&version=v17.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="quote-box"> <div class="tooltip-quote tooltip-quote-stock"> <i class="blogicon-quote" title="引用をストック"></i> </div> <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet"> <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once> <img src="https://cdn.blog.st-hatena.com/images/admin/quote/quote-x-icon.svg?version=ee7d6f7116d9cbc8c1749752032c62" title="引用して投稿する" > </a> </div> </div> <div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000"> <div class="message-box" id="quote-stock-succeeded-message" style="display: none"> <p>引用をストックしました</p> <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ストック一覧を見る</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="message-box" id="quote-login-required-message" style="display: none"> <p>引用するにはまずログインしてください</p> <button class="btn btn-primary" id="quote-login-button">ログイン</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="quote-stock-failed-message" style="display: none"> <p>引用をストックできませんでした。再度お試しください</p> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;"> <p>限定公開記事のため引用できません。</p> </div> </div> <script type="x-underscore-template" id="js-requote-button-template"> <div class="requote-button js-requote-button"> <button class="requote-button-btn tipsy-top" title="引用する"><i class="blogicon-quote"></i></button> </div> </script> <div id="hidden-subscribe-button" style="display: none;"> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> </div> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <script src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?v=1.12.4&version=ee7d6f7116d9cbc8c1749752032c62"></script> <script src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=ee7d6f7116d9cbc8c1749752032c62"></script> <script id="vendors-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/vendors.js?version=ee7d6f7116d9cbc8c1749752032c62" crossorigin="anonymous"></script> <script id="hatenablog-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=ee7d6f7116d9cbc8c1749752032c62" crossorigin="anonymous" data-page-id="entry"></script> <script>Hatena.Diary.GlobalHeader.init()</script> <script id="valve-dmp" data-service="blog" src="https://cdn.pool.st-hatena.com/valve/dmp.js" data-test-id="dmpjs" async></script> </body> </html>