<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TechnoWeb　-phpやJava、C#.netなど、PGに関する事や、サーバー管理情報など、Webシステム開発全般に関するブログ-</title>
	<atom:link href="http://www.vish-develop.jp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.vish-develop.jp</link>
	<description>VISHメンバーによるWeb技術トレンドや開発事例、プログラミングTips等、Webシステム開発全般に関するブログ</description>
	<lastBuildDate>Thu, 18 Mar 2010 09:48:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>cakephpで変な余白が空く場合</title>
		<link>http://www.vish-develop.jp/tech/php/770</link>
		<comments>http://www.vish-develop.jp/tech/php/770#comments</comments>
		<pubDate>Thu, 18 Mar 2010 09:48:02 +0000</pubDate>
		<dc:creator>キャプテン森</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=770</guid>
		<description><![CDATA[cakephpで予期せぬところに変な余白が入ったことはありませんか？
原因はそう、「BOM」です。
例えば、こんなlayout.ctpがあって、
&#60;!DOCTYPE html PUBLIC "-//W3C//DTD [...]]]></description>
			<content:encoded><![CDATA[<p>cakephpで予期せぬところに変な余白が入ったことはありませんか？</p>
<p>原因はそう、「BOM」です。</p>
<p><span id="more-770"></span>例えば、こんなlayout.ctpがあって、</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;&lt;?php echo $title_for_layout ?&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?php echo $this-&gt;renderElement('header'); ?&gt;
&lt;?php echo $content_for_layout ?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>こんなheader.ctpがあって、</p>
<pre>&lt;div style="background:#FF0000;height:50px"&gt;ヘッダーです。&lt;/div&gt;</pre>
<p>こんなindex.ctpがある場合、</p>
<pre>&lt;div style="background:#00FF00;height:100px"&gt;本文です。&lt;/div&gt;</pre>
<p>index.ctpをBOM付きで保存すると･･･</p>
<p><img class="size-medium wp-image-774 alignnone" title="ダイアログ" src="http://www.vish-develop.jp/wp/wp-content/uploads/2010/03/dialog-300x181.jpg" alt="ダイアログ" width="300" height="181" /></p>
<p>こんな感じで、ヘッダと本文の間に余白ができてしまいます。</p>
<p><img class="alignnone size-medium wp-image-771" title="BOM有" src="http://www.vish-develop.jp/wp/wp-content/uploads/2010/03/bomari-300x125.jpg" alt="BOM有" width="300" height="125" /></p>
<p>index.htmlをBOMなしで保存すると、余白がなくなります。</p>
<p><img class="alignnone size-medium wp-image-772" title="BOM無し" src="http://www.vish-develop.jp/wp/wp-content/uploads/2010/03/bomnasi-300x111.jpg" alt="BOM無し" width="300" height="111" /></p>
<p>予期せぬ動作をした場合はまずはBOMを疑ってみましょうというお話でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/php/770/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>コピーライトの年をJavaScriptで自動更新する（一行で済むよ版）</title>
		<link>http://www.vish-develop.jp/tech/739</link>
		<comments>http://www.vish-develop.jp/tech/739#comments</comments>
		<pubDate>Fri, 08 Jan 2010 02:37:53 +0000</pubDate>
		<dc:creator>t_maruyama</dc:creator>
				<category><![CDATA[Javascript/Ajax]]></category>
		<category><![CDATA[技術情報]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=739</guid>
		<description><![CDATA[まるやまです。
年が変わるごとにデザイナーさんがガリガリコピーライトの年表示を書き換えてるのを見て、これはJavascript化した方がいいんでね？と思いまして。
他のサイトを見ると、headや別ファイルに関数書いて呼び [...]]]></description>
			<content:encoded><![CDATA[<p>まるやまです。</p>
<p>年が変わるごとにデザイナーさんがガリガリコピーライトの年表示を書き換えてるのを見て、これはJavascript化した方がいいんでね？と思いまして。</p>
<p>他のサイトを見ると、headや別ファイルに関数書いて呼び出したりしてますが、私は以下のように一行でやっちゃいます。（３行に見えますが、実際は一行です）</p>
<pre>(C) VISH Inc.2005-&lt;script type="text/javascript"&gt;
document.write(new Date().getFullYear())
&lt;/script&gt; all rights reserved.</pre>
<p>別ファイルにするのは、ルーチンを共通化できるメリットはありますね。でも、そんなに触るところでもないし、そもそもDreamWeaverとか使っててテンプレート化してたりする場合はなおさらですね。headにわざわざ関数として書くメリットはあまりないように思います。</p>
<p>もっとスマートにできるぜって漢の方はコメントにでも書いてください。</p>
<p>あ、でもサイト立ち上げて１年目とかこれ使えないですね。<br />
<span style="color: #ff0000;">下記に完全版を追記しました。</span><br />
そもそもコピーライトに年表記いるんでしょうか・・・。</p>
<p>＃タイトル「年号」になってましたが、「年」に直しました。</p>
<p>＃完全版です。一年目のときは年だけ、二年目以降は開始年と現在年を表示します。(2009-2010みたいに） 何行かに分かれてますが改行除いてぶっ続けに書いてください。「2010」ってなってるところが開始年ですので、各自の事情に合わせて書き換えてください。</p>
<pre>
(C) VISH Inc. &lt;script type="text/javascript"&gt;
$y=2010;$ny=new Date().getFullYear();document.
write($ny>$y?$y+'-'+$ny:$y);&lt;/script&gt;
 all rights reserved.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/739/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows上からPCのメモリ構成を調べる（メモリスロットの空きや容量、規格など）</title>
		<link>http://www.vish-develop.jp/trend/webservice/716</link>
		<comments>http://www.vish-develop.jp/trend/webservice/716#comments</comments>
		<pubDate>Sat, 26 Dec 2009 03:00:18 +0000</pubDate>
		<dc:creator>h_takimoto</dc:creator>
				<category><![CDATA[ウェブサービス紹介]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[マザーボード]]></category>
		<category><![CDATA[メモリ増設]]></category>
		<category><![CDATA[自作]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=716</guid>
		<description><![CDATA[こんにちは。滝本です。
PC自作派にとって、年末/年始の休暇は絶好の「自作チャンス」ですね。
最新パーツを取りそろえて1台組みたい所ですが、諸々の事情から
ちょっと我慢して、自宅で使用しているパソコンにメモリを追加する事 [...]]]></description>
			<content:encoded><![CDATA[<p>こんにちは。滝本です。</p>
<p>PC自作派にとって、年末/年始の休暇は絶好の「自作チャンス」ですね。<br />
最新パーツを取りそろえて1台組みたい所ですが、諸々の事情から<br />
ちょっと我慢して、自宅で使用しているパソコンにメモリを追加する事にします。<br />
<span id="more-716"></span><br />
自宅で使用しているパソコンはこんな構成。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
M/B（マザーボード）:ASUS P4PE<br />
CPU:Pentium4 2.4GHz<br />
MEM:1GB<br />
HDD:168GB+1TB<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>クアッドコアCPUが2万円台後半で買えますから、この構成はちょっと時代遅れ。<br />
会社で使う開発環境には物足らないですが、自宅では現役で頑張ってくれています。</p>
<p>それじゃー、メモリを買ってくるか！と思ったときに困る事。それは</p>
<p style="text-align: center;"><strong>「どのメモリを何枚買えばよいの？」</strong></p>
<p>認識するメモリの種類や最大容量はM/B（に搭載されているチップセット）によって決まります。<br />
また、容量を増やすなら現在空いているメモリスロット数の確認が必要です。</p>
<p>通常ならM/Bのカタログスペックを調べたり、実際にPCケースのフタを外して<br />
空いているメモリスロット数を調べたりする所ですが、これが面倒くさい！</p>
<p>さらに、古い製品を使用している場合は、情報が見つからずスペック調査に手間取ったりする事も多いです。</p>
<p>そんなメモリ増設にまつわる悩みを解決してくれるサイトを見つけたので、使ってみました。<br />
↓コチラ（英語サイトです）<br />
<a href="http://www.crucial.com/" target="_blank">RAM Memory Upgrade: Dell, Mac, Apple, HP, Compaq. USB drives, flash cards, SSD at Crucial.com</a><br />
現在のメモリ構成や認識可能な最大メモリ容量などをチェックできるサイトです。</p>
<p>PCやM/Bのメーカーやモデルから検索する「Crucial Memory Advisor tool」と<br />
パソコンをスキャンして検索する「Crucial System Scanner tool」が用意されています。<br />
今回は、パソコンをスキャンする「Crucial System Scanner tool」を使うので<br />
「SCAN MY SYSTEM」のボタンをクリック。<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/0011.png" target="_blank"><img class="alignnone size-full wp-image-718" title="001" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/0011.png" alt="001" width="100%" /></a></p>
<p>スキャンプログラムのダウンロード画面。<br />
左下の利用規約に同意するチェックボックスにチェックを入れて「DOWNLOAD THE SCANNER」をクリック<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/002.png" target="_blank"><img class="alignnone size-full wp-image-724" title="002" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/002.png" alt="002" width="100%" /></a></p>
<p>「CrucialScan.exe」を実行します。<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/003.png" target="_blank"><img class="alignnone size-full wp-image-725" title="003" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/003.png" alt="003" width="107" /></a></p>
<p>ダウンロードが完了するとブラウザに「Scan in Progress」の画面が表示されます。<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/004.png" target="_blank"><img class="alignnone size-full wp-image-726" title="004" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/004.png" alt="004" width="100%" /></a></p>
<p>少し待つと結果が表示されます。<br />
左側の「1GB Total」と書いてある枠が現在のメモリ使用状況。<br />
右側の「2GB Total」と書いてある枠がアップグレード可能なメモリ構成です。<br />
この画面から読み取れるのは<br />
・現在、メモリスロットには「512MB」「512MB」「256MB」の3枚が挿さっており、空きスロットはゼロ<br />
・最大容量になる構成は「1GB」「1GB」<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/005.png" target="_blank"><img class="alignnone size-full wp-image-727" title="005" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/005.png" alt="005" width="100%" /></a></p>
<p>さらに下段には、使用できるメモリの種類や仕様が表示されます。<br />
この画面から読み取れるのは<br />
・現在、メモリスロットに挿さっている各メモリの規格は「DDR PC2700」<br />
・各スロットに挿す事ができるメモリは「DDR PC2700」または「DDR PC3200」で、容量は最大1GB<br />
・右の欄には、デュアルチャネルやECCメモリのサポート可否、CPUスペックなどが表示されています。<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/006.png"><img class="alignnone size-full wp-image-728" title="006" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/006.png" alt="006" width="100%" /></a></p>
<p>ここまでの情報で<br />
・最大メモリ容量にするには、「DDR PC3200」の「1GB」メモリを２枚購入する<br />
・現在挿さっているメモリを抜いて、「1GB」「1GB」の2枚構成とする<br />
という事がわかりました。</p>
<p>これで安心して、メモリを購入する事ができますね！</p>
<p>また、海外にお住まいの方なら、下段にあるショッピングカートから直接メモリを購入する事ができます。<br />
<a href="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/007.png" target="_blank"><img class="alignnone size-full wp-image-730" title="007" src="http://www.vish-develop.jp/wp/wp-content/uploads/2009/12/007.png" alt="007" width="100%" /></a></p>
<p>うーん、便利！<br />
それでは購入する物も決まりましたので、名古屋の電脳街 大須へ行ってきまーす。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/trend/webservice/716/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>複数のメールアドレスを簡単に用意する＆toにメッセージを仕込む</title>
		<link>http://www.vish-develop.jp/trend/700</link>
		<comments>http://www.vish-develop.jp/trend/700#comments</comments>
		<pubDate>Wed, 09 Dec 2009 17:09:26 +0000</pubDate>
		<dc:creator>h_takimoto</dc:creator>
				<category><![CDATA[システムトレンド]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=700</guid>
		<description><![CDATA[Gmailの仕様を利用して、１個のメールアドレスに対して複数の別名（エイリアス）を割り当てます。
１．Gmailアカウントを作成します　→ vishdevelop@gmail.com
２．「ユーザー名+用途別文字列@gm [...]]]></description>
			<content:encoded><![CDATA[<p>Gmailの仕様を利用して、１個のメールアドレスに対して複数の別名（エイリアス）を割り当てます。</p>
<p>１．Gmailアカウントを作成します　→ vishdevelop@gmail.com<br />
２．「ユーザー名+用途別文字列@gmail.com」の様にして、テストメールアドレスを作成します。<br />
<span id="more-700"></span><br />
Gmailではユーザー名に「+」を付けると、以降の文字列から@の手前までは、無視される仕様になっています。<br />
これを利用して、用途別の文字列を設定することで、テスト用メールアドレスを複数準備する事ができます。<br />
<a href="http://mail.google.com/support/bin/answer.py?hl=jp&#038;answer=12096">別名アドレスを使用してメッセージを受信できますか。 &#8211; Gmail ヘルプ</a></p>
<p>たとえばWEBサイトの「お問い合わせフォーム」なんかのテストをする場合<br />
・vishdevelop+form_from@gmail.com<br />
・vishdevelop+form_to@gmail.com<br />
・vishdevelop+form_cc@gmail.com<br />
・vishdevelop+form_bcc@gmail.com<br />
・vishdevelop+form_return-path@gmail.com<br />
こんな感じでヘッダ別に別名を付けて設定しておくと、識別が楽ですね！<br />
　※ただし、上記ヘッダを全て設定して送信しても、vishdevelop@gmail.comが受信するのは1通だけである点に注意。</p>
<p>また、ちょっと変わった使い方をお望みなら、toにメッセージを仕込んでおくのも良いかも知れませんね。<br />
↓こんな感じでメッセージをURLエンコードして「+」の後ろにくっつけます。</p>
<input type="text" size="60" value="vishdevelop+%82%a0%82%ab%82%e7%82%df%82%bd%82%e7%82%bb%82%b1%82%c5%8e%8e%8d%87%8fI%97%b9%82%c5%82%b7%82%e6%81E%81E%81E%81H@gmail.com" />
<p>これでも、ちゃんと届きます！</p>
<p>滝本</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/trend/700/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET FrameworkのHttpWebRequestはHTTPの100 Continueの処理が不完全</title>
		<link>http://www.vish-develop.jp/tech/net/697</link>
		<comments>http://www.vish-develop.jp/tech/net/697#comments</comments>
		<pubDate>Wed, 25 Nov 2009 12:47:03 +0000</pubDate>
		<dc:creator>h_tab</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=697</guid>
		<description><![CDATA[とのことです。
具体的には、POSTの際やプロキシ接続の際に、
System.Net.WebException: 基礎になる接続が閉じられました: 接続が予期せずに閉じられました
という例外が発生している場合は、100  [...]]]></description>
			<content:encoded><![CDATA[<p>とのことです。</p>
<p>具体的には、POSTの際やプロキシ接続の際に、</p>
<p>System.Net.WebException: 基礎になる接続が閉じられました: 接続が予期せずに閉じられました</p>
<p>という例外が発生している場合は、100 Continue処理の不具合を疑った方がよさそうです。</p>
<p><span id="more-697"></span></p>
<p>以下のコードにて回避可能とのこと。</p>
<p><code>ServicePoint currentServicePoint = request.ServicePoint;<br />
if (currentServicePoint == null)<br />
{<br />
    currentServicePoint = ServicePointManager.FindServicePoint(new Uri(url));<br />
}<br />
if (currentServicePoint.Expect100Continue == true)<br />
{<br />
    currentServicePoint.Expect100Continue = false;<br />
}<br />
</code></p>
<p>いわゆるバッドノウハウなんですが、とりあえずメモしておきます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/net/697/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浮動小数点型の誤差</title>
		<link>http://www.vish-develop.jp/tech/695</link>
		<comments>http://www.vish-develop.jp/tech/695#comments</comments>
		<pubDate>Tue, 24 Nov 2009 12:33:01 +0000</pubDate>
		<dc:creator>h_tab</dc:creator>
				<category><![CDATA[技術情報]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=695</guid>
		<description><![CDATA[さて問題、C#で以下のコードを実行すると、どのような結果になるでしょう？
    static void Main(string[] args)
    {
        double sum = 0;
        [...]]]></description>
			<content:encoded><![CDATA[<p>さて問題、C#で以下のコードを実行すると、どのような結果になるでしょう？</p>
<p><code>    static void Main(string[] args)<br />
    {<br />
        double sum = 0;<br />
        for (int i = 0; i &lt; 1000; i++)<br />
        {<br />
            sum += 0.1;<br />
        }<br />
        System.Console.WriteLine(sum);<br />
    }<br />
</code></p>
<p><span id="more-695"></span></p>
<p>実際の実行結果の答えは、<br />
99.9999999999986<br />
となりました。</p>
<p>100にはなりません。</p>
<p>浮動小数点の誤差については基本情報技術者試験にも出題されているようなので常識といえば常識なんでしょう。</p>
<p>「浮動小数点は誤差が発生する」ということは、IT技術者だったら少なからず知識としてはあると思います。</p>
<p>ですが、これまで幾度となく固定小数点で扱うべき値を浮動小数点で扱っていたばかりに、後から大幅な修正が必要となってしまったプロジェクトを私は見てきました。</p>
<p>多分、最初にプログラムの勉強をする際には、誤差がどれほど厄介な不具合となってしまうのか認識していないので、簡単にdoubleやfloatを使ってしまうんでしょうね。</p>
<p>今回の記事を読んで意味が分からない人は、この機会にきちんと理解しておいた方が良いと思います。</p>
<p>Wikipediaにも掲載されているので参考にどうぞ。</p>
<p><a href="http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0">http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/695/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitterサーバ、天空の城ラピュタの滅びの呪文「バルス」でも安定稼動</title>
		<link>http://www.vish-develop.jp/tech/server/691</link>
		<comments>http://www.vish-develop.jp/tech/server/691#comments</comments>
		<pubDate>Tue, 24 Nov 2009 11:49:11 +0000</pubDate>
		<dc:creator>h_tab</dc:creator>
				<category><![CDATA[サーバー構築/保守]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=691</guid>
		<description><![CDATA[先週の金曜日に、ＴＶでラピュタがやっていたんですね。
帰宅してから知りました。

さてラピュタといえば、これまで放映のたびに毎回２ちゃんねるのサーバをダウンさせていたようです。
http://www.itmedia.co [...]]]></description>
			<content:encoded><![CDATA[<p>先週の金曜日に、ＴＶでラピュタがやっていたんですね。</p>
<p>帰宅してから知りました。</p>
<p><span id="more-691"></span></p>
<p>さてラピュタといえば、これまで放映のたびに毎回２ちゃんねるのサーバをダウンさせていたようです。</p>
<p><a href="http://www.itmedia.co.jp/news/articles/0911/24/news072.html">http://www.itmedia.co.jp/news/articles/0911/24/news072.html</a></p>
<p>上記の記事によると、今回も２ちゃんねるはダウンしたそうですが、Twitterはラストシーンあたりの最も高負荷となる瞬間でも安定稼働を続けることができたそうです。</p>
<p>一般人から見ればアホらしく思えることかもしれませんが、同じWEBサービスを運営する者としては、これだけの負荷に耐えるサービスを提供できる技術力に対して感服させられる記事でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/server/691/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP 1.2.5はPHP 4.3.10で動作しないけど、PHP 4.3.11にすると動く話</title>
		<link>http://www.vish-develop.jp/tech/682</link>
		<comments>http://www.vish-develop.jp/tech/682#comments</comments>
		<pubDate>Mon, 23 Nov 2009 08:30:06 +0000</pubDate>
		<dc:creator>h_takimoto</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[技術情報]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=682</guid>
		<description><![CDATA[CakePHP 1.2.5を利用して開発したソースコードをサーバーにアップして
稼働確認すると、動作せず。
CakePHPを利用していて、環境を変更した事で発生する不具合の原因としては、
「mod_rewriteの設定ミ [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP 1.2.5を利用して開発したソースコードをサーバーにアップして<br />
稼働確認すると、動作せず。</p>
<p>CakePHPを利用していて、環境を変更した事で発生する不具合の原因としては、<br />
「mod_rewriteの設定ミス」や「テンポラリディレクトリの書込権限設定もれ」などが<br />
あげられますが、今回の設定は正しい模様。</p>
<p>自前で作成したコードが悪いのか、CakePHPのライブラリが悪いのかを切り分けるため<br />
試しに素のCakePHPをダウンロードし直して設置してみると、同様の事象が発生。</p>
<p>近道は諦めて、腰を据えてCakePHPをデバッグしてみる事にしました。<br />
<span id="more-682"></span><br />
エラーログを出力してみると、CakePHPのライブラリ内でエラーが発生していました。</p>
<pre>
Fatal error: Call to a member function on a non-object in ./cake/libs/view/layouts/default.ctp on line 34
</pre>
<p>該当箇所を確認してみると</p>
<pre>
echo $html->meta('icon');
</pre>
<p>HTMLヘルパを使ってメタタグを出力している箇所で、オブジェクトが無いぞ！と怒られています。<br />
通常では発生しない状況です。</p>
<p>デバッグを繰り返していると、CakePHPのヘルパを初期化する処理でoverload()している所で<br />
異常に処理に時間がかかる場合が発生する事がわかりました。</p>
<p>しかし、怪しげな処理をしている様には見えないので、CakePHPではなく、<br />
PHP自体の処理を疑って<a href="http://php.net/ChangeLog-4.php">PHP 4 ChangeLog</a>を眺めてみました。</p>
<p>すると、4.3.10→4.3.11へのチェンジログで気になる箇所が。</p>
<pre>
 Fixed bug #31106 (Fixed crash in overloaded objects).
 Fixed bug #28086 (crash inside overload() function).
</pre>
<p>具体的な挙動はわかりませんが、overloadに関する処理が修正されている様です。</p>
<p>という事は、4.3.11で動作させれば発生しないのでは！？と思い試してみると、正常に動作。<br />
この事から、PHPのバグに触れてしまっている可能性が高いと考えられます。<br />
また、この現象はWindows/LinuxどちらのOSでも発生しました。</p>
<p>CakePHPのドキュメントには</p>
<pre>
PHP 4.3.2 or greater. Yes, CakePHP works great on PHP 4 and 5.
</pre>
<p>と記述されていますが、実際は4.3.11以上で動作、という事になるようです。</p>
<p>PHP4.3.10というのは大分古いバージョンですので、本来であれば<br />
PHP5やPHP4の最終バージョン（4.4.9）にバージョンアップするべきですが、<br />
既存システムとの兼ね合いもあるため、簡単にはいきません。</p>
<p>またCakePHP自体を修正するという案もありましたが、<br />
代替案がわからず、修正やテストにかける体力も無いため<br />
今回は、別のサーバーで動作させる事となりました。</p>
<p>PHP4環境でCakePHPを動作させる場合は、ご注意ください。</p>
<p>滝本</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/682/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>リモートデスクトップでクリップボード経由でのファイルコピー</title>
		<link>http://www.vish-develop.jp/tech/server/679</link>
		<comments>http://www.vish-develop.jp/tech/server/679#comments</comments>
		<pubDate>Fri, 20 Nov 2009 01:19:29 +0000</pubDate>
		<dc:creator>h_tab</dc:creator>
				<category><![CDATA[サーバー構築/保守]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=679</guid>
		<description><![CDATA[先日リモートデスクトップを使っているときに、なにげなくサーバのファイルをクリップボードにコピーしてクライアントに貼り付けてみたら、普通にファイルがコピーされました。
確かリモートデスクトップではクリップボード経由のファイ [...]]]></description>
			<content:encoded><![CDATA[<p>先日リモートデスクトップを使っているときに、なにげなくサーバのファイルをクリップボードにコピーしてクライアントに貼り付けてみたら、普通にファイルがコピーされました。</p>
<p>確かリモートデスクトップではクリップボード経由のファイルコピーはできなかったはずですが、いつのまにかできるようになっていたようです。</p>
<p>そこで、どのＯＳの組み合わせでファイルコピーができるのか確かめてみました。</p>
<p><span id="more-679"></span></p>
<p>サーバ　　　：Windows XP<br />
クライアント：Windows Vista<br />
⇒ファイルコピー失敗</p>
<p>サーバ　　　：Windows 2003 Server<br />
クライアント：Windows XP<br />
⇒ファイルコピー失敗</p>
<p>サーバ　　　：Windows 2003 Server<br />
クライアント：Windows Vista<br />
⇒ファイルコピー失敗</p>
<p>サーバ　　　：Windows Vista<br />
クライアント：Windows XP<br />
⇒ファイルコピー成功</p>
<p>サーバ　　　：Windows Vista<br />
クライアント：Windows Vista<br />
⇒ファイルコピー成功</p>
<p>どうやらサーバ側のＯＳがWindows Vista以降ならば、クリップボード経由のファイルコピーをサポートしているようです。<br />
(2008 Server は手元に無いので確かめていませんが、多分できると思います）</p>
<p>Windows XP や 2003 Server でも、ドライブの共有機能を使えばリモートデスクトップ上でファイル転送が行えますが、やはりクリップボード経由で行えたほうが簡単で良いですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/tech/server/679/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Map APIにて大規模な障害が発生</title>
		<link>http://www.vish-develop.jp/trend/671</link>
		<comments>http://www.vish-develop.jp/trend/671#comments</comments>
		<pubDate>Wed, 18 Nov 2009 00:34:39 +0000</pubDate>
		<dc:creator>h_tab</dc:creator>
				<category><![CDATA[システムトレンド]]></category>

		<guid isPermaLink="false">http://www.vish-develop.jp/?p=671</guid>
		<description><![CDATA[昨日11月17日の夕方から深夜にかけて、Google Map API v2 にて地図が閲覧できなくなってしまう障害が発生していました。

最初はIP制限でもかかったのかな？と思いましたが、他のサイトでもダメで、マイマップ [...]]]></description>
			<content:encoded><![CDATA[<p>昨日11月17日の夕方から深夜にかけて、Google Map API v2 にて地図が閲覧できなくなってしまう障害が発生していました。</p>
<p><span id="more-671"></span></p>
<p>最初はIP制限でもかかったのかな？と思いましたが、他のサイトでもダメで、マイマップの機能も死んでいて、これはGoogle本体で何か障害がおこっているな、と思いました。</p>
<p>Google Map API の開発者向けフォーラムを見ると、全世界的に障害が発生しているとのことでした。</p>
<p>ですが、ニュースサイトとか見ていても、この件について触れられている記事はありませんでした。</p>
<p>Google はこれまでにも検索結果が全てブロックされてしまったり、GmailやGoogle Appが使えなくなったりと、大規模な障害を何回もやらかしていますが、その際には各ニュースサイトのテクノロジーカテゴリーには記事が掲載されていましたが、今回の件は翌日になっても掲載されていませんでした。</p>
<p>Google Map APIの障害はそこまでの出来事では無いのですかね？</p>
<p>Google Map APIに関わる開発者にとっては、気が気でならない一晩だったことだと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vish-develop.jp/trend/671/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
