<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>S-MEMO（エスメモ）</title>
      <link>http://www.s-memo.net/blog/</link>
      <description>WEB技術に関する情報ブログ</description>
      <language>ja</language>
      <copyright>Copyright 2010</copyright>
      <lastBuildDate>Wed, 30 May 2007 06:43:34 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.2-ja-2</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>web creators 7月号が発売されました</title>
         <description><![CDATA[<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=smemo07-22&o=9&p=8&l=as1&asins=B000QGE9BO&fc1=000000&IS2=1&lt1=_blank&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px; padding:10px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" align="right"></iframe>

大変ありがたいことに<a href="http://h2o-space.com/" target="_blank">株式会社エイチツーオー・スペース</a>様のご協力の下、web creators 7月号に執筆させて頂きました。
私が担当させて頂いた部分はガジェット・ウィジェット特集のYahoo!ウィジェット「CPUチェッカー」「インターネット写真立て」の２つです。CPUチェッカーはCPU使用率をリアルタイムで表示するというオードソックスなウィジェット制作方法を紹介しています。インターネット写真立てはWeb上にある写真をウィジェットで表示させる方法を紹介しています。
Yahoo!ウィジェット以外にもVistaのサイドバーガジェットやGoogleガジェット等の紹介もしているので、ウィジェットやガジェットに興味のある方は買って損はないです。
是非、参考にしてみてください。全国書店やAmazonで購入できます。

余談）以前（2月号）にも執筆させて頂いたのですが、書き忘れてました。。。



]]></description>
         <link>http://www.s-memo.net/blog/2007/05/web_creators_7_1.php</link>
         <guid>http://www.s-memo.net/blog/2007/05/web_creators_7_1.php</guid>
         <category>メモ帳</category>
         <pubDate>Wed, 30 May 2007 06:43:34 +0900</pubDate>
      </item>
            <item>
         <title>WindowsでApolloをインストールしてみよう（開発環境を作ってみよう）</title>
         <description>GoogleガジェットやYahooウィジェットの勉強をしているのですが、もう一つ興味があるのはApollo。いろいろな噂があったものの不明な点も多数ありましたが、遂に2007年3月19日にApolloのAlpha版がリリースされました。Apolloの情報を見てみると色々なことができるので私も含めてプログラマーの方々は興味津々だと思います。
HTML版ではテキスト入力で日本語が使えないなどまだまだこれからかなぁっと感じますが、FlashやPDFとの連携ができるみたいなのでこれからが楽しみです。
ということで、今日はApolloのインストール（開発環境の作り方）を紹介します。
</description>
         <link>http://www.s-memo.net/blog/2007/04/apollo.php</link>
         <guid>http://www.s-memo.net/blog/2007/04/apollo.php</guid>
         <category>ガジェット・ウィジェット</category>
         <pubDate>Sat, 14 Apr 2007 01:10:13 +0900</pubDate>
      </item>
            <item>
         <title>PEAR::Mail_Mimeを使ってHTMLメールを送ってみよう</title>
         <description><![CDATA[前回「<a href="http://www.s-memo.net/blog/2007/03/pearmail_1.php">PEAR::Mailを使ってメールを送信してみよう</a>」でメールの送信について紹介しました。これだけでも結構助かるのですが、便利になると更に欲が出るもので「ファイルを添付したメールを送信できないか？」「HTMLメールを簡単に作れないか？」などを考えます。そんなときにPEAR::MailをサポートしてくれるPEAR::Mail_Mimeという便利な拡張機能があります。
PEAR::Mail_Mimeは添付メールやHTMLメールを簡単に実現できます。
今日はPEAR::Mail_Mimeを紹介します。
]]></description>
         <link>http://www.s-memo.net/blog/2007/03/pearmail_mimehtml.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/pearmail_mimehtml.php</guid>
         <category>PHP - PEAR</category>
         <pubDate>Sun, 25 Mar 2007 16:50:45 +0900</pubDate>
      </item>
            <item>
         <title>PEAR::Mailを使ってメールを送信してみよう</title>
         <description>PHPにはmb_send_mail()関数という日本語を含めたメールを送信する機能がありますがよく文字化けします。PHPの自動エンコーディング機能がうまくいかずに文字化けをするのですが、設定がシビアなので使ってません。例えば、同じサーバーを使っている場合は制作時に気をつければ問題ありませんが、サーバーを移行するようなことがあると新しいサーバーでメールが文字化けしたり結構大変だったりします。
結局send()関数を使うのですが、これで日本語のメールを送信する為には追加メールヘッダを記述する必要があります。mb_send_mail()関数よりはマシですが、これもこれで設定に左右されるので意外と大変。メール送信用の自作関数を作ったものの完璧ではありませんでした。
最終的に落ち着いたのは、PEARのMailです。記述がシンプルな上に自由に設定できて便利。
ということで今回はPEAR::Mailを紹介します。
</description>
         <link>http://www.s-memo.net/blog/2007/03/pearmail_1.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/pearmail_1.php</guid>
         <category>PHP - PEAR</category>
         <pubDate>Sat, 24 Mar 2007 14:06:06 +0900</pubDate>
      </item>
            <item>
         <title>PEARを使ってディレクトリの中身を全削除する</title>
         <description>先週の木・金曜日あたりからずっと貧血気味で調子が悪く、夜型の生活が影響しているのかと思っていたのですがそれだけではありませんでした。原因は野菜不足。。。
最近は自炊する時間もなく外食が多かったのですが、肉ばっかり食べてたもんだから体調を崩したようです＾＾；当たり前だけど野菜はちゃんと食べよう。
さて、そろそろ本題に移ります。
PHPには「rmdir」というディレクトリを削除する関数がありますが、「空ディレクトリ」のみしか削除できずディレクトリ内にファイルが存在した場合、削除することができません。
PHPの標準機能だけを使った場合、再帰処理を使って全てのファイルを「unlink」で削除した後に「rmdir」を実行する必要があります。
今回はPEAR::Systemを使ってディレクトリを完全削除する簡単な方法を紹介します。
</description>
         <link>http://www.s-memo.net/blog/2007/03/pear_3.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/pear_3.php</guid>
         <category>PHP - PEAR</category>
         <pubDate>Mon, 19 Mar 2007 10:41:52 +0900</pubDate>
      </item>
            <item>
         <title>Movable TypeでSitemaps（サイトマッププロトコル）を作ってみよう</title>
         <description><![CDATA[このブログは気が向いたときに書いているのですが、現時点で今月は過去最高のエントリー数になってます。このまま1週間に2,3回は書いていけたらいいなと思ってます。質が落ちてる気がしないでもないのですが、、、
何故、更新頻度が上がったかと言うとアクセスが増えて更新が楽しくなってきたことと、更にアクセス数を「もっと増やしたいなぁ」っと考えたときに更新頻度を上げるのがベストだと思ったからです＾＾；
とは言っても本腰でアクセス数を増やすならもっと情報をPEAR、Ajax等に絞ったほうが良さそうですが、「勉強したことをメモ程度に記録する」というこのサイトの本質から外れるのでしばらくはこのまま行きます。

さてそろそろ本題に入ります。以前に「<a href="http://www.s-memo.net/blog/2006/11/googlesitemaps_1.php">GoogleのSitemaps（サイトマッププロトコル）</a>」の制作方法を紹介しましたが、今回はMovable Typeのテンプレートに記述する方法を紹介します。これを使えば、サイトを更新するたびに自動でSitemapsを作ってくれます。
]]></description>
         <link>http://www.s-memo.net/blog/2007/03/movable_typesitemaps.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/movable_typesitemaps.php</guid>
         <category>メモ帳</category>
         <pubDate>Thu, 15 Mar 2007 09:20:38 +0900</pubDate>
      </item>
            <item>
         <title>MySQLの暗号化をやってみよう</title>
         <description>ここ2週間ぐらい昼と夜が逆転してます。今も夜勤（？）中です。
私の場合、なぜか昼より夜のほうが調子が良いのです。今に始まったことではなく一番古い記憶だと小学校5年生のときには夜型人間だと自覚していて、昔働いていた工場でも夜勤が楽しみで仕方なかった。なぜだろう？
そんな私に友人から一言「確実に体は蝕まれているので気をつけろ」と＾＾；
はい。気をつけます。。。
全く関係のない話から入りましたが、そろそろ本題に入ります。
今日はMySQLの暗号化を紹介します。
</description>
         <link>http://www.s-memo.net/blog/2007/03/mysql_1.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/mysql_1.php</guid>
         <category>MySQL</category>
         <pubDate>Wed, 14 Mar 2007 04:20:14 +0900</pubDate>
      </item>
            <item>
         <title>住所を都道府県・市区郡・それ以下に分けてみよう</title>
         <description><![CDATA[1年程前に「CSVデータをデータベースに一括登録する」をやりました。
その時のお客さんの要望の中に「都道府県」「市区郡」それぞれで検索ができるようにしたいというのがあったのですが、元データが「○○県○○市○○1-2-3」と１つになっていました。
そのままデータベースの中に入れても「都道府県」「市区郡」別に検索することはできそうだったのですが、ほぼ間違いなく動作が重くなるのでデータを分けて登録することにしました。
で、その時に作った関数が以下の通り。
後ほど詳しく書きますが<font color="#FF0000">この関数は完璧ではありません。</font>
また、文字コードはSJISのみです。
<blockquote>/***
 * 住所を都道府県　市区郡　以下住所の３つに分ける
 * SJIS用
 */
function prefCityAddressSplit($value) {
&nbsp;&nbsp;$ret = array();
&nbsp;&nbsp;$search = "^([\x81\x3F-\xFF\xFF]{2,3}[\x93\x73|\x93\xB9|\x95\x7B|\x8C\xA7]{1})"; // 都道府県
&nbsp;&nbsp;$search .= "([\x81\x3F-\xFF\xFF]+[\x8B\xE6|\x8E\x73|\x8C\x53]{1})"; // 市区郡
&nbsp;&nbsp;$search .= "([\x81\x3F-\xFF\xFF|0-9a-zA-Z\-]*)"; // それ以下
&nbsp;&nbsp;if(mb_ereg($search, $value, $string)) {
&nbsp;&nbsp;&nbsp;&nbsp;$ret['pref'] = $string[1]; // 都道府県
&nbsp;&nbsp;&nbsp;&nbsp;$ret['city'] = $string[2]; // 市区郡
&nbsp;&nbsp;&nbsp;&nbsp;$ret['address'] = $string[3];
&nbsp;&nbsp;}
&nbsp;&nbsp;if(count($ret) &lt; 3) return $value;
&nbsp;&nbsp;return $ret;
}</blockquote>
「○○県○○市○○町1-2-3」をprefCityAddressSplit()の中に入れると配列で返してくれます。
住所以外のデータを入れると文字列がそのまま返ってきます。
<blockquote>$address = "○○県○○市○○町1-2-3";
prefCityAddressSplit($address);</blockquote><blockquote>array(3) {
&nbsp;&nbsp;["pref"]=>
&nbsp;&nbsp;string(6) "○○県"
&nbsp;&nbsp;["city"]=>
&nbsp;&nbsp;string(6) "○○市"
&nbsp;&nbsp;["address"]=>
&nbsp;&nbsp;string(11) "○○町1-2-3"
}</blockquote>
データの内容が首都圏内だけのデータでしたのでその時は問題なかったのですが、改めて見てみるとバグ発見。。。
「宮崎県都城市○○○1-2-3」で上記の関数を使うと「<font color="#FF0000">宮崎県</font>」ではなく「<font color="#FF0000">宮崎県都</font>」「城市」「○○○1-2-3」となります＾＾；
せっかくなので、Blogに掲載することにしたのですが、この問題を発見し格闘すること数時間、まだ解決できません。
うーむ、正規表現は便利だけど難しいなぁ。

]]></description>
         <link>http://www.s-memo.net/blog/2007/03/post_2.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/post_2.php</guid>
         <category>メモ帳</category>
         <pubDate>Sun, 11 Mar 2007 06:18:42 +0900</pubDate>
      </item>
            <item>
         <title>PHPでBasic認証のパスワードを作ってみよう</title>
         <description><![CDATA[認証と言えば、Basic認証。
.htaccessと.htpasswdを設置するだけで認証をかけられる手軽さが最大のメリットです。
多分、この記事を見てる方も使ったことのない方はいないのではないでしょうか？
セキュリティは高くないものの「関係者以外に見られても構わないけどURL叩くだけで表示されるのはちょっと。。。」という場合に多く使用します。
今はレンタルサーバーで管理画面などから設置できることがほとんどですが、管理画面から設置できなかったり設置数に制限があったりすることもあります。
そこで自分で作って設置するのですが、Basic認証（.htaccess）を設置するには.htaccessにパスワードの設置場所をサーバのルートパスから位置を記述したり、パスワードを自分で作る必要があります。
今回はそんなときに役立つPHPの関数を紹介します。

[追記 2007/03/11]
Basic認証作成プログラムを作りました。htaccessを丸ごと作ったりパスワードだけを作ったりするBasic認証作成の支援プログラムです。ご自由にお使いください。
<a href="http://www.s-memo.net/sample/htaccess/index.php">Basic認証作成プログラム</a>]]></description>
         <link>http://www.s-memo.net/blog/2007/03/phpbasic.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/phpbasic.php</guid>
         <category>htaccess</category>
         <pubDate>Sat, 10 Mar 2007 05:00:00 +0900</pubDate>
      </item>
            <item>
         <title>JavaScriptでGETを取得する</title>
         <description>プログラムでURLの引数（GET）を取得する場合、PHPでは「$_GET」や「$_REQUEST」を使いますがJavaScriptではGETを取得する機能はありません。
PHPやPerlなどが使えるサーバであればいいのですが使えない場合、JavaScriptでGETを取得するにはどうしたらよいのでしょうか？
今日はJavaScriptでGETを取得する方法を紹介します。やり方は非常にシンプルでJavaScriptでは「location.search」というURLの「?」以下を取得できるプロパティがあり、それを分解するだけで簡単に使えます。
ただし、URLエンコードされたままなので半角英数以外は使えません。
と、自分で書いて思うのですがあまり使い道はなさそうだなぁ。。。
なぜ書いたかと言うと実際に仕事で使いましたので、次回からすぐに調べられるようにメモ書き程度に書くことにしました＾＾；
</description>
         <link>http://www.s-memo.net/blog/2007/03/javascriptget_1.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/javascriptget_1.php</guid>
         <category>JavaScript - AJAX</category>
         <pubDate>Fri, 09 Mar 2007 23:50:48 +0900</pubDate>
      </item>
            <item>
         <title>マイブーム</title>
         <description><![CDATA[1週間ほど前に本屋で技術の本を探していたら「Googleガジェット-プログラミング入門」という文字が目に入ってきました。
以前からGoogleガジェットやYahoo!ウィジェット等を気にはしていたもののほったらかし状態でした。
何気に手にしたら最後。ハマりました。そのまま衝動買い。
「ガジェット=ミニソフトウェア」とか思っていて、ソフトウェア開発は難しいものだと思い込んでいたのですが、本を見る限りHTMLとJavaScriptの知識があれば問題なさそうです。（実際はそんなに甘くはないのだろうけど＾＾；）
自分のパソコンを自由にカスタマイズできる辺りプログラマ魂に火がつきそうです。
「オリジナルのガジェット作るぞぉぉぉ！」と意気込んでおります。
さて、仕事がおろそかにならないように気をつけなければ、、、

・<a href="http://desktop.google.com/plugins?hl=ja" target="_blank">Googleガジェット</a>
・<a href="http://widgets.yahoo.co.jp/" target="_blank">Yahoo!ウィジェット</a>
]]></description>
         <link>http://www.s-memo.net/blog/2007/03/post.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/post.php</guid>
         <category>メモ帳</category>
         <pubDate>Sun, 04 Mar 2007 05:17:02 +0900</pubDate>
      </item>
            <item>
         <title>Yahoo! UIのイベントリスナー（addListener）を使ってみよう</title>
         <description><![CDATA[つい先日Yahoo! UI Libraryが正式リリースされました。
バージョン0.2からバージョン1.0ではなく、いきなりバージョン2.2に。何故2.2なんだろう。
prototype.jsやjQueryだと機能が物足りない、、、と感じていたのですが正式リリースされたことと私の師匠の勧めもあり、YUIを使ってみました。で、使ってみたら、、、Yahoo! UI Libraryにはまりつつあります＾＾；ほとんどの機能はYahoo! UI Libraryでまかなえます。私はしばらくYahoo! UI Libraryを使ってみようと思います。まあ、浮気性なのでいつ別のフレームワークに移るか分かりませんが。
以前に、<a href="http://www.s-memo.net/blog/2006/12/yahoo_ui.php">Yahoo! UIを使って非同期通信の紹介</a>をさせて頂いたのですが今回はイベントリスナーを紹介します。
リスナーとは、予約機能みたいなものです。「マウスを動かした」「クリックした」「ウィンドウサイズを変更した」「キーボードのキーを押した」などの操作に対してHTMLの中にJavaScriptを埋め込むのが一般的かと思いますが、リスナーを使うとそれらの操作を事前に予約することができます。
]]></description>
         <link>http://www.s-memo.net/blog/2007/03/yahoo_uiaddlistener.php</link>
         <guid>http://www.s-memo.net/blog/2007/03/yahoo_uiaddlistener.php</guid>
         <category>JavaScript - AJAX</category>
         <pubDate>Sun, 04 Mar 2007 04:40:41 +0900</pubDate>
      </item>
            <item>
         <title>使い所の難しいPHPの機能</title>
         <description>PHPを始めて4年ほど経つのですが、4年間でほとんど使ったことのない機能が多数あります。それ以前に使い方を知らなくて雑誌などを見て「こんな使い方・機能があるのか？！」とビックリすることもあります。まあ、マニュアルを見ろって話ですね＾＾；
今日は使い所の難しいPHPの機能を紹介します。
</description>
         <link>http://www.s-memo.net/blog/2007/02/php.php</link>
         <guid>http://www.s-memo.net/blog/2007/02/php.php</guid>
         <category>PHP - 基本情報</category>
         <pubDate>Wed, 14 Feb 2007 01:10:02 +0900</pubDate>
      </item>
            <item>
         <title>PEARを使って、圧縮や解凍をやってみよう</title>
         <description><![CDATA[以前に<a href="http://www.s-memo.net/blog/2006/12/post_1.php">複数ファイルを圧縮してダウンロードする方法（HTTP_DOWNLOAD）</a>を紹介しました。
HTTP_DOWNLOADで複数ファイルを圧縮してダウンロードはできるものの、ファイルの[プロパティ]→[概要]が消える問題がありましたが、今回紹介するFile_Archiveは[概要]が消えずに問題なくダウンロードすることができます。
HTTP_DOWNLOADに関してはその名の通りダウンロード用のプログラムですが、File_Archiveは圧縮・解凍用のプログラムです。
ということで、今回はFIle_Archiveを紹介します。]]></description>
         <link>http://www.s-memo.net/blog/2007/01/pear_2.php</link>
         <guid>http://www.s-memo.net/blog/2007/01/pear_2.php</guid>
         <category>PHP - PEAR</category>
         <pubDate>Sun, 07 Jan 2007 17:28:26 +0900</pubDate>
      </item>
            <item>
         <title>HTML_AJAXを使ってみよう</title>
         <description>今までにAjaxのフレームワークで「Prototype.js」「jQuery」「Yahoo！ UIライブラリ」を紹介してきました。
今回は、PEARのHTML_AJAXの基本的な機能を紹介します。名前の通りPHPでAjaxを使う機能です。
2007年1月6日現在でのヴァージョンは0.5.0(beta版)を使っています。
</description>
         <link>http://www.s-memo.net/blog/2007/01/html_ajax.php</link>
         <guid>http://www.s-memo.net/blog/2007/01/html_ajax.php</guid>
         <category>PHP - PEAR</category>
         <pubDate>Sat, 06 Jan 2007 15:32:41 +0900</pubDate>
      </item>
      
   </channel>
</rss>

