<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3972794581124081153</id><updated>2011-11-28T10:02:45.452+09:00</updated><category term='seo'/><category term='linux'/><category term='ネタ'/><category term='サイト高速化'/><category term='jQuery'/><category term='MySQL'/><category term='php'/><category term='Api'/><category term='.htaccess'/><category term='SSL'/><category term='Apache'/><category term='JavaScript'/><category term='Google'/><category term='prototype'/><category term='CakePHP'/><category term='WEBサービス'/><title type='text'>"42"</title><subtitle type='html'>忘れない為の投稿、なんとなく気になったもの。
「42」= the Answer to (the Ultimate Question of) life, the universe, and everything.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-1725535936523852622</id><published>2011-03-30T11:39:00.004+09:00</published><updated>2011-03-30T11:50:56.577+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='サイト高速化'/><category scheme='http://www.blogger.com/atom/ns#' term='.htaccess'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>ブラウザに画像、CSS、Javascriptなどをキャッシュさせて表示を高速化させる方法</title><content type='html'>Apacheのモジュール「mod_expires」を使用します。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まず、モジュールがあるか確認。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;[root@www ~]# cat /etc/httpd/conf/httpd.conf | grep mod_expires&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;LoadModule expires_module modules/mod_expires.so&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;ありました。&lt;/div&gt;&lt;div&gt;.htaccessに下記を記述します。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&amp;lt;ifModule mod_expires.c&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresActive On&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresDefault "access plus 1 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType text/html "access plus 1 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;# 30days&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType image/gif "access plus 2592000 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType image/jpeg "access plus 2592000 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType image/png "access plus 2592000 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType image/x-icon "access plus 2592000 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;# 7days&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType text/css "access plus 604800 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType text/javascript "access plus 604800 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType application/x-javascript "access plus 604800 seconds"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;ExpiresByType application/x-shockwave-flash "access plus 604800 seconds"&lt;/div&gt;&lt;div&gt;&amp;lt;/ifModule&amp;gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ユーザーのアクセスからの秒数を指定して、キャッシュさせます。&lt;/div&gt;&lt;div&gt;アクセスからこの秒数が経過した場合はキャッシュを破棄します。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;参考：&lt;/div&gt;&lt;div&gt;&lt;a href="http://httpd.apache.org/docs/2.0/ja/mod/mod_expires.html"&gt;Apache モジュール mod_expires&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://dogmap.jp/2010/04/20/wordpress-htaccess/"&gt;WordPressサイト用の.htaccess例&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-1725535936523852622?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/1725535936523852622/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=1725535936523852622' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/1725535936523852622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/1725535936523852622'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2011/03/cssjavascript.html' title='ブラウザに画像、CSS、Javascriptなどをキャッシュさせて表示を高速化させる方法'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-8516036747891634944</id><published>2011-02-27T14:13:00.003+09:00</published><updated>2011-02-27T14:19:03.045+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Adsenseのアカウント停止。アボセンス。</title><content type='html'>なんの前触れもなく急に広告が表示されなくなります。&lt;div&gt;恐ろしいことです。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;停止の理由を問い合わせフォームから送ったものの返答なし。&lt;/div&gt;&lt;div&gt;うーん。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;おそらく、キーワードをキーにページを自動生成しているサイトで、APIで画像を表示してたんですが、その部分が「アダルト的な表現」というのにひっかかったのかなーと。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まいったこりゃです。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ということで、GMOの運営する「マイクロアド」に乗り換えました。&lt;/div&gt;&lt;div&gt;最初は単価低めですが、一週間もすればAdsenseとほぼ同額の広告料に。&lt;/div&gt;&lt;div&gt;画面もシンプルで使いやすく、いまのところ不満はありません。&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='https://associate.microad.jp/associate/login?ID=251550' target='_blank'&gt;&lt;br /&gt;&lt;img border='0' alt='マイクロアドBTパートナーでおこづかいゲット！' src='http://cache.microad.jp/conduct_banner/200x200_01.gif' /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-8516036747891634944?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/8516036747891634944/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=8516036747891634944' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8516036747891634944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8516036747891634944'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2011/02/google-adsense.html' title='Google Adsenseのアカウント停止。アボセンス。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-2566104589830604229</id><published>2009-03-10T14:57:00.002+09:00</published><updated>2009-03-10T15:01:45.490+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ネタ'/><title type='text'>定額給付金を88倍に増やそうキャンペーン</title><content type='html'>笑わそうとしてるという風にしか思えない。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://venture-plus.com/news/41377"&gt;【日本初】初期費用30万円のSEOサービス「ダイヤモンドＳＥＯ」を定額給付金12000円で お申し込みできる「定額給付金を88倍に増やそうキャンペーン」を2009年3月限定で開始（ダイヤモンドメディア株式会社）&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;キャンペーン名「定額給付金を88倍に増やそうキャンペーン」は、&lt;br /&gt;実際に売上げ増加に貢献することと、&lt;br /&gt;末広がりの8で縁起を担ぎたかったため、このようになりました。&lt;br /&gt;&lt;br /&gt;アホか。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-2566104589830604229?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/2566104589830604229/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=2566104589830604229' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2566104589830604229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2566104589830604229'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2009/03/88.html' title='定額給付金を88倍に増やそうキャンペーン'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-3939425271668393059</id><published>2009-01-23T13:34:00.001+09:00</published><updated>2009-01-23T13:37:00.230+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><title type='text'>cakephp1.2でcontrollerでのvalidatesが機能しない時</title><content type='html'>確認画面などをはさみたいとき、controller内でvalidationをしなければいけない。&lt;br /&gt;しかし、&lt;br /&gt;&lt;blockquote&gt;if( $this-&gt;Model-&gt;validates( $this-&gt;data)){&lt;br /&gt;$this-&gt;render('confirm');&lt;br /&gt;}&lt;/blockquote&gt;上記だけでは、validates()は機能しない。&lt;br /&gt;一文追加することで正しく機能する。&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;$this-&gt;Model-&gt;set( $this-&gt;data);&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;if( $this-&gt;Model-&gt;validates( $this-&gt;data)){&lt;br /&gt;$this-&gt;render('confirm');&lt;br /&gt;}&lt;/blockquote&gt;一時間ハマった…。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-3939425271668393059?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/3939425271668393059/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=3939425271668393059' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/3939425271668393059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/3939425271668393059'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2009/01/cakephp12controllervalidates.html' title='cakephp1.2でcontrollerでのvalidatesが機能しない時'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7986899933896690080</id><published>2009-01-09T18:02:00.003+09:00</published><updated>2009-01-09T18:16:05.326+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>1対1のリレーション構造のテーブルの意味</title><content type='html'>たとえば、名簿のテーブルを作成するとして、&lt;br /&gt;&lt;blockquote&gt;・id&lt;br /&gt;・氏名&lt;br /&gt;・生年月日&lt;br /&gt;・性別&lt;br /&gt;・アドレス&lt;br /&gt;・会社&lt;br /&gt;・部署&lt;br /&gt;・電話番号&lt;br /&gt;・FAX番号&lt;/blockquote&gt;などのコラムを考えていたとき。&lt;br /&gt;&lt;blockquote&gt;・id&lt;br /&gt;・氏名&lt;br /&gt;・生年月日&lt;br /&gt;・性別&lt;br /&gt;------&lt;br /&gt;・アドレス&lt;br /&gt;・会社&lt;br /&gt;・部署&lt;br /&gt;・電話番号&lt;br /&gt;・FAX番号&lt;/blockquote&gt;こんな感じでテーブルを分けたがる人が周りにいた。&lt;br /&gt;何でだろうって思って聞いても返答は、「なんとなく。」&lt;br /&gt;気になって調べました。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;後の仕様変更による、1対1から1対Nへの変更の可能性を考慮する場合。&lt;/span&gt;&lt;br /&gt;　つまり、仕様変更しやすいようにしとくってこと。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;パフォーマンス改善を目的にテーブルを分割（非正規化という）することがある。&lt;/span&gt;&lt;br /&gt;　例として、以下のようなケースが有効。&lt;br /&gt;&lt;br /&gt;・同じようなSELECTクエリがほとんどを占めるシステム&lt;br /&gt;　通常検索に使われないフィールドを別テーブルに分けることで、&lt;br /&gt;　&lt;span style="color: rgb(255, 0, 0);"&gt;クエリに使用するメモリを縮小することが出来る。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;・DELETE / INSERTが多いシステム&lt;br /&gt;　データ型が可変長であるフィールドを別テーブルに分けることで&lt;br /&gt;　レコードが固定長になり、&lt;span style="color: rgb(255, 0, 0);"&gt;ディスクの有効活用が期待できる。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;しかし、ストレージエンジン（InnoDB、MyISAM）などの違いによって状況は様々で、小中規模のシステムでは必要ない。って感じ。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;結論としては、面倒なだけ。自分は分けません。&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7986899933896690080?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7986899933896690080/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7986899933896690080' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7986899933896690080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7986899933896690080'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2009/01/11.html' title='1対1のリレーション構造のテーブルの意味'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-2911626895558959610</id><published>2008-12-17T11:56:00.002+09:00</published><updated>2008-12-17T11:59:54.367+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Api'/><title type='text'>cakephp1.2でXML形式のAPIをmodelとして使用する方法</title><content type='html'>cakephpには便利なXMLのパース関数があるので、それを使用する。&lt;br /&gt;すげーラク、まさに「ゆとりプログラム」&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;app/models/yahoo.php&lt;br /&gt;&amp;lt;?php&lt;br /&gt;class Yahoo extends AppModel {&lt;br /&gt;&lt;br /&gt;　var $name     = 'Yahoo';&lt;br /&gt;　&lt;br /&gt;　// tableを使用しないという設定。&lt;br /&gt;　var $useTable = false;&lt;br /&gt;　&lt;br /&gt;　// Yahoo!で取得するKEYを設定する。&lt;br /&gt;　// app/confing/bootstrap.php に定義するのが無難か。&lt;br /&gt;　var $appId    = 'XXXXXXXXXXXXXXXXXXX';&lt;br /&gt;　&lt;br /&gt;　/**&lt;br /&gt;　 * web検索&lt;br /&gt;　 * http://developer.yahoo.co.jp/webapi/search/websearch/v1/websearch.html&lt;br /&gt;　 *&lt;br /&gt;　 */&lt;br /&gt;　function webSearch( $word, $start = 1, $results = 10, $type = 'all', $format = 'any', $adult_ok = '1', $similar_ok = '', $language = 'ja', $country = '', $site = ''){&lt;br /&gt;　　$word = urlencode( $word);&lt;br /&gt;　　$req = "http://search.yahooapis.jp/WebSearchService/V1/webSearch?appid={$this-&amp;gt;appId}&amp;amp;query={$word}$start={$start}&amp;amp;results={$results}&amp;amp;type={$type}&amp;amp;format={$format}&amp;amp;adult_ok={$adult_ok}&amp;amp;similar_ok={$similar_ok}&amp;amp;language={$language}&amp;amp;country={$country}&amp;amp;site={$site}";&lt;br /&gt;&lt;br /&gt;　　uses('Xml');&lt;br /&gt;　　$xml = new XML( $req); &lt;br /&gt;　　$respons = Set::reverse( $xml);&lt;br /&gt;//　　pr( $respons);&lt;br /&gt;　　return $respons;&lt;br /&gt;　}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-2911626895558959610?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/2911626895558959610/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=2911626895558959610' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2911626895558959610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2911626895558959610'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/12/cakephp12xmlapimodel.html' title='cakephp1.2でXML形式のAPIをmodelとして使用する方法'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7407465758466596619</id><published>2008-12-11T12:05:00.001+09:00</published><updated>2008-12-11T12:08:14.084+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><title type='text'>cakephp1.2のvalidationの組み込みルールまとめ</title><content type='html'>1.2になって、大分便利になってきたcakephpのvalidation。&lt;br /&gt;組み込みルールがかなり増えていたので、まとめ。&lt;br /&gt;（日本語環境で使えないようなものは切り捨ててあります）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;必須項目（定番）&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'title' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'notEmpty',&lt;br /&gt;　　'message' =&gt; '必須項目です。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;半角のアルファベットか数字のみ&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'username' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('alphaNumeric')&lt;br /&gt;　　'message' =&gt; '半角英数字でご記入下さい。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;数字もしくは数値形式&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'age' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'numeric', &lt;br /&gt;　　'message' =&gt; '半角数字でご記入下さい。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;URLであるか&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'website' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'url'&lt;br /&gt;　　'message' =&gt; 'URLをお確かめ下さい。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;メールアドレス。引数に true を設定すると、メールサーバーのホストが存在するかどうかを確認する。&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'email' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('email', true),&lt;br /&gt;　　'message' =&gt; 'メールアドレスを正しく入力してください。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;日付&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'born' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'date',&lt;br /&gt;　　'message' =&gt; '正しいデータを「YY-MM-DD」のフォーマットで入力してください。',&lt;br /&gt;　　'allowEmpty' =&gt; true&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;文字の長さ。&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'login' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('minLength', '8'), &lt;br /&gt;　　'message' =&gt; 'ユーザ名は8文字以上にしてください。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'login' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('maxLength', '15'), &lt;br /&gt;　　'message' =&gt; 'ユーザ名は15文字以下にしてください。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;指定した範囲の長さでおさまっていること。最小値と最大値は必須&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'password' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('between', 5, 15),&lt;br /&gt;　　'message' =&gt; 'パスワードは5文字以上15文字以下にしてください。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;範囲&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'number' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('range', 0, 10),&lt;br /&gt;　　'message' =&gt; '0より大きく10より小さい数を入力してください。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ユニークであるかどうか（超便利！！）&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'login' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'isUnique',&lt;br /&gt;　　'message' =&gt; 'このユーザ名はすでに使用されています。'&lt;br /&gt;　)&lt;br /&gt;);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;数字の比較&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'age' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('comparison', '&gt;=', 18),&lt;br /&gt;　　'message' =&gt; '18歳以上の方のみ対象です。'&lt;br /&gt;　)&lt;br /&gt;);&lt;br /&gt;var $validate = array(&lt;br /&gt;　'age' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('comparison', 'greater or equal', 18),&lt;br /&gt;　　'message' =&gt; '18歳以上の方のみ対象です。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IPv4&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'clientip' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'ip',&lt;br /&gt;　　'message' =&gt; 'IPアドレスを正しく入力してください。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;小数。パラメータは、小数点以下の桁数。もしパラメータを何も与えなかったら、データが浮動小数点であってもバリデーションは成功。&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'price' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('decimal', 2)&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;値と型の両方で確認&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'food' =&gt; array(&lt;br /&gt;　　'rule' =&gt; array('equalTo', 'cake'), &lt;br /&gt;　　'message' =&gt; 'この項目は文字列で「cake」としなければなりません。'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ホワイトスペースのみ。ホワイトスペースは、半角スペースとタブ、復帰文字（\r）および改行文字（\n）を含む。&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'id' =&gt; array(&lt;br /&gt;　　'rule' =&gt; 'blank',&lt;br /&gt;　　'on' =&gt; 'create'&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;指定したリストの中に含まれているか&lt;br /&gt;&lt;blockquote&gt;var $validate = array(&lt;br /&gt;　'function' =&gt; array(&lt;br /&gt;　　'allowedChoice' =&gt; array(&lt;br /&gt;　　　'rule' =&gt; array('inList', array('Foo', 'Bar')),&lt;br /&gt;　　　'message' =&gt; '「Foo」か「Bar」を入力してください。'&lt;br /&gt;　　)&lt;br /&gt;　)&lt;br /&gt;);&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7407465758466596619?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7407465758466596619/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7407465758466596619' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7407465758466596619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7407465758466596619'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/12/cakephp12validation.html' title='cakephp1.2のvalidationの組み込みルールまとめ'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-8341998084861469838</id><published>2008-11-27T13:20:00.003+09:00</published><updated>2008-11-27T13:29:41.641+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Api'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google AJAX Search APIのサーバーサイドスクリプト向けのものが64件まで取得できるようになってる。</title><content type='html'>前に書いたエントリ&lt;a href="http://life1204.blogspot.com/2008/07/google-ajax-search-api.html"&gt;「Google AJAX Search APIにサーバーサイドスクリプトで取得できるものができてる」&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;32件までしか取得できなかったのに、今日試したら64件まで見れる！！！&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;証拠は&lt;/span&gt;&lt;a style="font-weight: bold;" href="http://fictionlife.com/test-googleapi.php"&gt;コチラ&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;超適当な検証コードは以下。&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;?php&lt;br /&gt;if ( !function_exists('json_decode') ){&lt;br /&gt;　　function json_decode($content, $assoc=false){&lt;br /&gt;　　　　require_once 'Services/JSON.php';&lt;br /&gt;　　　　if ( $assoc ){&lt;br /&gt;　　　　　　$json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);&lt;br /&gt;　　　　} else {&lt;br /&gt;　　　　　　$json = new Services_JSON;&lt;br /&gt;　　　　}&lt;br /&gt;　　　　return $json-&gt;decode($content);&lt;br /&gt;　　}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ( !function_exists('json_encode') ){&lt;br /&gt;　　function json_encode($content){&lt;br /&gt;　　　　require_once 'Services/JSON.php';&lt;br /&gt;　　　　$json = new Services_JSON;&lt;br /&gt;　　　　return $json-&gt;encode($content);&lt;br /&gt;　　}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$q = urlencode( "テスト");&lt;br /&gt;&lt;br /&gt;for( $i = 0; $i &lt; 100; $i += 8){&lt;br /&gt;　　$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&amp;amp;q={$q}&amp;amp;rsz=large&amp;amp;hl=ja&amp;amp;start={$i}";&lt;br /&gt;　　$jsonText = file_get_contents( $url);&lt;br /&gt;　　$jsonDec = json_decode( $jsonText);&lt;br /&gt;　　echo "{$url}&lt;br /&gt;\n";&lt;br /&gt;　　if( is_array( $jsonDec-&gt;responseData-&gt;results)){&lt;br /&gt;　　　　foreach( $jsonDec-&gt;responseData-&gt;results as $key =&gt; $value){&lt;br /&gt;　　　　　　echo ($i+1+$key) . '　:　' . $value-&gt;title . "&lt;br /&gt;";&lt;br /&gt;　　　　}&lt;br /&gt;　　}&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-8341998084861469838?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/8341998084861469838/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=8341998084861469838' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8341998084861469838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8341998084861469838'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/11/google-ajax-search-api64.html' title='Google AJAX Search APIのサーバーサイドスクリプト向けのものが64件まで取得できるようになってる。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-5847807376014853193</id><published>2008-11-25T21:09:00.003+09:00</published><updated>2008-11-25T21:13:34.890+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>httpdのlogrotateのタイミングでhttpdが落ちてしまう時の対処法</title><content type='html'>logrotateの設定を変更する。&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;vi /etc/logrotate.d/httpd&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;/var/log/httpd/*log {&lt;br /&gt;　missingok&lt;br /&gt;　notifempty&lt;br /&gt;　sharedscripts&lt;br /&gt;　postrotate&lt;br /&gt;　　#/bin/kill -HUP `cat /var/run/httpd.pid 2&gt;/dev/null` 2&gt; /dev/null || true #ここを削除&lt;br /&gt;　　service httpd condrestart 2&gt; /dev/null || true #ここを追加&lt;br /&gt;　endscript&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;設定ファイルにミスがないか確認&lt;br /&gt;&lt;blockquote&gt;logrotate -dv /etc/logrotate.d/httpd&lt;/blockquote&gt;参照：&lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=64133"&gt;Bug 64133 – sometimes upon SIGHUP it doesn't like certificates and apache STOPS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-5847807376014853193?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/5847807376014853193/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=5847807376014853193' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/5847807376014853193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/5847807376014853193'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/11/httpdlogrotatehttpd.html' title='httpdのlogrotateのタイミングでhttpdが落ちてしまう時の対処法'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-8588281864657189749</id><published>2008-11-25T20:57:00.005+09:00</published><updated>2008-11-25T21:16:03.543+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>SSLを使用しているサーバーでhttpdの起動・再起動時にパスワードを入力しないで起動する方法</title><content type='html'>SSLパスワードを出力するだけのシェルスクリプト作成&lt;br /&gt;&lt;blockquote&gt;vi /etc/sshpassword&lt;br /&gt;chmod 655 /etc/sshpassword&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;echo -n [passwordをここに]&lt;/blockquote&gt;&lt;br /&gt;httpd.confのバックアップを取る&lt;br /&gt;&lt;blockquote&gt;cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.2008XXXX.bak&lt;/blockquote&gt;&lt;br /&gt;下記の行をhttpd.confの箇所に記述（SSL関連の設定でない場所）&lt;br /&gt;&lt;blockquote&gt;vi /etc/httpd/conf/httpd.conf&lt;br /&gt;↓この行追加&lt;br /&gt;SSLPassPhraseDialog exec:/etc/sshpassword&lt;/blockquote&gt;設定ファイルにミスがないか確認&lt;br /&gt;&lt;blockquote&gt;apachectl configtest&lt;/blockquote&gt;下記のようなコマンドで、SSLのパスワード入力が必要ないことを確認&lt;br /&gt;&lt;blockquote&gt;service httpd condrestart&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-8588281864657189749?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/8588281864657189749/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=8588281864657189749' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8588281864657189749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8588281864657189749'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/11/sslhttpd.html' title='SSLを使用しているサーバーでhttpdの起動・再起動時にパスワードを入力しないで起動する方法'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7888619811847062606</id><published>2008-11-21T14:10:00.001+09:00</published><updated>2008-11-21T14:13:33.629+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>mb_send_mailで文字化けが発生する</title><content type='html'>大体、mb_send_mailは文字化けがおきてしまい、使い勝手が悪い。&lt;br /&gt;mail関数に適切なエンコードを施して送信した方が、具合がいいようだ。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;function jp_mail( $to, $subject, $body, $from){&lt;br /&gt;　　$body     = mb_convert_encoding( $body, "ISO-2022-JP", mb_internal_encoding());&lt;br /&gt;　　$subject  = mb_convert_encoding( $subject, "ISO-2022-JP", mb_internal_encoding());&lt;br /&gt;　　$subject  = mb_encode_mimeheader( $subject, "ISO-2022-JP");&lt;br /&gt;　　$headers  = "From: " . $from . "\r\n";&lt;br /&gt;　　$headers .= "MIME-Version: 1.0\r\n";&lt;br /&gt;　　$headers .= "Content-Type: text/plain; charset=iso-2022-jp\r\n";&lt;br /&gt;　　$headers .= "Content-Transfer-Encoding: 7bit\r\n";&lt;br /&gt;　　$headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";&lt;br /&gt;　　return mail( $to, $subject, $body, $headers);&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7888619811847062606?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7888619811847062606/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7888619811847062606' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7888619811847062606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7888619811847062606'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/11/mbsendmail.html' title='mb_send_mailで文字化けが発生する'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-3238757599762261660</id><published>2008-10-20T19:19:00.002+09:00</published><updated>2008-10-20T19:23:26.359+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><title type='text'>cakephp1.2のRouterでhtml-&gt;linkにprefixがついてしまう</title><content type='html'>様々なブログで説明されている下記の方法では、&lt;br /&gt;html-&gt;linkに"profiles"がついてしまい、なんとも具合が悪い。&lt;br /&gt;&lt;blockquote&gt;Router::connect('/profiles/:controller/:action', array('prefix' =&gt; 'profiles'));&lt;/blockquote&gt;prefixを含まないページのリンクに勝手にprefixが含まれてしまう。&lt;br /&gt;&lt;br /&gt;どうやら、公式マニュアルの日本語訳に不備があったようで（未確認）、&lt;br /&gt;下記のように変更することで、うまくいった。&lt;br /&gt;&lt;blockquote&gt;Router::connect('/profiles/:controller/:action', array('prefix' =&gt; 'profiles', &lt;span style="color: rgb(255, 0, 0);"&gt;'profiles' =&gt; true&lt;/span&gt;));&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-3238757599762261660?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/3238757599762261660/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=3238757599762261660' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/3238757599762261660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/3238757599762261660'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/10/cakephprouterhtml-linkprefix.html' title='cakephp1.2のRouterでhtml-&gt;linkにprefixがついてしまう'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-2555976854554484358</id><published>2008-10-20T19:12:00.003+09:00</published><updated>2008-10-20T19:15:47.173+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><title type='text'>cakephp1.2のbake</title><content type='html'>cakephp1.2のbakeで、いろいろなブログの記事を参考にしてうまくいかないことが多いので、&lt;br /&gt;一番確実な方法を。&lt;br /&gt;&lt;blockquote&gt;[root@localhost ~]# cd [cakephpインストールディレクトリ]/cake/console&lt;br /&gt;[root@localhost ~]# /usr/bin/php cake.php bake&lt;/blockquote&gt;これで大体うまくいく。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-2555976854554484358?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/2555976854554484358/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=2555976854554484358' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2555976854554484358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2555976854554484358'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/10/cakephp12bake.html' title='cakephp1.2のbake'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-4284197750412869358</id><published>2008-10-07T10:35:00.000+09:00</published><updated>2008-10-07T10:36:59.350+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQLにて、遅いクエリ（slow query）をログに保存する方法。</title><content type='html'>MySQLにて、遅いクエリ（slow query）をログに保存する方法。&lt;br /&gt;&lt;br /&gt;なんか、最近MySQL遅いな。とかいった場合には、slow queryをログにためておくことで、原因の究明に役立つ。&lt;br /&gt;&lt;br /&gt;このログを有効にするには、my.cnfの[mysqld]に以下の記述をします。&lt;br /&gt;&lt;blockquote&gt;log-slow-queries=/var/log/mysqld-slow.log&lt;br /&gt;ログファイルを書き出す場所。&lt;br /&gt;&lt;br /&gt;long-query-time=5&lt;br /&gt;ログに書き出す秒数。この時間以上かかったQueryを記録します。&lt;/blockquote&gt;記述が終わったら、MySQLの再起動を忘れずに。&lt;br /&gt;&lt;blockquote&gt;[root@localhost ~]# service mysqld restart&lt;/blockquote&gt;logrotateも忘れずに。&lt;br /&gt;&lt;blockquote&gt;[root@localhost ~]# vi /etc/logrotate.d/mysqld-slow.log&lt;br /&gt;/var/log/mysqld-slow.log {&lt;br /&gt;weekly&lt;br /&gt;nocompress&lt;br /&gt;missingok&lt;br /&gt;}&lt;/blockquote&gt;なめてるとこう↓なります。&lt;br /&gt;&lt;a href="http://life1204.blogspot.com/2008/09/phpsession.html"&gt;phpでsessionのエラー、一時ファイルが書き込めない。&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-4284197750412869358?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/4284197750412869358/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=4284197750412869358' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/4284197750412869358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/4284197750412869358'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/10/mysqlslow-query.html' title='MySQLにて、遅いクエリ（slow query）をログに保存する方法。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-341725073079431961</id><published>2008-09-24T13:59:00.004+09:00</published><updated>2008-11-21T14:14:42.843+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>phpでsessionのエラー、一時ファイルが書き込めない。</title><content type='html'>phpでこんなエラー。&lt;br /&gt;session管理ができなく、サービスが提供できない最悪な状況。&lt;br /&gt;&lt;blockquote&gt;Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0&lt;br /&gt;Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0&lt;/blockquote&gt;パーティションの空き容量が無い状態になっていた。&lt;br /&gt;&lt;blockquote&gt;[root@www ~]# df&lt;br /&gt;Filesystem           1K-blocks      Used Available Use% Mounted on&lt;br /&gt;/dev/sda3            149260480 139074300   2481808  99% /&lt;br /&gt;/dev/sda1               101086     12903     82964  14% /boot&lt;br /&gt;tmpfs                   500952         0    500952   0% /dev/shm&lt;/blockquote&gt;容量が大きくなっているディレクトリを見つける。&lt;br /&gt;&lt;blockquote&gt;[root@www ~]# du -h | grep [0-9]G&lt;/blockquote&gt;→ログファイルがヤバイ。&lt;br /&gt;&lt;blockquote&gt;[root@www ~]# ls -l /var/log&lt;/blockquote&gt;取り合えず、該当のファイルを削除してしまう。&lt;br /&gt;&lt;blockquote&gt;[root@www ~]# rm -f [ファイル名]&lt;/blockquote&gt;もうこんなことがおきてはいけないので、logrotateを見直す。&lt;br /&gt;&lt;br /&gt;logrotateの設定ファイルを確認&lt;br /&gt;&lt;blockquote&gt;[root@localhost ~]# locate logrotate.conf&lt;br /&gt;/etc/logrotate.conf&lt;br /&gt;[root@localhost ~]# cat /etc/logrotate.conf | grep include&lt;br /&gt;include /etc/logrotate.d  ←これが設定ファイルの場所。&lt;/blockquote&gt;&lt;blockquote&gt;[root@localhost ~]# ls -l /etc/logrotate.d&lt;br /&gt;total 68&lt;br /&gt;-rw-r--r-- 1 root root  174 Sep 18  2007 httpd&lt;br /&gt;-rw-r--r-- 1 root root  571 Jan 23  2007 mgetty&lt;br /&gt;-rw-r----- 1 root named 163 Dec 20  2007 named&lt;br /&gt;-rw-r--r-- 1 root root  174 Jan 10  2008 pop-before-smtp&lt;br /&gt;-rw-r--r-- 1 root root  329 Apr  5  2007 psacct&lt;br /&gt;-rw-r--r-- 1 root root   61 Oct 12  2007 rpm&lt;br /&gt;-rw-r--r-- 1 root root   68 Aug 14  2007 sa-update&lt;br /&gt;-rw-r--r-- 1 root root  543 Dec  6  2007 squid&lt;br /&gt;-rw-r--r-- 1 root root  228 Jul  9  2001 syslog&lt;br /&gt;-rw-r--r-- 1 root root   48 Aug 23  2006 tux&lt;br /&gt;-rw-r--r-- 1 root root   95 Apr  4  2007 vsftpd.log&lt;br /&gt;-rw-r--r-- 1 root root   89 Dec  6  2007 yum&lt;/blockquote&gt;現在のログと照らし合わせ、足りないlogrotateの設定を追加する。&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;[root@localhost ~]# vi /etc/logrotate.d/xferlog&lt;br /&gt;/var/log/xferlog {&lt;br /&gt;  weekly&lt;br /&gt;  nocompress&lt;br /&gt;  missingok&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;{}内に設定値を記述することで、様々な設定を行える。&lt;br /&gt;&lt;a href="http://cyberam.dip.jp/linux_foundation/systemlog/logrotate_main.html"&gt;⇒logrotateの設定値の参考&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="table_column_title" width="30%"&gt;&lt;span style="font-size:85%;"&gt;設定値&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_column_title" width="70%"&gt;&lt;span style="font-size:85%;"&gt;説明&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;compress&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ローテーションされたログをgzipで圧縮する。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;create [&lt;/span&gt;&lt;span class="font_size_80"  style="font-size:85%;"&gt;パーミッション&lt;/span&gt;&lt;span style="font-size:85%;"&gt;] [&lt;/span&gt;&lt;span class="font_size_80"  style="font-size:85%;"&gt;ユーザ名&lt;/span&gt;&lt;span style="font-size:85%;"&gt;] [&lt;/span&gt;&lt;span class="font_size_80"  style="font-size:85%;"&gt;グループ名&lt;/span&gt;&lt;span style="font-size:85%;"&gt;]&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ローテーション後に新たな空のログファイルを作成します。ファイルのパーミッション、ユーザ名、グループ名を指定できます。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;daily&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;毎日ログローテーションする。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;ifempty&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ログファイルが空でもローテーションする。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;missingok&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ログファイルが存在しなくてもエラーを出さない。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;monthly&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;毎月ログローテーションする。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;nocompress&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ローテーションされたログを圧縮しない。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;nocreate&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;新たな空のログファイルを作成しない。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;nomissingok&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ログファイルが存在しない場合エラーを出す。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;noolddir&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ローテーション対象のログと同じディレクトリにローテーションされたログを格納する。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;notifempty&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ログファイルが空ならローテーションしない。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;olddir &lt;/span&gt;&lt;span class="font_size_80"  style="font-size:85%;"&gt;ディレクトリ名&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;指定したディレクトリ内にローテーションされたログを格納する。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;postrotate - endscript&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;prerotate - endscript&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;postrotateとendscriptの間に記述されたコマンドをログローテーション前に実行する。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;rotate &lt;/span&gt;&lt;span class="font_size_80"  style="font-size:85%;"&gt;回数&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;指定した回数だけローテーションする。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;size &lt;/span&gt;&lt;span class="font_size_80"  style="font-size:85%;"&gt;ファイルサイズ&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;ログファイルが指定したファイルサイズ以上であればローテーションする。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;sharedscripts&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;複数指定したログファイルに対してpostrotateまたはprerotateで記述されたコマンドを実行する。&lt;/span&gt;&lt;/td&gt;      &lt;/tr&gt;      &lt;tr&gt;       &lt;td class="table_first_row"&gt;&lt;span style="font-size:85%;"&gt;weekly&lt;/span&gt;&lt;/td&gt;       &lt;td class="table_data"&gt;&lt;span style="font-size:85%;"&gt;毎週ログローテーションする。&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;設定ファイルにミスがないか確認&lt;br /&gt;&lt;blockquote&gt;[root@localhost ~]# logrotate -dv /etc/logrotate.d/xferlog&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-341725073079431961?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/341725073079431961/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=341725073079431961' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/341725073079431961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/341725073079431961'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/09/phpsession.html' title='phpでsessionのエラー、一時ファイルが書き込めない。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-8777910809137948853</id><published>2008-08-22T12:20:00.003+09:00</published><updated>2008-08-22T12:28:40.496+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQLにて大量のデータのDELETEが重い。</title><content type='html'>MySQLにて大量のデータのDELETEが重い。&lt;br /&gt;&lt;br /&gt;下記は実際の例。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;mysql&gt; describe `tableName`;&lt;br /&gt;+-------------+--------------+------+-----+&lt;br /&gt;| Field       | Type         | Null | Key |&lt;br /&gt;+-------------+--------------+------+-----+&lt;br /&gt;| url         | varchar(255) | NO   | PRI |&lt;br /&gt;| cookie      | varchar(255) | NO   | MUL |&lt;br /&gt;| user_agent  | varchar(255) | NO   | MUL |&lt;br /&gt;| http_header | text         | NO   |     |&lt;br /&gt;| html        | mediumblob   | NO   |     |&lt;br /&gt;| created     | datetime     | NO   | MUL |&lt;br /&gt;| deleted     | datetime     | NO   | MUL |&lt;br /&gt;+-------------+--------------+------+-----+&lt;br /&gt;7 rows in set (0.02 sec)&lt;br /&gt;&lt;br /&gt;mysql&gt; select count(*) from `tableName`;&lt;br /&gt;+----------+&lt;br /&gt;| count(*) |&lt;br /&gt;+----------+&lt;br /&gt;|   164252 | &lt;br /&gt;+----------+&lt;br /&gt;1 row in set (0.00 sec)&lt;br /&gt;&lt;br /&gt;mysql&gt; select count(*) from `tableName`&lt;br /&gt;       where url like 'http://www.google.co.jp/%';&lt;br /&gt;+----------+&lt;br /&gt;| count(*) |&lt;br /&gt;+----------+&lt;br /&gt;|    22053 | &lt;br /&gt;+----------+&lt;br /&gt;1 row in set (6.23 sec)&lt;br /&gt;&lt;br /&gt;mysql&gt; delete from `tableName`&lt;br /&gt;       where url like 'http://www.google.co.jp/%';&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;・・・・・・・・・終わらない。。。&lt;br /&gt;&lt;br /&gt;キャッシュのようなデータなので結局これで対応した。&lt;br /&gt;&lt;br /&gt;mysql&gt; TRUNCATE TABLE `tableName`;&lt;br /&gt;Query OK, 0 rows affected (3.72 sec)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;でも、一気に消せないデータならどう対応すればいいのだろう。&lt;/span&gt;&lt;br /&gt;いろいろ調べて有用そうなものを・・。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・where節の「like」の代わりに「REGEXP」が使えないか検討&lt;/span&gt;&lt;br /&gt;　（試してみたけど、likeの方が場合によっては数倍早い）&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・パーティショニング（パーティション）の使用&lt;/span&gt;&lt;br /&gt;　&lt;a href="http://dev.mysql.com/doc/refman/5.1/ja/partitioning.html"&gt;http://dev.mysql.com/doc/refman/5.1/ja/partitioning.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・インデックスキャッシュ（KEY_BUFFER_SIZE）のサイズを拡大する&lt;/span&gt;&lt;br /&gt;　&lt;a href="http://dev.mysql.com/doc/refman/4.1/ja/server-parameters.html"&gt;http://dev.mysql.com/doc/refman/4.1/ja/server-parameters.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・TRUNCATE TABLE できないような仕様を控える&lt;/span&gt;&lt;br /&gt;　これが最適だと思った。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-8777910809137948853?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/8777910809137948853/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=8777910809137948853' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8777910809137948853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8777910809137948853'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/08/mysqldelete.html' title='MySQLにて大量のデータのDELETEが重い。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7991858455112846340</id><published>2008-08-11T16:26:00.002+09:00</published><updated>2008-08-11T16:43:21.731+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Api'/><category scheme='http://www.blogger.com/atom/ns#' term='WEBサービス'/><title type='text'>使い勝手の良いサイトのサムネイル作成サービスまとめ</title><content type='html'>URLを指定するだけで簡単にサイトのサムネイルを作成してくれる便利なサービスが多々ある。&lt;br /&gt;有名どころをまとめて紹介。&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://mozshot.nemui.org/"&gt;MozShot&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;作成されるサムネイルが美しく、かなり使い勝手が良い。&lt;br /&gt;作成できるサイズは3種類。&lt;br /&gt;たまにサーバーが落ちるのがもったいない。&lt;br /&gt;（最近は安定してきたかも）&lt;br /&gt;&lt;br /&gt;&lt;div class="reqimages"&gt;   &lt;a href="http://life1204.blogspot.com/"&gt;&lt;img src="http://mozshot.nemui.org/shot/small?http://life1204.blogspot.com/" alt="" title="ScreenShot 64x64" height="64" width="64" /&gt;&lt;/a&gt;   &lt;a href="http://life1204.blogspot.com/"&gt;&lt;img src="http://mozshot.nemui.org/shot?http://life1204.blogspot.com/" alt="" title="ScreenShot 128x128" height="128" width="128" /&gt;&lt;/a&gt;   &lt;a href="http://life1204.blogspot.com/"&gt;&lt;img src="http://mozshot.nemui.org/shot/large?http://life1204.blogspot.com/" alt="" title="ScreenShot 256x256" height="256" width="256" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img.simpleapi.net/"&gt;&lt;span style="font-weight: bold;"&gt;SimpleAPI&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;デザインはMozShotほどの洗練されていないが、&lt;br /&gt;安定していて無難な選択肢。&lt;br /&gt;サイズは一種類なのかな？&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://life1204.blogspot.com/"&gt;&lt;img src="http://img.simpleapi.net/small/http://life1204.blogspot.com/" alt="" border="0" height="128" width="128" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://capture.heartrails.com/"&gt;&lt;span style="font-weight: bold;"&gt;HeartRails Capture&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;かなり細かく作成する画像を設定できるのがイイ。&lt;br /&gt;縦長サイトをキャプチャーできるのが利点。&lt;br /&gt;&lt;br /&gt;&lt;div id="freesize_image" style="background-color: rgb(255, 255, 255);"&gt;&lt;a href="http://life1204.blogspot.com/"&gt;&lt;img title="&amp;quot;42&amp;quot;" src="http://capture.heartrails.com/free/1218440382669?http://life1204.blogspot.com/" alt="http://life1204.blogspot.com/" height="300" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;個人的にはMozshotが一番オススメ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7991858455112846340?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7991858455112846340/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7991858455112846340' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7991858455112846340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7991858455112846340'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/08/blog-post.html' title='使い勝手の良いサイトのサムネイル作成サービスまとめ'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-8882775843282482068</id><published>2008-08-11T16:21:00.002+09:00</published><updated>2008-08-11T16:25:30.256+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>jQuery.jsとprototype.jsの共存</title><content type='html'>jQuery.jsとprototype.jsを同時に使用したい場合、&lt;br /&gt;ショートカットの関数名（＄）がかぶってしまいうまく動作しない。&lt;br /&gt;&lt;br /&gt;そんなときは、コンフリクトを宣言する。&lt;br /&gt;&lt;blockquote&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;　　jQuery.noConflict();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/blockquote&gt;でjQueryの関数名を「jQuery」に変更できる。&lt;br /&gt;&lt;blockquote&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;　　この部分.noConflict();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/blockquote&gt;上記のように「この部分」を任意に変更することができる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-8882775843282482068?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/8882775843282482068/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=8882775843282482068' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8882775843282482068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8882775843282482068'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/08/jqueryjsprototypejs.html' title='jQuery.jsとprototype.jsの共存'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-5427620086007673801</id><published>2008-07-30T10:52:00.000+09:00</published><updated>2008-07-30T10:55:00.323+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>my.cnfが無視される場合の対処。</title><content type='html'>下記のようなエラーが出て、my.cnfが反映されない。&lt;br /&gt;&lt;blockquote&gt;Warning: World-writable config file '/etc/my.cnf' is ignored&lt;/blockquote&gt;&lt;br /&gt;そんなときは、&lt;br /&gt;&lt;blockquote&gt;chmod 664 /etc/my.cnf&lt;/blockquote&gt;&lt;br /&gt;これでオッケー&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-5427620086007673801?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/5427620086007673801/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=5427620086007673801' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/5427620086007673801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/5427620086007673801'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/mycnf.html' title='my.cnfが無視される場合の対処。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-1092118779753934350</id><published>2008-07-29T18:29:00.003+09:00</published><updated>2008-07-29T18:41:37.767+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CakePHP'/><title type='text'>CakePHPで日本語メールの送信</title><content type='html'>優秀なコンポーネントを公開している方がいた。&lt;br /&gt;&lt;a href="http://hal456.net/qdmail/cakebase"&gt;Qdmail - PHP::Mail Library&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;セットアップ方法&lt;/span&gt;&lt;br /&gt;通常のCakePHPコンポーネントと同じです。&lt;br /&gt;次のディレクトリに qdmail.php ファイルをコピーしてください。&lt;br /&gt;&lt;blockquote&gt;app/controllers/components/&lt;/blockquote&gt;&lt;br /&gt;使用したいコントローラーで、以下のプロパティの宣言を行ってください。&lt;br /&gt;&lt;blockquote&gt;var $components=array( "Qdmail" );&lt;/blockquote&gt;以上でセットアップは完了。&lt;br /&gt;実際に送信するには以下のようにする。&lt;br /&gt;&lt;blockquote&gt;$this-&gt;Qdmail-&gt;to( 'address@example.com' , '日本語名' );&lt;br /&gt;$this-&gt;Qdmail-&gt;subject('Qdmail on CakePHP メールのテスト');&lt;br /&gt;$this-&gt;Qdmail-&gt;from('from@example.com' , '配信元日本語名' );&lt;br /&gt;$this-&gt;Qdmail -&gt;text( '本文をここにかきます' );&lt;br /&gt;$this-&gt;Qdmail -&gt;send();&lt;/blockquote&gt;なんの問題もなく、快適に動作しました。&lt;br /&gt;すばらしかー。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hal456.net/qdmail/downloads"&gt;Qdmail ダウンロード&lt;/a&gt;&lt;br /&gt;ライセンスは改変、再配布、商用利用は自由に行えるMIT Licese。&lt;br /&gt;（2008.7.29現在）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-1092118779753934350?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/1092118779753934350/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=1092118779753934350' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/1092118779753934350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/1092118779753934350'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/cakephp.html' title='CakePHPで日本語メールの送信'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7449123125484087505</id><published>2008-07-29T13:23:00.002+09:00</published><updated>2008-07-29T13:34:00.157+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQLのテーブルが壊れたときの修復方法。</title><content type='html'>いつものようにmysqlにログインし、&lt;br /&gt;負荷の原因になっていそうなテーブルにたいして、&lt;br /&gt;&lt;blockquote&gt;describe tableName;&lt;/blockquote&gt;すると、下記のようなエラー・・・。&lt;br /&gt;&lt;blockquote&gt;ERROR 144 (HY000): Table './database/table' is marked as crashed and last (automatic?) repair failed&lt;/blockquote&gt;ここが分かりやすかった。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dev.mysql.com/doc/refman/4.1/ja/repair.html"&gt;MySQL 4.1 リファレンスマニュアル：テーブルの修復方法&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;表示されたエラーコードによって、対応の仕方が違う。&lt;pre class="programlisting"&gt;&lt;blockquote&gt;126 = Index file is crashed / Wrong file format&lt;br /&gt;127 = Record-file is crashed&lt;br /&gt;132 = Old database file&lt;br /&gt;134 = Record was already deleted (or record file crashed)&lt;br /&gt;135 = No more room in record file&lt;br /&gt;136 = No more room in index file&lt;br /&gt;141 = Duplicate unique key or constraint on write or update&lt;br /&gt;144 = Table is crashed and last repair failed&lt;br /&gt;145 = Table was marked as crashed and should be repaired&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;135,136の場合は、&lt;br /&gt;&lt;blockquote&gt;ALTER TABLE table MAX_ROWS=xxx AVG_ROW_LENGTH=yyy;&lt;/blockquote&gt;&lt;br /&gt;が有効。&lt;br /&gt;&lt;br /&gt;その他のエラーは、&lt;br /&gt;&lt;blockquote&gt;REPAIR TABLE tableName;&lt;/blockquote&gt;&lt;br /&gt;これで直らなければ、少々厄介なことに・・・。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7449123125484087505?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7449123125484087505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7449123125484087505' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7449123125484087505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7449123125484087505'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/mysql_29.html' title='MySQLのテーブルが壊れたときの修復方法。'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-2160503576527961361</id><published>2008-07-22T18:45:00.002+09:00</published><updated>2008-07-22T18:50:41.085+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><title type='text'>あるキーワードでのセッション数がわかるツール</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_kWXLolmfRVc/SIWtXxRNoII/AAAAAAAAABs/885Er3kbRE0/s1600-h/FireShot+capture+%2389+-+%27%E7%AD%94%E3%81%88%E3%82%92%E5%B0%8E%E3%81%8F%E3%80%81SEO%E3%83%84%E3%83%BC%E3%83%AB%E3%80%80%5Bspoool+seo-suite%5D%27+-+www_seo-suite_jp.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_kWXLolmfRVc/SIWtXxRNoII/AAAAAAAAABs/885Er3kbRE0/s400/FireShot+capture+%2389+-+%27%E7%AD%94%E3%81%88%E3%82%92%E5%B0%8E%E3%81%8F%E3%80%81SEO%E3%83%84%E3%83%BC%E3%83%AB%E3%80%80%5Bspoool+seo-suite%5D%27+-+www_seo-suite_jp.jpg" alt="" id="BLOGGER_PHOTO_ID_5225773566507458690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;あるキーワードで上位表示されたとき、どれくらいアクセスがあるの？&lt;br /&gt;とか、いままではこう答えるしかなかった。&lt;br /&gt;「キーワードによってまったく違いますので・・・」&lt;br /&gt;&lt;br /&gt;このツール、ある意味これからの標準になりえるんじゃないだろうか。&lt;br /&gt;精度は未知数。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.seo-suite.jp/user/index.php?mod=keyword_advice&amp;amp;oid=SMP_00003"&gt;株式会社spoool:キーワード集客力チェックツール&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-2160503576527961361?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/2160503576527961361/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=2160503576527961361' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2160503576527961361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/2160503576527961361'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/blog-post_22.html' title='あるキーワードでのセッション数がわかるツール'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_kWXLolmfRVc/SIWtXxRNoII/AAAAAAAAABs/885Er3kbRE0/s72-c/FireShot+capture+%2389+-+%27%E7%AD%94%E3%81%88%E3%82%92%E5%B0%8E%E3%81%8F%E3%80%81SEO%E3%83%84%E3%83%BC%E3%83%AB%E3%80%80%5Bspoool+seo-suite%5D%27+-+www_seo-suite_jp.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-8004092299785897695</id><published>2008-07-17T12:27:00.002+09:00</published><updated>2008-07-17T12:33:56.917+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>MacのGrowlのような通知をWEBで実現する</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_kWXLolmfRVc/SH69TLsrcAI/AAAAAAAAABM/tVsnJ6KEkqs/s1600-h/FireShot+capture+%2388+-+%27stanlemon_net+_+jgrowl%27+-+stanlemon_net_projects_jgrowl_html.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_kWXLolmfRVc/SH69TLsrcAI/AAAAAAAAABM/tVsnJ6KEkqs/s400/FireShot+capture+%2388+-+%27stanlemon_net+_+jgrowl%27+-+stanlemon_net_projects_jgrowl_html.jpg" alt="" id="BLOGGER_PHOTO_ID_5223820755051704322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;MacのGrowlのような通知をWEBで実現するjQueryプラグイン。&lt;br /&gt;jGrowl：&lt;a href="http://stanlemon.net/projects/jgrowl.html"&gt;http://stanlemon.net/projects/jgrowl.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ものすごくコードがシンプルで、使いやすそう。&lt;br /&gt;&lt;blockquote&gt;$.jGrowl("Hello world!");&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-8004092299785897695?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/8004092299785897695/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=8004092299785897695' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8004092299785897695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/8004092299785897695'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/macgrowlweb.html' title='MacのGrowlのような通知をWEBで実現する'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_kWXLolmfRVc/SH69TLsrcAI/AAAAAAAAABM/tVsnJ6KEkqs/s72-c/FireShot+capture+%2388+-+%27stanlemon_net+_+jgrowl%27+-+stanlemon_net_projects_jgrowl_html.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-3305437918012360914</id><published>2008-07-15T16:43:00.003+09:00</published><updated>2008-07-15T16:55:30.539+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Api'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google AJAX Search APIにサーバーサイドスクリプトで取得できるものができてる</title><content type='html'>&lt;a href="http://code.google.com/intl/ja/apis/ajaxsearch/documentation/#fonje"&gt;Google AJAX Search API：Flash やその他 JavaScript を使用しない環境&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;以前まで、上記のAPIはAJAXなどで使用することを前提で作られていて、&lt;br /&gt;phpなどの言語では扱えなかった（づらかった？）。&lt;br /&gt;&lt;br /&gt;Googleが最近、リクエストの制限を強化したようで、いろいろなSEOツールでデータが取得できないという、不具合が発生している模様。&lt;br /&gt;&lt;br /&gt;このAPIで万事解決！かと思いきや、なんと検索結果が32件までしか取れない…。&lt;br /&gt;つかえねえ。&lt;br /&gt;&lt;br /&gt;簡単なphpコードは以下にメモ。&lt;br /&gt;&lt;blockquote&gt;&amp;lt;?php&lt;br /&gt;$q = urlencode( &amp;quot;テスト&amp;quot;);&lt;br /&gt;&lt;br /&gt;for( $i = 0; $i &amp;lt; 100; $i += 8){&lt;br /&gt;　　$url = &amp;quot;http://ajax.googleapis.com/ajax/services/search/web?v=1.0&amp;amp;q={$q}&amp;amp;rsz=large&amp;amp;hl=ja&amp;amp;start={$i}&amp;quot;;&lt;br /&gt;　　$jsonText = file_get_contents( $url);&lt;br /&gt;　　$jsonDec  = json_decode( $jsonText);&lt;br /&gt;　　echo &amp;quot;{$url}&amp;lt;br /&amp;gt;\n&amp;quot;;&lt;br /&gt;　　if( is_array( $jsonDec-&amp;gt;responseData-&amp;gt;results)){&lt;br /&gt;　　　　foreach( $jsonDec-&amp;gt;responseData-&amp;gt;results as $key =&amp;gt; $value){&lt;br /&gt;　　　　　　echo ($i+1+$key) . '　:　' . $value-&amp;gt;title . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;　　　　}&lt;br /&gt;　　}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;/blockquote&gt;そのうちなんか作ってみるか。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-3305437918012360914?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/3305437918012360914/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=3305437918012360914' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/3305437918012360914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/3305437918012360914'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/google-ajax-search-api.html' title='Google AJAX Search APIにサーバーサイドスクリプトで取得できるものができてる'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-297694521941137862</id><published>2008-07-15T13:32:00.002+09:00</published><updated>2008-07-15T13:51:34.590+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Jquery1.2.6を使用した、Ajaxの超基本サンプル</title><content type='html'>&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"&lt;br /&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Jquery Ajax Test&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="./jquery-1.2.6.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;button type="button" id="button1"&amp;gt;取得&amp;lt;/button&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="result"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;$('#button1').click( function(){&lt;br /&gt;　　$.ajax({&lt;br /&gt;　　　　url: 'text.txt',&lt;br /&gt;　　　　type: 'GET',&lt;br /&gt;　　　　dataType: 'text',&lt;br /&gt;　　　　timeout: 1000,&lt;br /&gt;　　　　error: function(){&lt;br /&gt;　　　　　　$( "#result").html( "読み込み失敗");&lt;br /&gt;　　　　},&lt;br /&gt;　　　　success: function( getResult){&lt;br /&gt;　　　　　　$( "#result").html( getResult);&lt;br /&gt;　　　　}&lt;br /&gt;　　});&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;jQuery: &lt;a href="http://jquery.com/"&gt;http://jquery.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-297694521941137862?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/297694521941137862/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=297694521941137862' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/297694521941137862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/297694521941137862'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/jquery126ajax.html' title='Jquery1.2.6を使用した、Ajaxの超基本サンプル'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7686781034044919306</id><published>2008-07-14T16:53:00.002+09:00</published><updated>2008-07-14T17:05:41.770+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='ネタ'/><title type='text'>売る気が感じられない</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_kWXLolmfRVc/SHsGN13o9GI/AAAAAAAAAAY/yZmuuW7suJk/s1600-h/33067012_138.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_kWXLolmfRVc/SHsGN13o9GI/AAAAAAAAAAY/yZmuuW7suJk/s400/33067012_138.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5222775027734738018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;これはないわ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7686781034044919306?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7686781034044919306/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7686781034044919306' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7686781034044919306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7686781034044919306'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/blog-post.html' title='売る気が感じられない'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_kWXLolmfRVc/SHsGN13o9GI/AAAAAAAAAAY/yZmuuW7suJk/s72-c/33067012_138.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7581688419744410525</id><published>2008-07-14T16:17:00.011+09:00</published><updated>2008-07-14T16:40:20.609+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>mb_convert_kana()で全角半角などが変換できない</title><content type='html'>&lt;span style="font-size:100%;"&gt;取引先に聞かれた。&lt;br /&gt;大体の場合、&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;mb_internal_encoding( &lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;をファイルの先頭に記述すると直ったりする。&lt;br /&gt;&lt;br /&gt;もしくは、&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$str = mb_convert_kana($str, "KVC");&lt;br /&gt;　　　　　　　　↓&lt;br /&gt;$str = mb_convert_kana($str, "KVC", &lt;span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;で正常に変換できるようになる。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7581688419744410525?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7581688419744410525/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7581688419744410525' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7581688419744410525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7581688419744410525'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/mbconvertkana.html' title='mb_convert_kana()で全角半角などが変換できない'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3972794581124081153.post-7036892643079529821</id><published>2008-07-14T12:43:00.007+09:00</published><updated>2008-07-14T16:33:06.085+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQLのロールバック機能</title><content type='html'>テーブル形式は「InnoDB」がイイっぽい。&lt;br /&gt;デフォルトでは「MyISAM」なので、&lt;br /&gt;&lt;br /&gt; &lt;blockquote&gt;CREATE TABLE tableName (&lt;br /&gt; 　　id varchar(4),&lt;br /&gt; 　　name varchar(50),&lt;br /&gt; 　　PRIMARY KEY(id)&lt;br /&gt; ) &lt;span style="color: rgb(255, 0, 0);"&gt;TYPE=InnoDB&lt;/span&gt;;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;のような感じで、指定する。&lt;br /&gt;既存のテーブルの変更は&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; ALTER TABLE tableName TYPE=InnoDB;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ロールバックでもどす箇所は明示的に示す。&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; START TRANSACTION;&lt;br /&gt; か&lt;br /&gt; BEGIN;&lt;br /&gt; か&lt;br /&gt; BEGIN WORK;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;そのあと、テーブル操作をごにょごにょやって、&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; COMMIT; (OK)&lt;br /&gt; ROLLBACK; (戻す)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;PHPでの分かりやすいサンプルがあったので、以下にメモ&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; require_once( "db.php" );&lt;br /&gt; $SQL = new DB();&lt;br /&gt; $SQL-&gt;Execute( "BEGIN" );&lt;br /&gt; $Query = "UPDATE 商品マスタ SET 単価 = 1234 where コード = '0001'";&lt;br /&gt; $ret = $SQL-&gt;Execute( $Query );&lt;br /&gt; if ( !$ret ) {&lt;br /&gt; 　　$SQL-&gt;Execute( "ROLLBACK" );&lt;br /&gt; }else {&lt;br /&gt; 　　$SQL-&gt;Execute( "COMMIT" );&lt;br /&gt; }&lt;br /&gt; $SQL-&gt;Close();&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3972794581124081153-7036892643079529821?l=life1204.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://life1204.blogspot.com/feeds/7036892643079529821/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3972794581124081153&amp;postID=7036892643079529821' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7036892643079529821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3972794581124081153/posts/default/7036892643079529821'/><link rel='alternate' type='text/html' href='http://life1204.blogspot.com/2008/07/mysql.html' title='MySQLのロールバック機能'/><author><name>mikuta</name><uri>http://www.blogger.com/profile/12461041156549753766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_kWXLolmfRVc/SHqtcQ_2reI/AAAAAAAAAAM/M18vPQgnNmw/S220/493373_2829627839.jpg'/></author><thr:total>0</thr:total></entry></feed>
