<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>子だぬきの技術習得ノート</title>
        <link>http://www.okushin.co.jp/kodanuki_note/</link>
        <description>WEBシステム開発等で気付いたことなどをまとめていきます。</description>
        <language>ja</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Fri, 09 Jul 2010 10:17:14 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>PDFで文字を埋め込まない時は半角￥がバックスラッシュに変わる</title>
            <description><![CDATA[この前TCPDFというPHPからPDFを出力するライブラリではまったのでメモ。<br />
<a href="http://www.monzen.org/Refdoc/tcpdf/">TCPDFとはこちら</a><br />
こちらのサイトを参考にしてファイルのサイズの関係でフォントを埋め込まないようにして
PDFを出力していたんですが、「半角(￥)がバックスラッシュ(\)」になって出力されてしまいました。<br />
何で・・・？]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/07/pdf.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/07/pdf.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Fri, 09 Jul 2010 10:17:14 +0900</pubDate>
        </item>
        
        <item>
            <title>URLに日本語を渡す時のメモ (encodeURI)</title>
            <description><![CDATA[AjaxでURLにGET情報をつけて渡す時に日本語をエンコードし忘れていたのでメモ。<br />

<pre class="javascript" name="code">
<script type="text/javascript"> 
// 日本語をエンコードしてURLに文字列連結
name = encodeURI('ここにGETに渡す日本語');
url = 'http://www.example.com/search?name=' + name;

// 後はエンコードされたURLを使って任意の処理を書く
new Ajax.Updater(
  'id_name',
  url ,
  {asynchronous:true, evalScripts:true, parameters:Form.Element.serialize('form_name'), requestHeaders:['X-Update', 'id_name']}
);
</script> 
</pre>

エンコードし忘れてGETを送っていてFirefoxでは自動的にエンコードしてくれていたので気付かなかったのですが、IEではサーバー側で文字化けしていました。]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/07/url.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/07/url.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
            
            
            <pubDate>Fri, 09 Jul 2010 08:50:24 +0900</pubDate>
        </item>
        
        <item>
            <title>Gmail 添付忘れチェッカーなくなってますね。。。</title>
            <description><![CDATA[お客さんに6月29日にしたメールの添付忘れに今日（7月6日）に気付きました。<br />一週間も放置してしまって、ちょっと凹んでますが・・・<br /><br />ん？あれ？Gmailで本文内に「添付」って書き込んで添付わすれたら<br />アラートがでたはずなのに！！<br /><br />と、思って試してみたら、アラートがでなーい。<br />なんの設定したのかもあやふやだったので、ググってみると<br /><br />あーそだそだ！<br />設定→Labsの設定だ、設定がなぜか外れてしまったのか・・・<br /><br />と、Labs内を探すも添付忘れチェッカーがない。。。<br /><br />そりゃ<br />「Gmail Labs は実験的な機能をテストする場であり、<br />ここにある機能は随時<b>変更</b>、<b>中断</b>、<b>提供中止</b>されることがあります。
」<br />って書いてるけど。。。。<br /><br />ヒューマンエラー防止や予防の機能がいきなりなくなるとは、ちょっと困りました。。<br /> ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/07/gmail.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/07/gmail.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">その他</category>
            
            
            <pubDate>Tue, 06 Jul 2010 10:24:35 +0900</pubDate>
        </item>
        
        <item>
            <title>PHPExcelをCakePHPで使ってみる（テンプレートの読み込み）</title>
            <description><![CDATA[　弊社で帳票をPDFで出力する際には、大抵書式となるテンプレートファイルを先に読み込んで、必要な箇所にデータを出力して最終的に出来上がりのPDFファイルを生成という手順を踏みます。<br />
　ですので、Excelファイルを作る際にもテンプレートの読み込みが必要だろうということで、これもサンプルを作りましたのでここに載せておきます。<br />
<br />
　データを出力する部分とファイルに書き出す部分は同じですので、テンプレートファイルを読み込む部分を解説します。<br />
　Excel2007形式とExcel95形式、両方まとめて載せておきます。<br />
<br />
　まず、Excel95形式のテンプレート読み込みです。<br />
<pre class="php" name="code">

	$filename = "fruits.xls";
	$uploadDir = realpath( TMP );
	$uploadDir .= DS . 'excels' . DS;
	$load_path = $uploadDir . $filename;

	$objReader = new PHPExcel_Reader_Excel5();
	$objPHPExcel = $objReader->load( $load_path );

</pre>
　次は、Excel2007形式のテンプレート読み込みです。<br />
<pre class="php" name="code">

	$filename = "fruits.xlsx";
	$uploadDir = realpath( TMP );
	$uploadDir .= DS . 'excels' . DS;
	$load_path = $uploadDir . $filename;

	$objPHPExcel = PHPExcel_IOFactory::load( $load_path );

</pre>
　$load_path　にはテンプレートファイルのフルパスを与えてください。<br />
<br />
　ここで帰ってきた $objPHPExcel で、データ書き込みやファイル生成を行ってください。<br />
<br />

]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/06/phpexcelcakephp-1.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/06/phpexcelcakephp-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Tue, 15 Jun 2010 10:35:13 +0900</pubDate>
        </item>
        
        <item>
            <title>PHPExcelをCakePHPで使ってみる(Excel2007形式)</title>
            <description><![CDATA[
　<a href="../../../kodanuki_note/2010/06/phpexcelcakephp.html">PHPExcelをCakePHPで使ってみる</a>の記事ではExcel95形式（拡張子が.xls）のExcelファイルの出力について書きましたが、Excel2007形式（拡張子が.xlsx）の場合はどうなるのかが今回のお話です。
<br />

　Excel2007形式のファイルを出力する為のポイントはふたつです。<br />
　ひとつ目は、出力ファイル名の拡張子を必ず「.xlsx」にしておくことです。<br />
　ふたつ目は、出力する部分のコードを少し変えることです。<br />
　具体的には、次のコードになります。<br />
<br />
<pre class="php" name="code">
$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );
</pre>
<br />

]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/06/phpexcelcakephpexcel2007.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/06/phpexcelcakephpexcel2007.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Tue, 15 Jun 2010 10:19:10 +0900</pubDate>
        </item>
        
        <item>
            <title>PHPExcelをCakePHPで使ってみる</title>
            <description><![CDATA[　システムを作っていると、お客様からよく「このデータをExcelで使いたい」ということをお聞きします。<br />
　大抵の場合CSV形式のファイルを出力して、それをExcelで読み込んで好きに加工して戴くのですが、やはりExcelの形式ではないので使い辛いと言われることがあります。<br />
　そこで、Excelファイルを出力するようにしようということになり、PHPExcelというライブラリをCakePHPに組み込んで使うことにしました。<br />
<br />
]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/06/phpexcelcakephp.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/06/phpexcelcakephp.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Mon, 14 Jun 2010 17:11:53 +0900</pubDate>
        </item>
        
        <item>
            <title>サイト集客：GIGAZINE セミナー</title>
            <description><![CDATA[同僚の誘いがあり興味がある内容なので、<br /><a href="http://gigazine.net/index.php?/news/comments/20100305_gigazine_10th_anniversary_lecture/">GIGAZINE10
周年記念講演「なぜあなたのサイトに人が来ないのか？」</a><br />に行ってきました。<br /><br />存在は知ってましたが、特にお気に入りに入っ
てるというわけではなかったので、<br />どんな切り口で「webでの集客をしているのか」、またどんな話をするのかちょっと楽しみでした。<br /><br />ま
ず最初にメモはするな！と<br />メモにとらずに頭に残るものこそ自分にとって大事な情報である！<br />みたいなことを、マクドナルドの社長？の引用文
と共に紹介してました。<br /><br />内容は大きく５つ<br />1、更新しまくれ<br />内容はいたって当たり前のことでした。<br />アクセス数、実
例共に更新することによって、どう変化があったか紹介されていました。<br />「更新できないサイト内容であるなら、そこから見直すべき」<br /><br />2、
デザインを考える<br />ユーザビリティを考え、何をどこに配置することがベストなのかを常に考える。<br />レイアウト変更でアクセス30倍とか、ヒー
トマップのF字理論<br />リピーターはF字にならないのでまた考える。<br /><br />３、色づかい<br />文字中心の内容であり、モニター越しに見る
ユーザーのことを考え<br />見やすい色づかいがどこまで出来ているか。<br />bing（microsoftの検索エンジン）が文字色を変えただけで収
支がUPしたことを紹介<br /><br />４、最重要！！サーバ強化<br />有名サイトやニュースサイトから紹介され、一時的にアクセスが増えた時を逃さな
い。<br />その時をいつか期待しつつ、オーバースペック気味でもサーバは強化しておけとのこと。<br /><br />サーバ強化による表示スピードもとても
大事であることをgoogle,amazonを実例に紹介。<br /><br />５、仕事≠遊び<br />24時間集客のことを考え、遊んでいる暇はない！<br />人
の倍しないと、人と同じ結果しかでない。<br />それができるかどうかが分かれ目である。<br />みたいな話でした。<br /><br />内容はこんな感じ
だったはずです。<br />アクセス解析を見せてくださったり、実例を元に話してたのですんなり納得できる内容でした。<br /><br /> <br /><br /><br /><br /> ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/04/gigazine.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/04/gigazine.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Windows</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">その他</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">勉強会</category>
            
            
            <pubDate>Thu, 22 Apr 2010 11:13:29 +0900</pubDate>
        </item>
        
        <item>
            <title>システムの脆弱性検知ツールを調査してみる</title>
            <description><![CDATA[ セキュリティの調査で3つ脆弱性検知ツールを入れてみたのですが、結果的には次のようになりました。<br />
<br />
-skipfish<br />
Linuxでしか動作しなく導入に手間が掛かる。<br />
導入後、実行してみるが時間が掛かりすぎる。CakePHPを抱え込んで検知したら半日経っても終らない。<br />
素のPHPで小さいシステムを検査してみるが脆弱性が発見できない。<br />
<br />
<br />
-IPAが出しているiLogScanner<br />
導入作業自体が無くIPAが用意しているサイトにサーバーのアクセスログファイルをUPして調査する。<br />
サーバーのログを上げる作業なので、このプロジェクトの脆弱性を見たいという時は、ログファイルの吐き出し方を切り替えるという作業が必要になってくる。<br />
脆弱性を発見したと検知されるのに、何処のファイルかという情報が無く脆弱性の特定が出来ない。<br />
<br />
<br />
-Paros<br />
windowsにインストールできて、そのパソコンからブラウザのプロキシを強引に変えて見たいシステムのURLを叩いて操作したログを後で検査するという仕組みです。<br />
素のPHPで書いた小さいシステムを検査すると、何処のファイルに脆弱性があるときちんと出してくれます。<br />
但しCakePHPなどのフレームワークを検査してみると、MVCが分かれているせいでXSSやSQLインジェクションを上手く検地してくれない。<br />
<br />
ということでParosがまだ一番使えるかなという感じなのですが、当初の目的のCakePHPを使ってるサイトの脆弱性を検査するという部分が出来ないので、引き続きツールを探して行きたいと思います。<br />
何か良い脆弱性検地ツールは無いんですかね・・・ ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/04/post-7.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/04/post-7.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Wed, 07 Apr 2010 14:52:11 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPのsessionがcore.phpの設定より早く消える！</title>
            <description><![CDATA[CakePHPのsessionってsessionデータに作成時間を保存しておき、読み出す時にcore.phpで設定した時間が経過していないかチェックしているんですね。<br />
サーバー設定の方はさわりに行ってないみたいです。<br />
core.phpの
<pre class="php" name="code">
Configure::write('Session.timeout', '120');
Configure::write('Security.level', 'medium');
</pre>
で3時間以上あってもサーバーの
<ul>
<li>session.cookie_lifetime</li>
<li>session.gc_maxlifetime</li>
</ul>
の方が短ければガーベジコレクションでsessionファイルが消えるので予想より早くログアウトしたりします。<br />

なので
bootstrap.phpに
<pre class="php" name="code">
ini_set("session.cookie_lifetime", 100 * Configure::read('Session.timeout'));
ini_set("session.gc_maxlifetime", 100 * Configure::read('Session.timeout'));
</pre>
coreの値使ってサーバー設定をcore触るだけで設定できるようにしました。<br />
(100掛けてるのはmediumの係数の100です。session.php見ましたが定数にはなっていない感じでした。)<br />
バージョンは1.2.6です。 

]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpsessioncorephp.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpsessioncorephp.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Fri, 26 Feb 2010 15:50:40 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPのtextareaの最初の改行コードがなくなる！</title>
            <description><![CDATA[--------------<br />
\n<br />\n<br />テキストエリア内容<br />
--------------<br />
のデータがあった場合<br />
<pre class="php" name="code">
$form->input('Model.field', array('type' => 'textarea'));
</pre>
で表示した場合、最初の改行コードがない状態でフォームに表示されます。<br />
(下記のように2つある改行が1つになっています)<br />
<textarea name="textarea" cols="20" rows="5">

テキストエリア内容
</textarea>]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephptextarea.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephptextarea.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Fri, 26 Feb 2010 15:01:01 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPのqueryのキャッシュでハマる</title>
            <description><![CDATA[モデルのquery関数を使ってループをまわしながら最大noをとってくる処理でハマりました・・・<br />
query関数って$sql同じだった場合勝手にキャッシュを使って前回と同じ値を返すんですね。<br />
通常はこれを回避する為に
<pre class="php" name="code">
$this-&gt;query($sql, false);
</pre>
とすることで毎回最新データを取ってきてくれます。<br />
デフォルトでキャッシュが邪魔だったので、app_model.phpで
<pre class="php" name="code">
function query() {
	$params = func_get_args();
	if (empty($params[1])) {
		$params[1] = false;
	} else {
		if (is_array($params[1]) && empty($params[2])) {
			$params[2] = false;
		}
	}

	$db =& ConnectionManager::getDataSource($this->useDbConfig);
	return call_user_func_array(array(&$db, 'query'), $params);
}
</pre>
query関数をオーバーライドしました。<br />
バージョンは1.2.6です。]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpquery.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpquery.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Fri, 26 Feb 2010 14:20:15 +0900</pubDate>
        </item>
        
        <item>
            <title>OpenPEARでPDF_Support_Libraryを公開</title>
            <description><![CDATA[OpenPEARでPDFの位置合わせを楽に出来るようにしたPDF_Support_Libraryを 公開しました。<br />
<br />
OpenPEARでのPDF_Support_LibraryのURL<br />
<a href="http://openpear.org/package/PDF_Support_Library">http://openpear.org/package/PDF_Support_Library</a><br />
<br />]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/openpearpdf-support-library.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/openpearpdf-support-library.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Wed, 10 Feb 2010 13:52:44 +0900</pubDate>
        </item>
        
        <item>
            <title>PHPで画像加工</title>
            <description><![CDATA[今回UPした画像のリサイズと画像に文字を乗っけるという仕様の仕事があり、PHPで画像加工に挑戦しました。<br />
<br />
調べてみるとPHPを入れるときに大体標準で付いてくるGDライブラリで画像加工が出来るとのこと。<br />
今回は画像を小さくリサイズするのと、写真に文字を埋め込むという事をしました。<br />
 ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/01/php-1.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/01/php-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Thu, 28 Jan 2010 11:58:03 +0900</pubDate>
        </item>
        
        <item>
            <title>QRコード生成ライブラリを使ってみました</title>
            <description><![CDATA[携帯サイトも併設したシステムを組むことになりPCサイトからQRコードを<br />
読み込んで携帯サイトに飛んでもらうということで、QRコードを作成することになりました。<br /><br /> ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/01/qr.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/01/qr.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Thu, 28 Jan 2010 10:21:18 +0900</pubDate>
        </item>
        
        <item>
            <title>複数ファイルを一気にUPする</title>
            <description><![CDATA[今回複数の写真を一気にUPしたい案件があったのでネットを探していたら、便利そうなライブラリを発見！！<br />
<br />
その名もSWFUploadライブラリというもので、ファイルを選択する際にドラッグで複数選ぶか、ShiftかCtrlを押しながら複数選ぶ。<br />選び終わったら開くボタンを押す、そしたら選ばれたファイルが進行状況が分かりながらアップロードされていくというライブラリです。<br />
<br /> ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/01/up.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/01/up.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Wed, 27 Jan 2010 16:29:37 +0900</pubDate>
        </item>
        
    </channel>
</rss>
