<?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>憂藍夢境‧部落格</title>
	<atom:link href="http://blog.linym.net/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.linym.net</link>
	<description>我的學習心得、筆記</description>
	<lastBuildDate>Thu, 10 Sep 2009 07:50:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使用 C# 呼叫 MATLAB Function</title>
		<link>http://blog.linym.net/archives/564</link>
		<comments>http://blog.linym.net/archives/564#comments</comments>
		<pubDate>Thu, 10 Sep 2009 07:49:21 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=564</guid>
		<description><![CDATA[最近在寫一些演算法的程式，經常要在一堆程式和檔案切換來切換去的，跑完數據還要開 MATLAB 畫圖，一直重複這些動作實在是很麻煩，所以把它寫成 Windows Form 用滑鼠點一點就 OK 了，其中繪圖部份就要利用 C# 去 call MATLAB 來作，查了許多資料，發現有很多種方法，但比較簡單方便的應該是用 MATLAB Builder NE for .NET 將 MATLAB 程式編譯成 .NET 可執行的元件。
1. 首先準備好你要 compiler 的 M-file，測試的 M-file 如下(由檔案讀取 x, y 數據曲線圖)：


function rmse(file)

data = load(file);
x = data(:,1);
y = data(:,2);

plot(x,y,&#039;LineWidth&#039;,1);

xlabel(&#039;Iteration&#039;);
ylabel(&#039;RMS error&#039;);

2. 開啟 MATLAB 並在 command windows 輸入：deploytool
    新建一個 project，名稱為 rmse。
    [...]]]></description>
			<content:encoded><![CDATA[<p>最近在寫一些演算法的程式，經常要在一堆程式和檔案切換來切換去的，跑完數據還要開 MATLAB 畫圖，一直重複這些動作實在是很麻煩，所以把它寫成 Windows Form 用滑鼠點一點就 OK 了，其中繪圖部份就要利用 C# 去 call MATLAB 來作，查了許多資料，發現有很多種方法，但比較簡單方便的應該是用 <a href="http://www.mathworks.com/products/netbuilder/" target="_blank">MATLAB Builder NE for .NET</a> 將 MATLAB 程式編譯成 .NET 可執行的元件。</p>
<p>1. 首先準備好你要 compiler 的 M-file，測試的 M-file 如下(由檔案讀取 x, y 數據曲線圖)：</p>
<pre title="code" class="cpp">

function rmse(file)

data = load(file);
x = data(:,1);
y = data(:,2);

plot(x,y,&#039;LineWidth&#039;,1);

xlabel(&#039;Iteration&#039;);
ylabel(&#039;RMS error&#039;);
</pre>
<p>2. 開啟 MATLAB 並在 command windows 輸入：<strong>deploytool</strong><br />
    新建一個 project，名稱為 rmse。<br />
    <a href="http://blog.linym.net/wp-content/uploads/2009/09/01.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/09/01.JPG" alt="New Project" title="New Project" width="646" height="451" class="alignnone size-full wp-image-567" /></a><br />
    選擇 .NET component<br />
    <a href="http://blog.linym.net/wp-content/uploads/2009/09/2.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/09/2.JPG" alt=".NET component" title=".NET component" width="510" height="510" class="alignnone size-full wp-image-571" /></a><br />
    將 M-file 加入，然後按<strong> Build the project</strong>，編譯完成會產生 rmse.dll<br />
<a href="http://blog.linym.net/wp-content/uploads/2009/09/3.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/09/3.JPG" alt="Add file" title="Add file" width="646" height="451" class="alignnone size-full wp-image-574" /></a></p>
<p>3. 將 .dll 加入 Visual Studio 參考(Reference)<br />
   在方案總管右鍵選「加入參考」>「瀏覽」，將剛剛編譯完成的 .dll 以及 MATLAB 安裝目錄底下的 toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll 加入。</p>
<p>4. 加入 Namespace<br />
using MathWorks.MATLAB.NET.Arrays;<br />
using rmse;</p>
<p>5. 使用方式<br />
    Rmse demo = new Rmse();<br />
    MWArray fileName = @"rmse.txt";<br />
    demo.rmse(fileName);</p>
<p>※ <a href='http://blog.linym.net/wp-content/uploads/2009/09/CSharp_Matlab.rar'>demo 範例原始碼下載</a></p>
<p>※ 如果想在沒安裝 MATLAB 的電腦上執行，需安裝 MATLAB Compiler Runtime (MCR)，檔案在安裝目錄的 toolbox\compiler\deploy\win32\MCRInstaller.exe，大小約 150MB</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/564/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Live Messenger 多重開啟(Polygamy)</title>
		<link>http://blog.linym.net/archives/558</link>
		<comments>http://blog.linym.net/archives/558#comments</comments>
		<pubDate>Mon, 10 Aug 2009 04:49:30 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[Polygamy]]></category>
		<category><![CDATA[Windows Live]]></category>
		<category><![CDATA[WLM]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=558</guid>
		<description><![CDATA[之前舊版中如果要開啟多個 MSN 就必須去修改主程式才行，但是到了 WLM 2009 已經不必囉，只要從登錄檔下手即可：
1. 執行 regedit (系統管理員身份)
2. 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Live\Messenger
3. 右鍵新增一個 DWORD 值，名稱為 MultipleInstances
4. 將 MultipleInstances 的值修改為 1
5. 關閉 regedit
或是將底下內容存成 .reg 檔，點兩下匯入即可。
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Live\Messenger]
"MultipleInstances"=dword:00000001
參考資料：How To Enable Polygamy In Windows Live Messenger
]]></description>
			<content:encoded><![CDATA[<p>之前舊版中如果要開啟多個 MSN 就必須去修改主程式才行，但是到了 WLM 2009 已經不必囉，只要從登錄檔下手即可：</p>
<p>1. 執行 <strong>regedit</strong> (系統管理員身份)<br />
2. 找到 <strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Live\Messenger</strong><br />
3. 右鍵新增一個 <strong>DWORD</strong> 值，名稱為 <strong>MultipleInstances</strong><br />
4. 將 <strong>MultipleInstances</strong> 的值修改為 <strong>1</strong><br />
5. 關閉 regedit</p>
<p>或是將底下內容存成 .reg 檔，點兩下匯入即可。</p>
<pre>Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Live\Messenger]
"MultipleInstances"=dword:00000001</pre>
<p>參考資料：<a href="http://www.liveside.net/main/archive/2008/12/17/how-to-enable-polygamy-in-windows-live-messenger.aspx">How To Enable Polygamy In Windows Live Messenger</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/558/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows PPPoE 自動重撥 Script</title>
		<link>http://blog.linym.net/archives/522</link>
		<comments>http://blog.linym.net/archives/522#comments</comments>
		<pubDate>Sat, 25 Jul 2009 10:51:09 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[adsl]]></category>
		<category><![CDATA[pppoe]]></category>
		<category><![CDATA[WSH]]></category>
		<category><![CDATA[自動連線]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=522</guid>
		<description><![CDATA[隨著 ADSL 及經濟型光纖網路的普及，有許多人都會在自家架設 server 主機，但如果沒有用分享器而是直接透過 PPPoE 撥接上網的，就很怕網路突然斷線(如忘記繳錢被停掉)，雖然說 Windows 內建的連線程式有一個「斷線後重新撥號」的選項，但其實並不好用。比較保險的作法是系統定期檢查對外連線的狀況(ping)，一旦發現斷線就自動重新連線。
在網路上可以找到很多這種作法的 Linux 版本，如「Debian Linux: ADSL PPPoE 自動重撥 Script」，但相對 Windows 的討論卻很少，所以就自己寫了一個重撥的 WSH(Windows Script Host)，搭配工作排程就可以達到目的。
※ 本方法適用於 XP 以後之 Windows。
Step 1：將下列程式存為 repppoe.vbs，修改連線資訊並放置在安全的地方


DIALNAME = &#34;寬頻連線&#34;              &#039;連線名稱
DIALUSER = &#34;12345678@ip.hinet.net&#34; &#039;連線帳號
DIALPASS = &#34;xxxxxxxx&#34;        [...]]]></description>
			<content:encoded><![CDATA[<p>隨著 ADSL 及經濟型光纖網路的普及，有許多人都會在自家架設 server 主機，但如果沒有用分享器而是直接透過 PPPoE 撥接上網的，就很怕網路突然斷線(如忘記繳錢被停掉)，雖然說 Windows 內建的連線程式有一個「斷線後重新撥號」的選項，但其實並不好用。比較保險的作法是系統定期檢查對外連線的狀況(ping)，一旦發現斷線就自動重新連線。</p>
<p>在網路上可以找到很多這種作法的 Linux 版本，如「<a href="http://plog.longwin.com.tw/programming/2007/08/24/adsl_repppoe_script_2007" target="_blank">Debian Linux: ADSL PPPoE 自動重撥 Script</a>」，但相對 Windows 的討論卻很少，所以就自己寫了一個重撥的 WSH(Windows Script Host)，搭配工作排程就可以達到目的。<br />
<span style="color:red">※ 本方法適用於 XP 以後之 Windows。</span></p>
<p><strong>Step 1：將下列程式存為 <span style="color:blue">repppoe.vbs</span>，修改連線資訊並放置在安全的地方</strong></p>
<pre title="code" class="vb">

DIALNAME = &quot;寬頻連線&quot;              &#039;連線名稱
DIALUSER = &quot;12345678@ip.hinet.net&quot; &#039;連線帳號
DIALPASS = &quot;xxxxxxxx&quot;              &#039;連線密碼

Set WshShell = CreateObject(&quot;WScript.Shell&quot;)
RetCode = WshShell.Run(&quot;ping www.hinet.net&quot;, 0, true)
If RetCode &lt;&gt; 0 Then
	WshShell.Run &quot;rasdial &quot; &amp; DIALNAME &amp; &quot; /DISCONNECT&quot;, 0, true
	WScript.Sleep(3000)
	WshShell.Run &quot;rasdial &quot; &amp; DIALNAME &amp; &quot; &quot; &amp; DIALUSER &amp; &quot; &quot; &amp; DIALPASS, 0
End If
</pre>
<p><strong>Step 2：設定 Windows 工作排程。</strong>(控制台->排定的工作->新增排定的工作)</p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/1.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/1.JPG" alt="1" title="1" width="522" height="326" class="alignnone size-full wp-image-535" /></a><br />
‧選擇步驟 1 的 repppoe.vbs 檔案</p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/2.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/2.JPG" alt="2" title="2" width="522" height="326" class="alignnone size-full wp-image-538" /></a></p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/3.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/3.JPG" alt="3" title="3" width="522" height="326" class="alignnone size-full wp-image-539" /></a></p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/4.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/4.JPG" alt="4" title="4" width="522" height="326" class="alignnone size-full wp-image-541" /></a><br />
‧輸入具有 Administrator 權限的使用者及密碼</p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/5.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/5.JPG" alt="5" title="5" width="522" height="326" class="alignnone size-full wp-image-542" /></a></p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/6.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/6.JPG" alt="6" title="6" width="406" height="416" class="alignnone size-full wp-image-543" /></a></p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/07/7.JPG"><img src="http://blog.linym.net/wp-content/uploads/2009/07/7.JPG" alt="7" title="7" width="368" height="252" class="alignnone size-full wp-image-544" /></a><br />
‧表示每 30 分鐘檢查一次連線狀況，可依需求修改，然後收工。</p>
<p>※ 備註：<br />
之所以選擇 ping www.hinet.net 而不用 IP 是因為經實驗結果，若網卡有設定 Default gateway，則可能會因為 gateway response 影響連線判斷。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/522/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MSI U100 螢幕色彩校正檔 (.icm)</title>
		<link>http://blog.linym.net/archives/498</link>
		<comments>http://blog.linym.net/archives/498#comments</comments>
		<pubDate>Sun, 14 Jun 2009 03:42:18 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[硬體筆記]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[MSI]]></category>
		<category><![CDATA[Spyder]]></category>
		<category><![CDATA[U100]]></category>
		<category><![CDATA[校色]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=498</guid>
		<description><![CDATA[最近跟人家借了一台 Spyder2 Pro 螢幕校色器回來用，才發現沒校色真的是差很大，尤其是小U (MSI U100) 整個色溫根本是偏掉，所以在這裡提供校色完的 .icm 檔供大家參考。
在 XP 底下可以用 LUT Manager 來載入校色檔，教學。
Vista/7 用系統內建的色彩管理來載入校色檔即可。
MSI U100 校色檔下載
]]></description>
			<content:encoded><![CDATA[<p>最近跟人家借了一台 Spyder2 Pro 螢幕校色器回來用，才發現沒校色真的是差很大，尤其是小U (MSI U100) 整個色溫根本是偏掉，所以在這裡提供校色完的 .icm 檔供大家參考。</p>
<p>在 XP 底下可以用<a href="http://www.exactscan.com/lutmanager/"> LUT Manager</a> 來載入校色檔，<a href="http://www.mobile01.com/topicdetail.php?f=256&#038;t=574353">教學</a>。<br />
Vista/7 用系統內建的色彩管理來載入校色檔即可。</p>
<p><a href='http://blog.linym.net/wp-content/uploads/2009/06/msi_u100.rar'>MSI U100 校色檔下載</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/498/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7 記住帳密及開機自動連線</title>
		<link>http://blog.linym.net/archives/489</link>
		<comments>http://blog.linym.net/archives/489#comments</comments>
		<pubDate>Mon, 08 Jun 2009 14:40:41 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[adsl]]></category>
		<category><![CDATA[pppoe]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[網路]]></category>
		<category><![CDATA[連線]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=489</guid>
		<description><![CDATA[上個月初 M$ 發佈了 Windows 7 RC 版本，立刻引起眾多的測試狂人搶先試用，而且頗受好評。當然我也加入測試行列囉！除了 RC 的 7100 版本，網路上很快又陸續流出了 7127、7137...版本，但很詭異的是各版本都有著不同的 bug、亂碼，有些明明舊版正常，新版卻冒出來，所以我想這可能是 M$ 保護未來零售版的小計謀吧！畢竟 Windows 7 目前的完成度已經相當高了(說穿了就是 Vista 的優化加強版)。
在 7137 版有個很麻煩的問題，就是沒辦法記住網路帳號密碼，所以每次開機都要重打一次(扯)，目前的解決方案是利用指令的方式呼叫 rasdial 來連線。
command：

rasdial 寬頻連線 [帳號] [密碼]

其中"寬頻連線"就是原先建立的連線名稱，視個人情況修改。
至於要讓開機自動連線，就是把上述指令寫成 vbs/bat 並加入「啟動」，或者利用「工作排程器」來達到目的。
]]></description>
			<content:encoded><![CDATA[<p>上個月初 M$ 發佈了 Windows 7 RC 版本，立刻引起眾多的測試狂人搶先試用，而且頗受好評。當然我也加入測試行列囉！除了 RC 的 7100 版本，網路上很快又陸續流出了 7127、7137...版本，但很詭異的是各版本都有著不同的 bug、亂碼，有些明明舊版正常，新版卻冒出來，所以我想這可能是 M$ 保護未來零售版的小計謀吧！畢竟 Windows 7 目前的完成度已經相當高了(說穿了就是 Vista 的優化加強版)。</p>
<p>在 7137 版有個很麻煩的問題，就是沒辦法記住網路帳號密碼，所以每次開機都要重打一次(扯)，目前的解決方案是利用指令的方式呼叫 rasdial 來連線。</p>
<p><strong>command：</strong></p>
<blockquote><p>
rasdial 寬頻連線 [帳號] [密碼]
</p></blockquote>
<p>其中"寬頻連線"就是原先建立的連線名稱，視個人情況修改。</p>
<p>至於要讓開機自動連線，就是把上述指令寫成 <strong>vbs/bat 並加入「啟動」</strong>，或者利用「<strong>工作排程器</strong>」來達到目的。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/489/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>避免在 HTML 開頭使用註解</title>
		<link>http://blog.linym.net/archives/474</link>
		<comments>http://blog.linym.net/archives/474#comments</comments>
		<pubDate>Sat, 02 May 2009 04:10:14 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[網頁設計]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[排版]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=474</guid>
		<description><![CDATA[前幾天學弟問我一個問題，說他 CSS 排版的網頁在大部分瀏覽器都正常，唯獨 IE 怪怪的，網頁中的 DIV 元素怎麼樣都無法置中，困擾了他許久，他的原始碼內容大致長這樣：


&#60;!-- Head area --&#62;
&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;title&#62;Test Page&#60;/title&#62;
&#60;style type=&#34;text/css&#34;&#62;
&#60;!--
#content {
	margin: 0 auto;
	width: 500px;
}
--&#62;
&#60;/style&#62;
&#60;/head&#62;

&#60;body&#62;
&#60;!-- Content Begin --&#62;
&#60;div id=&#34;content&#34;&#62;Content&#60;/div&#62;
&#60;!-- Content End --&#62;
&#60;/body&#62;
&#60;/html&#62;

嗯，看起來不應該會有什麼問題的，那是什麼原因讓 IE 無法將區塊置中勒？
我突然注意到他網頁開頭的那一行註解，因為自己寫網頁到現在從未在開頭使用過註解…
果然，拿掉以後就一切正常了。IE，還真是搞不懂你啊！
(註：全系列 IE 都有此現象)
]]></description>
			<content:encoded><![CDATA[<p>前幾天學弟問我一個問題，說他 CSS 排版的網頁在大部分瀏覽器都正常，唯獨 IE 怪怪的，網頁中的 DIV 元素怎麼樣都無法置中，困擾了他許久，他的原始碼內容大致長這樣：</p>
<pre title="code" class="html">

&lt;!-- Head area --&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Test Page&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
#content {
	margin: 0 auto;
	width: 500px;
}
--&gt;
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;!-- Content Begin --&gt;
&lt;div id=&quot;content&quot;&gt;Content&lt;/div&gt;
&lt;!-- Content End --&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>嗯，看起來不應該會有什麼問題的，那是什麼原因讓 IE 無法將區塊置中勒？<br />
我突然注意到他網頁開頭的那一行註解，因為自己寫網頁到現在從未在開頭使用過註解…</p>
<p>果然，拿掉以後就一切正常了。<del datetime="2009-05-03T04:01:36+00:00">IE，還真是搞不懂你啊！</del><br />
(註：全系列 IE 都有此現象)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/474/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>jQuery Drag and Drop Demo</title>
		<link>http://blog.linym.net/archives/452</link>
		<comments>http://blog.linym.net/archives/452#comments</comments>
		<pubDate>Wed, 11 Mar 2009 15:54:47 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[網頁設計]]></category>
		<category><![CDATA[Drag and Drop]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=452</guid>
		<description><![CDATA[Drag &#038; Drop(拖放) 效果若是應用得當可以讓 UI 操作更直覺簡單，目前最常見的大概就是對項目作排序，或是像購物車將物體從某區塊移到另一區塊。
網路上雖然有很多 Drag &#038; Drop 的範例，但有些過於複雜或是不夠完整，前陣子為了交作業嘗試用 jQuery+jQuery UI 做了一個簡單的 Demo，果然快速、簡潔、流暢，不得不再次向大家推薦 jQuery 啊！
Demo 網址：http://blog.linym.net/demo/jquery/jquery_DragDrop.html

]]></description>
			<content:encoded><![CDATA[<p>Drag &#038; Drop(拖放) 效果若是應用得當可以讓 UI 操作更直覺簡單，目前最常見的大概就是對項目作排序，或是像購物車將物體從某區塊移到另一區塊。</p>
<p>網路上雖然有很多 Drag &#038; Drop 的範例，但有些過於複雜或是不夠完整，前陣子為了交作業嘗試用 jQuery+jQuery UI 做了一個簡單的 Demo，果然快速、簡潔、流暢，不得不再次向大家推薦 jQuery 啊！</p>
<p><strong>Demo 網址</strong>：<a href="http://blog.linym.net/demo/jquery/jquery_DragDrop.html" target="_blank">http://blog.linym.net/demo/jquery/jquery_DragDrop.html</a></p>
<p><a href="http://blog.linym.net/wp-content/uploads/2009/03/dragdrop.jpg"><img src="http://blog.linym.net/wp-content/uploads/2009/03/dragdrop.jpg" alt="dragdrop" title="dragdrop" width="701" height="589" class="alignnone size-full wp-image-460" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/452/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>利用 CSS 為相片加框</title>
		<link>http://blog.linym.net/archives/440</link>
		<comments>http://blog.linym.net/archives/440#comments</comments>
		<pubDate>Sun, 08 Mar 2009 03:11:31 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[好書好站]]></category>
		<category><![CDATA[網頁設計]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[加框]]></category>
		<category><![CDATA[相片]]></category>
		<category><![CDATA[邊框]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=440</guid>
		<description><![CDATA[相片如果搭配了合適的邊框，可以讓相片看起來更有味道及特色，而一般相片加框都是使用軟體來達成的，所以電腦裡可能會有這些檔案：

原始相片檔
裁切、後製的檔案
縮圖無加框的檔案
縮圖有加框的檔案

但是為了應付各種需求，總不可能所有檔案都上傳到相簿吧？所以我只作前兩項，然後將想要保留的相片上傳到 Flickr，因為 Flickr 支援原始檔下載(升級Pro) 可以當作多一份備份，又會自動產生五種大小的縮圖，而且品質都不錯，所以要在 Blog 或別的地方展示時，只需選擇想要的大小再搭配 CSS 加框即可。
CSS 加框的部份找了很久，最後找到 CSS Decorative Gallery 這篇，他所 Demo 的是簡單也最多樣化的，給大家參考看看。
]]></description>
			<content:encoded><![CDATA[<p>相片如果搭配了合適的邊框，可以讓相片看起來更有味道及特色，而一般相片加框都是使用軟體來達成的，所以電腦裡可能會有這些檔案：</p>
<ol>
<li>原始相片檔</li>
<li>裁切、後製的檔案</li>
<li>縮圖無加框的檔案</li>
<li>縮圖有加框的檔案</li>
</ol>
<p>但是為了應付各種需求，總不可能所有檔案都上傳到相簿吧？所以我只作前兩項，然後將想要保留的相片上傳到 <a href="http://www.flickr.com/" target="_blank">Flickr</a>，因為 <a href="http://www.flickr.com/" target="_blank">Flickr</a> 支援原始檔下載(升級Pro) 可以當作多一份備份，又會自動產生五種大小的縮圖，而且品質都不錯，所以要在 Blog 或別的地方展示時，只需選擇想要的大小再搭配 CSS 加框即可。</p>
<p>CSS 加框的部份找了很久，最後找到 <a href="http://www.webdesignerwall.com/tutorials/css-decorative-gallery/" target="_blank">CSS Decorative Gallery</a> 這篇，他所 Demo 的是簡單也最多樣化的，給大家參考看看。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/440/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>修改 SyntaxHighlighter 符合 XHTML 驗證</title>
		<link>http://blog.linym.net/archives/415</link>
		<comments>http://blog.linym.net/archives/415#comments</comments>
		<pubDate>Thu, 08 Jan 2009 06:17:04 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[網頁設計]]></category>
		<category><![CDATA[SyntaxHighlighter]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=415</guid>
		<description><![CDATA[本站顯示程式碼是用「SyntaxHighlighter」，有人將它寫成 WP plugin，使用上非常方便，不過 SyntaxHighlighter 預設的呼叫語法是用
&#60;pre name="code" class="html"&#62;......&#60;/pre&#62;
由於 W3C 規範中 pre tag 是沒有 name 屬性的，所以鐵定要跟驗證貼紙說 bye bye，如果真的很在意的話可以這樣修改：
1. 修改 syntaxhighlighter.php

找到
&#60;pre name="code"
改成
&#60;pre title="code"

2. 修改 files/shCore.js

找到
tags[i].getAttribute('name')
改成
tags[i].getAttribute('title')

以 title 替換 name 屬性，這樣就能通過驗證了。
參考文章：Google SyntaxHighlighter - workaround for XHTML validation issue
]]></description>
			<content:encoded><![CDATA[<p>本站顯示程式碼是用「<a href="http://code.google.com/p/syntaxhighlighter/" target="_blank">SyntaxHighlighter</a>」，有人將它寫成 <a href="http://wordpress.org/extend/plugins/syntaxhighlighter/" target="_blank">WP plugin</a>，使用上非常方便，不過 SyntaxHighlighter 預設的呼叫語法是用</p>
<pre>&lt;pre <strong>name</strong>="code" class="html"&gt;......&lt;/pre&gt;</pre>
<p>由於 W3C 規範中 pre tag 是沒有 name 屬性的，所以鐵定要跟驗證貼紙說 bye bye，如果真的很在意的話可以這樣修改：</p>
<p><strong>1. 修改 syntaxhighlighter.php</strong></p>
<pre>
找到
&lt;pre name="code"
改成
&lt;pre <strong>title</strong>="code"
</pre>
<p><strong>2. 修改 files/shCore.js</strong></p>
<pre>
找到
tags[i].getAttribute('name')
改成
tags[i].getAttribute('<strong>title</strong>')
</pre>
<p>以 title 替換 name 屬性，這樣就能通過驗證了。</p>
<p>參考文章：<a href="http://aumlette.me.uk/weblog/google-syntaxhighlighter-workaround-for-xhtml-validation-issue/">Google SyntaxHighlighter - workaround for XHTML validation issue</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/415/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[WordPress] 在 IIS 使用固定網址(Permalink)</title>
		<link>http://blog.linym.net/archives/319</link>
		<comments>http://blog.linym.net/archives/319#comments</comments>
		<pubDate>Thu, 08 Jan 2009 03:42:20 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[Permalinks]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[固定網址]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=319</guid>
		<description><![CDATA[Apache 有個非常強大好用的 mod_rewrite 模組，可以實現 URL Rewriting，運用在網站或部落格對 SEO 會有幫助。WP 的固定網址也是這類的運用，一般架設在 Apache 不會有什麼問題，只要有啟用 mod_rewrite 就 OK，不過如果是裝在 IIS 上，那就會看到很醜的 /index.php/aaa/bbb/123 這樣的網址，本篇就是教大家如何讓 IIS 真正擁有 rewrite 的功能。
首先必須安裝 for IIS 的擴充，微軟有針對 IIS7 開發一套 URL Rewrite Module，不過 IIS6 就只能用別的，測試很多套最後選擇 ISAPI_Rewrite，因為它幾乎相容 .htaccess、mod_rewrite 語法，也比較穩定，ISAPI_Rewrite 有分要錢的 full 版和免費的 Lite 版，差異請看這篇，目前選 Lite 就夠用了。
Step 1
先設定 WordPress ，進入後台選擇想要的固定網址格式，如「/%year%/%monthnum%/%day%/%postname%.html」，記得把前面 index.php 拿掉。

Step 2
安裝好 ISAPI_Rewrite 3 Lite，編輯安裝目錄下的 httpd.conf 設定檔，內容範例：

# 假設WP網址為 http://aaa.domain.com/blog/
RewriteCond [...]]]></description>
			<content:encoded><![CDATA[<p>Apache 有個非常強大好用的 mod_rewrite 模組，可以實現 URL Rewriting，運用在網站或部落格對 SEO 會有幫助。WP 的固定網址也是這類的運用，一般架設在 Apache 不會有什麼問題，只要有啟用 mod_rewrite 就 OK，不過如果是裝在 IIS 上，那就會看到很醜的 /<strong>index.php</strong>/aaa/bbb/123 這樣的網址，本篇就是教大家如何讓 IIS 真正擁有 rewrite 的功能。</p>
<p>首先必須安裝 for IIS 的擴充，微軟有針對 IIS7 開發一套 <a href="http://www.iis.net/downloads/default.aspx?tabid=34&#038;g=6&#038;i=1691" target="_blank">URL Rewrite Module</a>，不過 IIS6 就只能用別的，測試很多套最後選擇 <a href="http://www.helicontech.com/isapi_rewrite/" target="_blank">ISAPI_Rewrite</a>，因為它幾乎相容 .htaccess、mod_rewrite 語法，也比較穩定，ISAPI_Rewrite 有分要錢的 full 版和免費的 Lite 版，差異請看<a href="http://www.helicontech.com/isapi_rewrite/doc/litever.htm" target="_blank">這篇</a>，目前選 Lite 就夠用了。</p>
<p><strong>Step 1</strong><br />
先設定 WordPress ，進入後台選擇想要的固定網址格式，如「/%year%/%monthnum%/%day%/%postname%.html」，記得把前面 index.php 拿掉。<br />
<img src="http://blog.linym.net/wp-content/uploads/2009/01/e693b7e58f96.jpg" alt="固定網址" title="固定網址" width="624" height="324" class="alignnone size-full wp-image-330" /></p>
<p><strong>Step 2</strong><br />
安裝好 <a href="http://www.helicontech.com/download-isapi_rewrite3.htm" target="_blank">ISAPI_Rewrite 3 Lite</a>，編輯安裝目錄下的 httpd.conf 設定檔，內容範例：</p>
<pre>
# 假設WP網址為 http://aaa.domain.com/blog/
RewriteCond %{HTTP_HOST} ^aaa\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/blog/ /blog/index\.php [L]

# 假設WP網址為 http://bbb.domain.com
RewriteCond %{HTTP_HOST} ^bbb\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index\.php [L]
</pre>
<p><strong>Step 3</strong><br />
基本上完成前兩個動作固定網址就可以運作了，但是如果網址帶有中文就會發生 404 錯誤，原因可以參考<a href="http://www.zu14.cn/2008/12/13/wordpress_iis_cn/" target="_blank">這篇</a>，修改 wp-includes/classes.php</p>
<pre>
// 找到
$pathinfo = $_SERVER['PATH_INFO'];
// 改成
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'BIG5');

// 找到
$req_uri = $_SERVER['REQUEST_URI'];
// 改成
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'BIG5');
</pre>
<p>這樣就正常了。註：PHP 必須啟用 mbstring。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/319/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>恢復 MSI U100 的 F3 還原熱鍵</title>
		<link>http://blog.linym.net/archives/294</link>
		<comments>http://blog.linym.net/archives/294#comments</comments>
		<pubDate>Sat, 08 Nov 2008 13:07:28 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[硬體筆記]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[資訊新聞]]></category>
		<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[F3]]></category>
		<category><![CDATA[MSI]]></category>
		<category><![CDATA[U100]]></category>
		<category><![CDATA[微星]]></category>
		<category><![CDATA[還原系統]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=294</guid>
		<description><![CDATA[MSI U100 這台 Netbook 預設的還原熱鍵是開機按 F3，
(不確定 MSI 其他筆電是否相同)
但是只要有對分割區更動過，F3 就會消失不見，
所以依經驗判斷是使用 SRC 的還原系統，其開機還原熱鍵是寫在 MBR 中的，
於是將檔案叫出來研究一下就得到這個恢復 F3 熱鍵的程式。
使用方法：
請先確定您的還原磁區還在，
然後執行 SRCLIENT32.EXE 點選 Restore MBR，再按 Yes，
最後按 Exit 離開即可。
(※ Windows Vista/7 因 UAC 的關係，執行時請按右鍵選「以系統管理員身份執行」)

檔案下載：
http://blog.linym.net/files/MSISRC.rar
]]></description>
			<content:encoded><![CDATA[<p>MSI U100 這台 Netbook 預設的還原熱鍵是開機按 F3，<br />
(不確定 MSI 其他筆電是否相同)<br />
但是只要有對分割區更動過，F3 就會消失不見，<br />
所以依經驗判斷是使用 SRC 的還原系統，其開機還原熱鍵是寫在 MBR 中的，<br />
於是將檔案叫出來研究一下就得到這個恢復 F3 熱鍵的程式。</p>
<p><strong>使用方法：</strong><br />
請先確定您的還原磁區還在，<br />
然後執行 SRCLIENT32.EXE 點選 Restore MBR，再按 Yes，<br />
最後按 Exit 離開即可。</p>
<p>(※ <strong>Windows Vista/7 因 UAC 的關係，執行時請按右鍵選「以系統管理員身份執行」</strong>)</p>
<p><a href="http://blog.linym.net/wp-content/uploads/2008/11/e693b7e58f96.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/11/e693b7e58f96.jpg" alt="" title="SRCLIENT" width="499" height="288" class="alignnone size-full wp-image-295" /></a></p>
<p>檔案下載：<br />
<a href="http://blog.linym.net/files/MSISRC.rar">http://blog.linym.net/files/MSISRC.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/294/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IIS6+PHP5 (FastCGI) 安裝攻略</title>
		<link>http://blog.linym.net/archives/264</link>
		<comments>http://blog.linym.net/archives/264#comments</comments>
		<pubDate>Tue, 30 Sep 2008 03:01:08 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[server 2003]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=264</guid>
		<description><![CDATA[以往 PHP 的執行模式可分成 CGI 及 ISAPI 兩種，CGI 的 performance 是出名的慢，而 ISAPI 是較多人使用的，但是在 Windows 卻穩定性不佳，經常會導致整個 web server crash，所以微軟特別針對 IIS 開發了 FastCGI 模組(IIS7 已內建)，據說效能及穩定性都有大大改善。
安裝步驟：
1. 確認 IIS 已經裝好，然後下載 FastCGI Extension for IIS 6 並且安裝完成。
2. 到 PHP 官網下載新版 PHP5 壓縮檔，並且解壓縮(假設在 C:\PHP5)。
3. 將 C:\PHP5\php.ini-dist 改名為 php.ini，然後依需求編輯設定檔內容，範例：
(後三行必要)

include_path = &#34;.;C:\Inetpub\wwwroot&#34;
extension_dir = &#34;C:\PHP5\ext&#34;

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_zip.dll

date.timezone = "Asia/Taipei"

cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1;

4. 對 C:\PHP5 目錄增加 IIS_WPG [...]]]></description>
			<content:encoded><![CDATA[<p>以往 PHP 的執行模式可分成 CGI 及 ISAPI 兩種，CGI 的 performance 是出名的慢，而 ISAPI 是較多人使用的，但是在 Windows 卻穩定性不佳，經常會導致整個 web server crash，所以微軟特別針對 IIS 開發了 FastCGI 模組(IIS7 已內建)，據說效能及穩定性都有大大改善。</p>
<p><strong>安裝步驟：</strong><br />
1. 確認 IIS 已經裝好，然後下載 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2d481579-9a7c-4632-b6e6-dee9097f9dc5&#038;displaylang=en" target="_blank">FastCGI Extension for IIS 6</a> 並且安裝完成。</p>
<p>2. 到 <a href="http://www.php.net/downloads.php" target="_blank">PHP 官網</a>下載新版 PHP5 壓縮檔，並且解壓縮(假設在 C:\PHP5)。</p>
<p>3. 將 C:\PHP5\php.ini-dist 改名為 php.ini，然後依需求編輯設定檔內容，範例：<br />
<strong>(後三行必要)</strong></p>
<pre>
include_path = &quot;.;C:\Inetpub\wwwroot&quot;
extension_dir = &quot;C:\PHP5\ext&quot;

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_zip.dll

date.timezone = "Asia/Taipei"

cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1;
</pre>
<p>4. 對 C:\PHP5 目錄增加 IIS_WPG 群組的讀取及執行權限。<br />
<strong>(沒加這個就會跑出 FastCGI Error)</strong><br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/01.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/01.jpg" alt="" title="增加權限" width="368" height="445" class="alignnone size-full wp-image-268" /></a></p>
<p>5. 加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。<br />
Path=C:\PHP5;<br />
PHPRC=C:\PHP5<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/05.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/05.jpg" alt="" title="環境變數" width="384" height="393" class="alignnone size-full wp-image-253" /></a></p>
<p>6. 開啟 IIS 管理員，如下圖設定。<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/02.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/02.jpg" alt="" title="IIS管理員" width="471" height="449" class="alignnone size-full wp-image-270" /></a></p>
<p>7. 增加預設首頁 index.php<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/08.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/08.jpg" alt="" title="預設首頁" width="471" height="430" class="alignnone size-full wp-image-259" /></a></p>
<p>8. 檢查網頁服務延伸。<br />
(正常的話應該會有這一項，若沒有請自行加入 C:\WINDOWS\system32\inetsrv\fcgiext.dll)<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/031.jpg"><img src="http://blog.linym.net/wp-content/uploads/2008/09/031.jpg" alt="" title="網頁服務延伸" width="500" height="352" class="alignnone size-full wp-image-272" /></a></p>
<p>9. 開始 > 執行 > cmd<br />
輸入四道指令(注意路徑)：<br />
cd C:\WINDOWS\system32\inetsrv</p>
<p>cscript fcgiconfig.js -add -section:&quot;PHP&quot; -extension:php -path:&quot;<strong>C:\PHP5\php-cgi.exe</strong>&quot;</p>
<p>cscript fcgiconfig.js -set -section:&quot;PHP&quot; -InstanceMaxRequests:10000</p>
<p>cscript fcgiconfig.js -set -section:&quot;PHP&quot; -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000<br />
(視情況修改數值，InstanceMaxRequests 需小於等於 PHP_FCGI_MAX_REQUESTS)</p>
<p>10. 重新啟動 IIS 就 OK 囉，丟一個測試檔案到網站目錄看看吧！<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/04.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/04.jpg" alt="" title="phpinfo" width="500" height="339" class="alignnone size-full wp-image-275" /></a></p>
<p><strong>※2009/03/19 補充：</strong><br />
   使用 FastCGI 執行 PHP 程式時，系統是以「NETWORK SERVICE」這個身份執行的，而一般靜態檔案則是以 IIS 預設的匿名身份「IUSR_MachineName」執行，所以如果安裝上發生問題，請特別注意這個權限配置。</p>
<p><strong>相關文章：</strong></p>
<ul>
<li><a href="http://learn.iis.net/page.aspx/247/using-fastcgi-to-host-php-applications-on-iis-60/">Using FastCGI to Host PHP Applications on IIS 6.0</a></li>
<li><a href="http://blog.miniasp.com/post/2008/11/Useful-tool-FastCGI-Extension-for-Internet-Information-Services-60.aspx">介紹好用工具：FastCGI Extension for IIS6.0</a></li>
<li><a href="http://blog.miniasp.com/post/2009/03/IIS-6-Identity-and-Windows-Access-Control-is-not-what-you-expected.aspx">IIS 執行的身份識別與 Windows 權限控管不是你想的那樣</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/264/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>IIS6+PHP5 (ISAPI) 安裝攻略</title>
		<link>http://blog.linym.net/archives/240</link>
		<comments>http://blog.linym.net/archives/240#comments</comments>
		<pubDate>Tue, 30 Sep 2008 02:17:21 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[ISAPI]]></category>
		<category><![CDATA[server 2003]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=240</guid>
		<description><![CDATA[最近因為特別需求要在 IIS6 上面跑 PHP，把以前寫的筆記拿出來看，卻發現怎麼弄也跑不起來，看了很多篇文章還是不行，研究了許久終於可以跑了，經過多次測試保證 100% 可行。
※ 此篇是以 ISAPI 模式執行 PHP，建議使用另一篇的 FastCGI 會有較好的效能。
安裝步驟：
1. 確認 IIS 已經裝好，到 PHP 官網下載新版 PHP5 壓縮檔，並且解壓縮(假設在 C:\PHP5)。
2. 將 C:\PHP5\php.ini-dist 改名為 php.ini，然後依需求編輯設定檔內容，範例：

include_path = &#34;.;C:\Inetpub\wwwroot&#34;
extension_dir = &#34;C:\PHP5\ext&#34;

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_zip.dll

date.timezone = "Asia/Taipei"

3. 對 C:\PHP5 目錄增加 IIS_WPG 群組及 IUSR_XXXX 使用者的讀取及執行權限。
(關鍵步驟，一定要兩個都增加，否則執行 PHP 會跳出驗證框)

4. 加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。
Path=C:\PHP5;
PHPRC=C:\PHP5

5. 開啟 IIS 管理員，如下圖設定。

6. 增加預設首頁 index.php

7. 增加網頁服務延伸。

8. 重新啟動 IIS 就 OK [...]]]></description>
			<content:encoded><![CDATA[<p>最近因為特別需求要在 IIS6 上面跑 PHP，把以前寫的筆記拿出來看，卻發現怎麼弄也跑不起來，看了很多篇文章還是不行，研究了許久終於可以跑了，經過多次測試保證 100% 可行。<br />
<em>※ 此篇是以 ISAPI 模式執行 PHP，建議使用另一篇的 <a href="http://blog.linym.net/archives/264">FastCGI</a> 會有較好的效能。</em></p>
<p><strong>安裝步驟：</strong><br />
1. 確認 IIS 已經裝好，到 <a href="http://www.php.net/downloads.php" target="_blank">PHP 官網</a>下載新版 PHP5 壓縮檔，並且解壓縮(假設在 C:\PHP5)。</p>
<p>2. 將 C:\PHP5\php.ini-dist 改名為 php.ini，然後依需求編輯設定檔內容，範例：</p>
<pre>
include_path = &quot;.;C:\Inetpub\wwwroot&quot;
extension_dir = &quot;C:\PHP5\ext&quot;

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_zip.dll

date.timezone = "Asia/Taipei"
</pre>
<p>3. 對 C:\PHP5 目錄增加 IIS_WPG 群組及 IUSR_XXXX 使用者的讀取及執行權限。<br />
<strong>(關鍵步驟，一定要兩個都增加，否則執行 PHP 會跳出驗證框)</strong><br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/03.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/03.jpg" alt="" title="增加權限" width="368" height="445" class="alignnone size-full wp-image-249" /></a></p>
<p>4. 加入系統環境變數 (讓 extension 及 php.ini 能順利被找到)。<br />
Path=C:\PHP5;<br />
PHPRC=C:\PHP5<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/05.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/05.jpg" alt="" title="環境變數" width="384" height="393" class="alignnone size-full wp-image-253" /></a></p>
<p>5. 開啟 IIS 管理員，如下圖設定。<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/06.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/06.jpg" alt="" title="IIS 管理員" width="472" height="532" class="alignnone size-full wp-image-255" /></a></p>
<p>6. 增加預設首頁 index.php<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/08.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/08.jpg" alt="" title="預設首頁" width="471" height="430" class="alignnone size-full wp-image-259" /></a></p>
<p>7. 增加網頁服務延伸。<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/07.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/07.jpg" alt="" title="網頁服務延伸" width="500" height="538" class="alignnone size-full wp-image-257" /></a></p>
<p>8. 重新啟動 IIS 就 OK 囉，丟一個測試檔案到網站目錄看看吧！<br />
<a href="http://blog.linym.net/wp-content/uploads/2008/09/09.jpg" target="_blank"><img src="http://blog.linym.net/wp-content/uploads/2008/09/09.jpg" alt="" title="phpinfo" width="500" height="339" class="alignnone size-full wp-image-260" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/240/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>用 PHP 讀寫 Excel 檔案</title>
		<link>http://blog.linym.net/archives/229</link>
		<comments>http://blog.linym.net/archives/229#comments</comments>
		<pubDate>Thu, 18 Sep 2008 13:47:07 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[讀取excel]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=229</guid>
		<description><![CDATA[PHP 讀寫 Excel 的方法有很多種，例如先轉成 CSV 格式來讀，然後用特定符號去分隔欄位。但是如果遇到欄位格式不固定的 Excel 就很麻煩了，所以需要可以直接操作 excel 的方法，方便直接指定要取某欄某列的值。
如果是 Windows 系統的話可以使用 COM 元件去讀取，但缺點就是只能在 Windows 上跑，失去了跨平台性，所以也有人另外寫出可以讀寫 Excel 的類別，這次要推薦的是 PHPExcel，PHPExcel 的功能非常強大，原本就支援 Excel 2007，新版中也能讀取 Excel 2003 舊版的 Excel 囉！
從 PHPExcel 下載回來的檔案中就包含不少範例，但是讀取的部份很簡略，所以底下貼個讀取 Excel 內容的範例：


&#60;?php
set_include_path(get_include_path() . PATH_SEPARATOR . &#039;./Classes/&#039;);
include &#039;PHPExcel/IOFactory.php&#039;;

$reader = PHPExcel_IOFactory::createReader(&#039;Excel5&#039;); // 讀取舊版 excel 檔案
$PHPExcel = $reader-&#62;load(&#34;course_table.xls&#34;); // 檔案名稱
$sheet = $PHPExcel-&#62;getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet-&#62;getHighestRow(); // [...]]]></description>
			<content:encoded><![CDATA[<p>PHP 讀寫 Excel 的方法有很多種，例如先轉成 CSV 格式來讀，然後用特定符號去分隔欄位。但是如果遇到欄位格式不固定的 Excel 就很麻煩了，所以需要可以直接操作 excel 的方法，方便直接指定要取某欄某列的值。</p>
<p>如果是 Windows 系統的話可以使用 <a href="http://tw2.php.net/manual/en/class.com.php">COM</a> 元件去讀取，但缺點就是只能在 Windows 上跑，失去了跨平台性，所以也有人另外寫出可以讀寫 Excel 的類別，這次要推薦的是 <a href="http://www.codeplex.com/PHPExcel">PHPExcel</a>，<a href="http://www.codeplex.com/PHPExcel">PHPExcel</a> 的功能非常強大，原本就支援 Excel 2007，新版中也能讀取 Excel 2003 舊版的 Excel 囉！</p>
<p>從 <a href="http://www.codeplex.com/PHPExcel">PHPExcel</a> 下載回來的檔案中就包含不少範例，但是讀取的部份很簡略，所以底下貼個讀取 Excel 內容的範例：</p>
<pre title="code" class="php">

&lt;?php
set_include_path(get_include_path() . PATH_SEPARATOR . &#039;./Classes/&#039;);
include &#039;PHPExcel/IOFactory.php&#039;;

$reader = PHPExcel_IOFactory::createReader(&#039;Excel5&#039;); // 讀取舊版 excel 檔案
$PHPExcel = $reader-&gt;load(&quot;course_table.xls&quot;); // 檔案名稱
$sheet = $PHPExcel-&gt;getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet-&gt;getHighestRow(); // 取得總列數

// 一次讀取一列
for ($row = 2; $row &lt;= $highestRow; $row++) {

    for ($column = 1; $column &lt;= 9; $column++) {
		$val = $sheet-&gt;getCellByColumnAndRow($column, $row)-&gt;getValue();
        echo $val . &#039; &#039;;
	}
	echo &quot;&lt;br /&gt;&quot;;

}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/229/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Firefox 3 擴充套件</title>
		<link>http://blog.linym.net/archives/222</link>
		<comments>http://blog.linym.net/archives/222#comments</comments>
		<pubDate>Wed, 18 Jun 2008 02:03:33 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[擴充套件]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=222</guid>
		<description><![CDATA[眾所期待的 Firefox 3 總算推出正式版囉！瀏覽網頁速度真的是順暢很多，佔用記憶體也有改善。以下是我目前在 Firefox 3 所安裝的擴充套件列表：

FireGestures
取代 All-in-One Gestures 的滑鼠手勢。
Foxmarks Bookmark Synchronizer
免費提供放 FX 書籤的空間，除了可以同步 FX 書籤外，登入該網站可以線上瀏覽你的書籤。經常在不同電腦工作者必裝。
IE Tab
在 FX 中內嵌 IE 切換功能，非常方便，必裝!
Download Statusbar
下載檔案時直接顯示在下方，不用另外跳出下載管理員。
FireBug
JavaScript 除錯工具，網站開發人員必裝，並且有比 DOM Inspector 更好的 DOM 觀察器。
HTML Validator
驗證網頁是否符合 Web Standards，顯示 error、warning，並有詳細說明。
Web Developer
功能超多的工具，比如關閉 Javascript、解除文字方塊字數限制等等
Google Toolbar
就是 Google 出的工具列，主要是需要他的即時單字翻譯功能，也有 Gmail 新信檢查功能。
Easy DragToGo
支援 FX3 的 DragAndGo，設定簡單明瞭。
Charset Switcher
比 Right Encoding 更優秀的網頁編碼切換工具
DevBoi
提供許多參考文件，如 HTML、CSS、JavaScript，還可另外擴充 PHP、RoR 等等，對網頁開發人員很實用。
FxIF
直接在圖片上按右鍵 > 屬性，可直接觀看圖片的 EXIF 資訊。

]]></description>
			<content:encoded><![CDATA[<p>眾所期待的 <a href="http://www.moztw.org/firefox/">Firefox</a> 3 總算推出正式版囉！瀏覽網頁速度真的是順暢很多，佔用記憶體也有改善。以下是我目前在 Firefox 3 所安裝的擴充套件列表：</p>
<ul>
<li><a href="http://www.xuldev.org/firegestures/">FireGestures</a><br />
取代 All-in-One Gestures 的滑鼠手勢。</li>
<li><a href="http://www.foxmarks.com/download">Foxmarks Bookmark Synchronizer</a><br />
免費提供放 FX 書籤的空間，除了可以同步 FX 書籤外，登入該網站可以線上瀏覽你的書籤。經常在不同電腦工作者必裝。</li>
<li><a href="http://ietab.mozdev.org/">IE Tab</a><br />
在 FX 中內嵌 IE 切換功能，非常方便，必裝!</li>
<li><a href="http://downloadstatusbar.mozdev.org/">Download Statusbar</a><br />
下載檔案時直接顯示在下方，不用另外跳出下載管理員。</li>
<li><a href="http://getfirebug.com/releases/index.html">FireBug</a><br />
JavaScript 除錯工具，網站開發人員必裝，並且有比 DOM Inspector 更好的 DOM 觀察器。</li>
<li><a href="http://users.skynet.be/mgueury/mozilla/download.html">HTML Validator</a><br />
驗證網頁是否符合 Web Standards，顯示 error、warning，並有詳細說明。</li>
<li><a href="http://chrispederick.com/work/web-developer/localization/">Web Developer</a><br />
功能超多的工具，比如關閉 Javascript、解除文字方塊字數限制等等</li>
<li><a href="http://toolbar.google.com/">Google Toolbar</a><br />
就是 Google 出的工具列，主要是需要他的即時單字翻譯功能，也有 Gmail 新信檢查功能。</li>
<li><a href="https://addons.mozilla.org/zh-TW/firefox/addon/6639">Easy DragToGo</a><br />
支援 FX3 的 DragAndGo，設定簡單明瞭。</li>
<li><a href="https://addons.mozilla.org/zh-TW/firefox/addon/8493">Charset Switcher</a><br />
比 Right Encoding 更優秀的網頁編碼切換工具</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/1673">DevBoi</a><br />
提供許多參考文件，如 HTML、CSS、JavaScript，還可另外擴充 PHP、RoR 等等，對網頁開發人員很實用。</li>
<li><a href="http://ted.mielczarek.org/code/mozilla/fxif/">FxIF</a><br />
直接在圖片上按右鍵 > 屬性，可直接觀看圖片的 EXIF 資訊。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/222/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IE 下載 Office 2007 檔案變成 zip</title>
		<link>http://blog.linym.net/archives/221</link>
		<comments>http://blog.linym.net/archives/221#comments</comments>
		<pubDate>Tue, 17 Jun 2008 16:33:50 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[教學]]></category>

		<guid isPermaLink="false">http://blog.linym.net/?p=221</guid>
		<description><![CDATA[如果您的 Web Server 是採用 Apache，那有可能使用 Internet Explorer 下載 Office 2007(docx、ppts、xlsx...) 檔案的時候，會發現副檔名自動變成 .zip，有以下解決方法(擇一即可)：
一、修改 mime.types 檔案
加入：
application/vnd.openxmlformats    docx pptx xlsx
二、修改 httpd.conf 檔案
加入：
AddType  application/vnd.openxmlformats  .docx .pptx .xlsx
三、使用 .htaccess
加入：
AddType  application/vnd.openxmlformats  .docx .pptx .xlsx
參考文章：Office 2007 MIME types for Apache 
]]></description>
			<content:encoded><![CDATA[<p>如果您的 Web Server 是採用 Apache，那有可能使用 Internet Explorer 下載 Office 2007(docx、ppts、xlsx...) 檔案的時候，會發現副檔名自動變成 .zip，有以下解決方法(擇一即可)：</p>
<p><strong>一、修改 mime.types 檔案</strong><br />
加入：</p>
<pre>application/vnd.openxmlformats    docx pptx xlsx</pre>
<p><strong>二、修改 httpd.conf 檔案</strong><br />
加入：</p>
<pre>AddType  application/vnd.openxmlformats  .docx .pptx .xlsx</pre>
<p><strong>三、使用 .htaccess</strong><br />
加入：</p>
<pre>AddType  application/vnd.openxmlformats  .docx .pptx .xlsx</pre>
<p>參考文章：<a href="http://www.vladville.com/2007/04/office-2007-mime-types-for-apache.html">Office 2007 MIME types for Apache </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/221/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[CSS]滑鼠移過表格列變色及附加連結效果</title>
		<link>http://blog.linym.net/archives/219</link>
		<comments>http://blog.linym.net/archives/219#comments</comments>
		<pubDate>Sat, 08 Mar 2008 05:06:43 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[網頁設計]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[標準]]></category>
		<category><![CDATA[網頁]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/219</guid>
		<description><![CDATA[老實說這個標題不知道要怎麼下比較好理解。我想要滑鼠移過表格某一列時會變色，而且不只超連結的文字可以點，而是整列都有連結效果....囧...先直接看 Demo 吧！
要達到這種效果，很多教學都是使用 JavaScript 裡的 onmouseover、onmouseout 及 onclick 事件來達成，不過現在有純 CSS 的解法，並且通用多數瀏覽器，這個技巧其實在很多國外網站看過，不過昨天向艾德請教之後才真正學起來^^


#tb td a {
    display: block;
    height: 35px;
    line-height: 35px;
    background: #FFF9E0;
}
#tb td a:hover {
    background: #E2D9B2;
}

關鍵就是使用 display: block 將 a 顯示為區塊元素，然後依照需求設個高度或寬度給它即可，line-height 給予相同高度可以確保文字垂直置中，這樣比使用 JavaScript 方便多囉。
]]></description>
			<content:encoded><![CDATA[<p>老實說這個標題不知道要怎麼下比較好理解。我想要滑鼠移過表格某一列時會變色，而且不只超連結的文字可以點，而是整列都有連結效果....囧...先直接看 <a href='http://blog.linym.net/wp-content/uploads/2008/03/css.html' title='css.html' target="_blank">Demo</a> 吧！<br />
要達到這種效果，很多教學都是使用 JavaScript 裡的 onmouseover、onmouseout 及 onclick 事件來達成，不過現在有純 CSS 的解法，並且通用多數瀏覽器，這個技巧其實在很多國外網站看過，不過昨天向艾德請教之後才真正學起來^^</p>
<pre title="code" class="css">

#tb td a {
    display: block;
    height: 35px;
    line-height: 35px;
    background: #FFF9E0;
}
#tb td a:hover {
    background: #E2D9B2;
}
</pre>
<p>關鍵就是使用 display: block 將 a 顯示為區塊元素，然後依照需求設個高度或寬度給它即可，line-height 給予相同高度可以確保文字垂直置中，這樣比使用 JavaScript 方便多囉。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/219/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>撰寫 PHP 程式的一些優化建議</title>
		<link>http://blog.linym.net/archives/218</link>
		<comments>http://blog.linym.net/archives/218#comments</comments>
		<pubDate>Mon, 11 Feb 2008 15:56:50 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[optimize]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/218</guid>
		<description><![CDATA[這裡有一篇 Tsung 翻譯的「PHP 程式效能優化的 40 條建議」，覺得很不錯。個人接觸 PHP 這個語言約有四個年頭了，再撰寫時多少會注意一些效能細節，不過有時為了讓程式碼更好看、簡短，往往就忽略掉這些細節，這篇的建議正好可以讓新手學習、老手複習一些 PHP 的最佳化技巧。
引用內容：

如果一個方法可靜態化，就對它做靜態聲明。速率可提升至4倍
echo 比 print 快
使用echo的多重參數（譯註：指用逗號而不是句點）代替字元串連接
在執行for循環之前確定最大循環數，不要每循環一次都計算最大值
註銷那些不用的變量尤其是大數組，以便釋放內存
盡量避免使用__get，__set，__autoload
require_once()代價昂貴
在包含文件時使用完整路徑，解析操作系統路徑所需的時間會更少
如果你想知道腳本開始執行（譯註：即服務器端收到客戶端請求）的時刻，使用$_SERVER['REQUEST_TIME']要好於time()
函數代替正則表達式完成相同功能
str_replace函數比preg_replace函數快，但strtr函數的效率是str_replace函數的四倍
如果一個字元串替換函數，可接受數組或字元作為參數，並且參數長度不太長，那麼可以考慮額外寫一段替換程式，使得每次傳遞參數是一個字元，而不是只寫一行程式接受數組作為查詢和替換的參數
使用選擇分支語句（譯註：即switch case）好於使用多個if，else if語句
用@屏蔽錯誤消息的做法非常慢
打開apache的mod_deflate模塊
資料庫連接當使用完畢時應關掉
$row['id']的效率是$row[id]的7倍
錯誤訊息代價昂貴
盡量不要在for循環中使用函數，比如for ($x=0; $x &#60; count($array); $x)每循環一次都會調用count()函數
在function中遞增局部變量，速度是最快的。幾乎與在函數中調用局部變量的速度相當
遞增一個全局變量要比遞增一個局部變量慢2倍
遞增一個物件屬性（如：$this-&#62;prop++）要比遞增一個局部變量慢3倍
遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢9至10倍
僅定義一個局部變量而沒在函數中調用它，同樣會減慢速度（其程度相當於遞增一個局部變量）。PHP大概會檢查看是否存在全局變量
方法調用看來與類中定義的方法的數量無關，因為我（在測試方法之前和之後都）添加了10個方法，但性能上沒有變化
派生類中的方法運行起來要快於在基類中定義的同樣的方法
調用帶有一個參數的空函數，其花費的時間相當於執行7至8次的局部變量遞增操作。類似的方法調用所花費的時間接近於15次的局部變量遞增操作
用單引號代替雙引號來包含字元串，這樣做會更快一些。因為PHP會在雙引號包圍的字元串中搜尋變量，單引號則不會。當然，只有當你不需要在字元串中包含變量時才可以這麼做
輸出多個字元串時，用逗號代替句點來分隔字元串，速度更快。註意：只有echo能這麼做，它是一種可以把多個字元串當作參數的“函數”（譯註：PHP手冊中說echo是語言結構，不是真正的函數，故把函數加上了雙引號）
Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。盡量多用靜態HTML頁面，少用腳本
除非腳本可以緩存，否則每次調用時都會重新編譯一次。引入一套PHP緩存機制通常可以提升25%至100%的性能，以免除編譯開銷
盡量做緩存，可使用memcached。memcached是一款高性能的內存物件緩存系統，可用來加速動態Web應用程式，減輕數據庫負載。對運算碼 (OP code)的緩存很有用，使得腳本不必為每個請求做重新編譯
當操作字元串並需要檢驗其長度是否滿足某種要求時，你想當然地會使用strlen()函數。此函數執行起來相當快，因為它不做任何計算，只返回在zval 結構（C的內置數據結構，用於存儲PHP變量）中存儲的已知字元串長度。但是，由於strlen()是函數，多多少少會有些慢，因為函數調用會經過諸多步驟，如字母小寫化（譯註：指函數名小寫化，PHP不區分函數名大小寫），會跟隨被調用的函數一起執行。在某些情況下，你可以使用isset() 技巧加速執行你的程式舉例如下:if (strlen($foo) &#60; 5) { echo "Foo is too short"; }與下面的技巧做比較:if (!isset($foo{5})) { echo "Foo is too short"; }調用isset()恰巧比strlen()快，因為與後者不同的是，isset()作為一種語言結構，意味著它的執行不需要函數查找和字母小寫化。也就是說，實際上在檢驗字元串長度的頂層程式中你沒有花太多開銷
當執行變數$i的遞增或遞減時，$i++會比++$i慢一些。這種差異是PHP特有的，並不適用於其他語言，所以請不要修改你的C或Java程式並指望它們能立即變快，沒用的。++$i更快是因為它只需要3條指令(opcodes)，$i++則需要4條指令。後置遞增實際上會產生一個臨時變量，這個臨時變量隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種，正如Zend的PHP優化器所作的那樣。牢記這個優化處理不失為一個好主意，因為並不是所有的指令優化器都會做同樣的優化處理，並且存在大量沒有裝配指令優化器的網際網路服務提供商（ISPs）和服務器
並不是所有都要使用OOP，面向物件往往開銷很大，每個方法和物件調用都會消耗很多Memory
並非要用 class 實現所有的數據結構，數組也很有用
不要把方法細分得過多，仔細想想你真正打算重用的是哪些程式?
當你需要時，你總能把程式分解成方法
盡量採用大量的PHP內置函數
如果在程式中存在大量耗時的函數，你可以考慮用C擴展的方式實現它們
評估檢驗(profile)你的程式。檢驗器會告訴你，程式的哪些部分消耗了多少時間。Xdebug調試器包含了檢驗程式，評估檢驗總體上可以顯示出程式的瓶頸
mod_zip可作為Apache模塊，用來即時壓縮你的數據，並可讓數據傳輸量降低80%
另一篇優化PHP的精彩文章，由John Lim撰寫 

]]></description>
			<content:encoded><![CDATA[<p>這裡有一篇 Tsung 翻譯的「<a href="http://plog.longwin.com.tw/programming/2008/02/05/php_optimizing_40_comment_2008" target="_blank">PHP 程式效能優化的 40 條建議</a>」，覺得很不錯。個人接觸 PHP 這個語言約有四個年頭了，再撰寫時多少會注意一些效能細節，不過有時為了讓程式碼更好看、簡短，往往就忽略掉這些細節，這篇的建議正好可以讓新手學習、老手複習一些 PHP 的最佳化技巧。</p>
<p><strong>引用內容：</strong></p>
<ol>
<li>如果一個方法可靜態化，就對它做靜態聲明。速率可提升至4倍</li>
<li>echo 比 print 快</li>
<li>使用echo的多重參數（譯註：指用逗號而不是句點）代替字元串連接</li>
<li>在執行for循環之前確定最大循環數，不要每循環一次都計算最大值</li>
<li>註銷那些不用的變量尤其是大數組，以便釋放內存</li>
<li>盡量避免使用__get，__set，__autoload</li>
<li>require_once()代價昂貴</li>
<li>在包含文件時使用完整路徑，解析操作系統路徑所需的時間會更少</li>
<li>如果你想知道腳本開始執行（譯註：即服務器端收到客戶端請求）的時刻，使用$_SERVER['REQUEST_TIME']要好於time()</li>
<li>函數代替正則表達式完成相同功能</li>
<li>str_replace函數比preg_replace函數快，但strtr函數的效率是str_replace函數的四倍</li>
<li>如果一個字元串替換函數，可接受數組或字元作為參數，並且參數長度不太長，那麼可以考慮額外寫一段替換程式，使得每次傳遞參數是一個字元，而不是只寫一行程式接受數組作為查詢和替換的參數</li>
<li>使用選擇分支語句（譯註：即switch case）好於使用多個if，else if語句</li>
<li>用@屏蔽錯誤消息的做法非常慢</li>
<li>打開apache的mod_deflate模塊</li>
<li>資料庫連接當使用完畢時應關掉</li>
<li>$row['id']的效率是$row[id]的7倍</li>
<li>錯誤訊息代價昂貴</li>
<li>盡量不要在for循環中使用函數，比如for ($x=0; $x &lt; count($array); $x)每循環一次都會調用count()函數</li>
<li>在function中遞增局部變量，速度是最快的。幾乎與在函數中調用局部變量的速度相當</li>
<li>遞增一個全局變量要比遞增一個局部變量慢2倍</li>
<li>遞增一個物件屬性（如：$this-&gt;prop++）要比遞增一個局部變量慢3倍</li>
<li>遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢9至10倍</li>
<li>僅定義一個局部變量而沒在函數中調用它，同樣會減慢速度（其程度相當於遞增一個局部變量）。PHP大概會檢查看是否存在全局變量</li>
<li>方法調用看來與類中定義的方法的數量無關，因為我（在測試方法之前和之後都）添加了10個方法，但性能上沒有變化</li>
<li>派生類中的方法運行起來要快於在基類中定義的同樣的方法</li>
<li>調用帶有一個參數的空函數，其花費的時間相當於執行7至8次的局部變量遞增操作。類似的方法調用所花費的時間接近於15次的局部變量遞增操作</li>
<li>用單引號代替雙引號來包含字元串，這樣做會更快一些。因為PHP會在雙引號包圍的字元串中搜尋變量，單引號則不會。當然，只有當你不需要在字元串中包含變量時才可以這麼做</li>
<li>輸出多個字元串時，用逗號代替句點來分隔字元串，速度更快。註意：只有echo能這麼做，它是一種可以把多個字元串當作參數的“函數”（譯註：PHP手冊中說echo是語言結構，不是真正的函數，故把函數加上了雙引號）</li>
<li>Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。盡量多用靜態HTML頁面，少用腳本</li>
<li>除非腳本可以緩存，否則每次調用時都會重新編譯一次。引入一套PHP緩存機制通常可以提升25%至100%的性能，以免除編譯開銷</li>
<li>盡量做緩存，可使用memcached。memcached是一款高性能的內存物件緩存系統，可用來加速動態Web應用程式，減輕數據庫負載。對運算碼 (OP code)的緩存很有用，使得腳本不必為每個請求做重新編譯</li>
<li>當操作字元串並需要檢驗其長度是否滿足某種要求時，你想當然地會使用strlen()函數。此函數執行起來相當快，因為它不做任何計算，只返回在zval 結構（C的內置數據結構，用於存儲PHP變量）中存儲的已知字元串長度。但是，由於strlen()是函數，多多少少會有些慢，因為函數調用會經過諸多步驟，如字母小寫化（譯註：指函數名小寫化，PHP不區分函數名大小寫），會跟隨被調用的函數一起執行。在某些情況下，你可以使用isset() 技巧加速執行你的程式<br />舉例如下:<br />if (strlen($foo) &lt; 5) { echo "Foo is too short"; }<br />與下面的技巧做比較:<br />if (!isset($foo{5})) { echo "Foo is too short"; }<br />調用isset()恰巧比strlen()快，因為與後者不同的是，isset()作為一種語言結構，意味著它的執行不需要函數查找和字母小寫化。也就是說，實際上在檢驗字元串長度的頂層程式中你沒有花太多開銷</li>
<li>當執行變數$i的遞增或遞減時，$i++會比++$i慢一些。這種差異是PHP特有的，並不適用於其他語言，所以請不要修改你的C或Java程式並指望它們能立即變快，沒用的。++$i更快是因為它只需要3條指令(opcodes)，$i++則需要4條指令。後置遞增實際上會產生一個臨時變量，這個臨時變量隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種，正如Zend的PHP優化器所作的那樣。牢記這個優化處理不失為一個好主意，因為並不是所有的指令優化器都會做同樣的優化處理，並且存在大量沒有裝配指令優化器的網際網路服務提供商（ISPs）和服務器</li>
<li>並不是所有都要使用OOP，面向物件往往開銷很大，每個方法和物件調用都會消耗很多Memory</li>
<li>並非要用 class 實現所有的數據結構，數組也很有用</li>
<li>不要把方法細分得過多，仔細想想你真正打算重用的是哪些程式?</li>
<li>當你需要時，你總能把程式分解成方法</li>
<li>盡量採用大量的PHP內置函數</li>
<li>如果在程式中存在大量耗時的函數，你可以考慮用C擴展的方式實現它們</li>
<li>評估檢驗(profile)你的程式。檢驗器會告訴你，程式的哪些部分消耗了多少時間。Xdebug調試器包含了檢驗程式，評估檢驗總體上可以顯示出程式的瓶頸</li>
<li>mod_zip可作為Apache模塊，用來即時壓縮你的數據，並可讓數據傳輸量降低80%</li>
<li>另一篇<a href="http://phplens.com/lens/php-book/optimizing-debugging-php.php" target="_blank" title="A HOWTO on Optimizing PHP with tips and methodologies">優化PHP</a>的精彩文章，由John Lim撰寫 </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/218/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>有誤的新聞報導:陳冠希事件</title>
		<link>http://blog.linym.net/archives/217</link>
		<comments>http://blog.linym.net/archives/217#comments</comments>
		<pubDate>Thu, 07 Feb 2008 16:39:56 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[資訊新聞]]></category>
		<category><![CDATA[徹底刪除檔案]]></category>
		<category><![CDATA[陳冠希事件]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/217</guid>
		<description><![CDATA[最近最熱門的話題應該就是陳冠希事件了，有報導是說冠希電腦送修前已經將照片刪除了，結果被維修人員用軟體還原出來導致相片外流。接著不出所料地，今天就出現了這則報導：
別當陳冠希第二！「存」過必留痕跡　消失檔案可復原
2008/02/07 18:47
生活中心／綜合報導
一場電腦維修扯出陳冠希的裸照風波，也給大家一個警惕，放在電腦裡的資料，就算刪除了，還是不保險，專家說只要資料曾經儲存在電腦硬碟，就算刪除了，只要硬碟複寫不嚴重，透過還原程式，有99%的機率能把遺失的資料找回來，而這也讓有心人士輕易竊取資料。
陳冠希就是這樣犯了大錯，把煽情照一張張丟到資源回收桶，再一次全部清除，自以為不著痕跡天衣無縫，結果捅出大紕漏，因為我們只要有復原軟體，三秒鐘在這個RECYCLER回收檔案夾，雖然檔名變了，但內容點出來一看，刪除的檔案毫髮無傷。
資訊工程師黃先生表示，「因為資源回收桶在Windows上面，只是屬於暫時性(刪除)，就是它在系統上面不會看到，可是實際上它的資料還是儲存在硬碟空間上面。
除非專業，否則90%的人都不知道還有這招，要刪檔案，刪得清潔溜溜，只有一個方法，點進電腦格式化，重點來了，這個快速格式化千萬不能點，資訊工程師黃先生提醒，「你如果要完整刪除的話，必須要使用完整格式化，它才會將磁區上面的任何資料清乾淨。」
你也有想刪除的秘密嗎？這招必殺「刪除法」可得學起來，否則就別在電腦留秘密，免得哪天電腦送修，不小心就成了第二個陳冠希。 
http://www.ettoday.com/2008/02/07/91-2228846.htm
可見那位「資訊工程師黃先生」自己並沒有作過實際的實驗，否則應該知道不論快速格式化或完整格式化(不要跟我說低階格式化)，檔案都是可以救回來的。要徹底刪除檔案，可以借助一些軟體來達成(keyword: 徹底刪除檔案、檔案碎紙機)，這類軟體通常會多次複寫檔案所在的磁區，甚至使用特別的演算法來複寫，讓檔案可還原的機率降到最低。
※推薦一個討論主題：關於陳冠希照片事件中發現一個電腦問題請教！
]]></description>
			<content:encoded><![CDATA[<p>最近最熱門的話題應該就是陳冠希事件了，有報導是說冠希電腦送修前已經將照片刪除了，結果被維修人員用軟體還原出來導致相片外流。接著不出所料地，今天就出現了這則報導：</p>
<blockquote><p>別當陳冠希第二！「存」過必留痕跡　消失檔案可復原</p>
<p>2008/02/07 18:47<br />
生活中心／綜合報導</p>
<p>一場電腦維修扯出陳冠希的裸照風波，也給大家一個警惕，放在電腦裡的資料，就算刪除了，還是不保險，專家說只要資料曾經儲存在電腦硬碟，就算刪除了，只要硬碟複寫不嚴重，透過還原程式，有99%的機率能把遺失的資料找回來，而這也讓有心人士輕易竊取資料。</p>
<p>陳冠希就是這樣犯了大錯，把煽情照一張張丟到資源回收桶，再一次全部清除，自以為不著痕跡天衣無縫，結果捅出大紕漏，因為我們只要有復原軟體，三秒鐘在這個RECYCLER回收檔案夾，雖然檔名變了，但內容點出來一看，刪除的檔案毫髮無傷。</p>
<p>資訊工程師黃先生表示，「因為資源回收桶在Windows上面，只是屬於暫時性(刪除)，就是它在系統上面不會看到，可是實際上它的資料還是儲存在硬碟空間上面。</p>
<p>除非專業，否則90%的人都不知道還有這招，要刪檔案，刪得清潔溜溜，只有一個方法，點進電腦格式化，重點來了，這個快速格式化千萬不能點，資訊工程師黃先生提醒，「<span style="color:red">你如果要完整刪除的話，必須要使用完整格式化，它才會將磁區上面的任何資料清乾淨。</span>」</p>
<p>你也有想刪除的秘密嗎？這招必殺「刪除法」可得學起來，否則就別在電腦留秘密，免得哪天電腦送修，不小心就成了第二個陳冠希。 </p>
<p>http://www.ettoday.com/2008/02/07/91-2228846.htm</p></blockquote>
<p>可見那位「資訊工程師黃先生」自己並沒有作過實際的實驗，否則應該知道不論快速格式化或完整格式化(不要跟我說低階格式化)，檔案都是可以救回來的。要徹底刪除檔案，可以借助一些軟體來達成(keyword: 徹底刪除檔案、檔案碎紙機)，這類軟體通常會多次複寫檔案所在的磁區，甚至使用特別的演算法來複寫，讓檔案可還原的機率降到最低。</p>
<p>※推薦一個討論主題：<a href="http://www.mobile01.com/topicdetail.php?f=174&#038;t=517032">關於陳冠希照片事件中發現一個電腦問題請教！</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/217/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TwSMS 發簡訊 (Linux C 版)</title>
		<link>http://blog.linym.net/archives/216</link>
		<comments>http://blog.linym.net/archives/216#comments</comments>
		<pubDate>Sun, 20 Jan 2008 17:39:20 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[TwSMS]]></category>
		<category><![CDATA[傳簡訊]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/216</guid>
		<description><![CDATA[台灣簡訊(TwSMS)是國內一家線上傳簡訊的服務商，提供文字簡訊、語音簡訊等服務，價格也很合理，最重要的是有提供 API 介面，方便用戶在自己的程式中加入發送簡訊功能，官網已經有提供不少範例(PHP/ASP/JSP/Java/Perl/VB/BCB/Delphi)，這邊也有 Ruby 的版本，不過就是沒看到 C 的，所以大略寫了一個 Linux C 版本，打算加入自己的嵌入式專題使用。
TwSMS 提供的 API 很簡單，只要由 HTTP 對 API server 發送 Request 即可，接著 server 就會回傳結果。程式先建立一個 socket 連線，然後發送簡訊，最後再擷取回傳碼檢查是否成功。


#include &#60;stdio.h&#62;
#include &#60;stdlib.h&#62;
#include &#60;string.h&#62;
#include &#60;sys/socket.h&#62;
#include &#60;netinet/in.h&#62;
#include &#60;arpa/inet.h&#62;
#include &#60;netdb.h&#62;

int main()
{
	/* TWSMS 相關設定 */
	char *username = &#34;username&#34;;   // 帳號
	char *password = &#34;password&#34;; // 密碼
	char *type = &#34;now&#34;;      [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.twsms.com/" target="_blank">台灣簡訊</a>(TwSMS)是國內一家線上傳簡訊的服務商，提供文字簡訊、語音簡訊等服務，價格也很合理，最重要的是有提供 API 介面，方便用戶在自己的程式中加入發送簡訊功能，官網已經有提供不少範例(PHP/ASP/JSP/Java/Perl/VB/BCB/Delphi)，<a href="http://github.com/cfc/twsmsr/tree/master" target="_blank">這邊</a>也有 Ruby 的版本，不過就是沒看到 C 的，所以大略寫了一個 Linux C 版本，打算加入自己的嵌入式專題使用。</p>
<p>TwSMS 提供的 API 很簡單，只要由 HTTP 對 API server 發送 Request 即可，接著 server 就會回傳結果。程式先建立一個 socket 連線，然後發送簡訊，最後再擷取回傳碼檢查是否成功。</p>
<pre title="code" class="cpp">

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;sys/socket.h&gt;
#include &lt;netinet/in.h&gt;
#include &lt;arpa/inet.h&gt;
#include &lt;netdb.h&gt;

int main()
{
	/* TWSMS 相關設定 */
	char *username = &quot;username&quot;;   // 帳號
	char *password = &quot;password&quot;; // 密碼
	char *type = &quot;now&quot;;         // 發送型態
	char *mobile = &quot;0912xxxxxx&quot;; // 電話
	char *message = &quot;簡訊測試&quot;; // 簡訊內容
	char *encoding = &quot;big5&quot;;    // 簡訊內容編碼
	char *popup = &quot;&quot;;          // 使用 POPUP 顯示
	char *mo = &quot;&quot;;             // 使用雙向簡訊
	char *vldtime = &quot;86400&quot;;    // 簡訊有效期限(秒)
	char *dlvtime = &quot;&quot;;         // 預約時間

	int sockfd;
	int len = 0;
	char *host = &quot;api.twsms.com&quot;;
	char msg[512], MSGData[512], buf[512];
	char *res, *checkRes;
	struct sockaddr_in address;
	struct hostent *hostinfo;

	bzero(&amp;address, sizeof(address));
	hostinfo = gethostbyname(host);
	if (!hostinfo) {
		fprintf(stderr, &quot;no host: %s\n&quot;, host);
		exit(1);
	}
	address.sin_family = AF_INET;
	address.sin_port = htons(80);
	address.sin_addr = *(struct in_addr *)*hostinfo-&gt;h_addr_list;

	/* Create socket */
	sockfd = socket(AF_INET, SOCK_STREAM, 0);

	/* Connect to server */
	if (connect(sockfd, (struct sockaddr *)&amp;address, sizeof(address)) == -1) {
		perror(&quot;connect faild!\n&quot;);
		exit(1);
	}

	/* Request string */
	len = snprintf(msg, 512,
				  &quot;username=%s&amp;password=%s&amp;type=%s&amp;encoding=%s&amp;popup=%s&amp;mo=%s&amp;mobile=%s&quot;
				  &quot;&amp;message=%s&amp;vldtime=%s&amp;dlvtime=%s&quot;, username, password, type, encoding,
				  popup, mo, mobile, message, vldtime, dlvtime);

	/* HTTP request content */
	snprintf(MSGData, 512,
			&quot;POST /send_sms.php HTTP/1.1\r\n&quot;
			&quot;Host: %s\r\n&quot;
			&quot;Content-Length: %d\r\n&quot;
			&quot;Content-Type: application/x-www-form-urlencoded\r\n&quot;
			&quot;Connection: Close\r\n\r\n&quot;
			&quot;%s\r\n&quot;, host, len, msg);

	/* Send message */
	send(sockfd, MSGData, strlen(MSGData), 0);

	/* Response message */
	recv(sockfd, buf, 512, 0);

	for (res = strtok(buf, &quot;\n&quot;); strncmp(res, &quot;resp&quot;, 4) != 0; res = strtok(NULL, &quot;\n&quot;));
	checkRes = strtok(res, &quot;=&quot;);
	checkRes = strtok(NULL, &quot;=&quot;);

	if (atoi(checkRes) &lt;= 0) {
		printf(&quot;傳送失敗\n&quot;);
	} else {
		printf(&quot;傳送完成\n&quot;);
	}

	close(sockfd);
	return 0;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/216/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>TeraTerm Pro - 取代超級終端機</title>
		<link>http://blog.linym.net/archives/215</link>
		<comments>http://blog.linym.net/archives/215#comments</comments>
		<pubDate>Fri, 11 Jan 2008 12:05:34 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[TeraTerm]]></category>
		<category><![CDATA[tty]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[超級終端機]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/215</guid>
		<description><![CDATA[Windows 內建的超級終端機(HyperTerminal)，有使用過的應該都知道問題很多，經常跑出亂碼、甚至程式當掉，可以說是年久失修的工具阿，連 Vista 都將它拿掉了，不過有許多 router、硬體設備仍是要透過 Serial Port 去做 debug、設定等等，所以有沒有可以取代超級終端機的軟體呢？
有的，試用過 TeraTerm Pro 之後就愛上他了，擁有比超級終端機簡潔的畫面，原有的功能都沒少，還增加了 UTF8/SSH/telnet/Macro...，在 Vista 上跑也沒問題，所以，換掉超級終端機吧！
‧TeraTerm Pro 專案網頁
．下載頁面
]]></description>
			<content:encoded><![CDATA[<p>Windows 內建的超級終端機(HyperTerminal)，有使用過的應該都知道問題很多，經常跑出亂碼、甚至程式當掉，可以說是年久失修的工具阿，連 Vista 都將它拿掉了，不過有許多 router、硬體設備仍是要透過 Serial Port 去做 debug、設定等等，所以有沒有可以取代超級終端機的軟體呢？</p>
<p>有的，試用過 <a href="http://ttssh2.sourceforge.jp/" target="_blank">TeraTerm Pro</a> 之後就愛上他了，擁有比超級終端機簡潔的畫面，原有的功能都沒少，還增加了 UTF8/SSH/telnet/Macro...，在 Vista 上跑也沒問題，所以，換掉超級終端機吧！</p>
<p>‧<a href="http://ttssh2.sourceforge.jp/" target="_blank">TeraTerm Pro 專案網頁</a><br />
．<a href="http://sourceforge.jp/projects/ttssh2/files/" target="_blank">下載頁面</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/215/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wordpress 2.3.2 無法中文化問題</title>
		<link>http://blog.linym.net/archives/214</link>
		<comments>http://blog.linym.net/archives/214#comments</comments>
		<pubDate>Thu, 10 Jan 2008 13:38:05 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[中文化]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/214</guid>
		<description><![CDATA[Wordpress 最近已經更新到 2.3.2 版了，趁著最近專題發表結束的空閒來更新一下，到官方抓了新版以及 Kirin Lin 的中文語系，由於 2.3.2 只是些 bug 及安全性修正，所以就直接採用覆蓋大法更新了。完工之後，咦？怎麼變英文介面了，wp-config.php 設定沒錯阿，於是求助 google 大神，馬上就找到了這篇，原來在 PHP 5.2.x 以及 64bit 系統下會有這個問題，登入 BlueHost 主機的後台看一下，果然沒錯，開始修正囉！
其實只要修正一行即可：
wp-includes/gettext.php  LINE:117


if ($magic == ($MAGIC1 &#38; 0xFFFFFFFF) &#124;&#124; $magic == ($MAGIC3 &#38; 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms

更改成：


if ($magic == $MAGIC1 &#124;&#124; $magic == $MAGIC3) { // &#60;- 64 [...]]]></description>
			<content:encoded><![CDATA[<p>Wordpress 最近已經更新到 2.3.2 版了，趁著最近專題發表結束的空閒來更新一下，到官方抓了新版以及 <a href="http://kirin.lin.googlepages.com/">Kirin Lin</a> 的中文語系，由於 2.3.2 只是些 bug 及安全性修正，所以就直接採用覆蓋大法更新了。完工之後，咦？怎麼變英文介面了，wp-config.php 設定沒錯阿，於是求助 google 大神，馬上就找到了<a href="http://www.wordpress.com.tw/wp/?p=80" target="_blank">這篇</a>，原來在 PHP 5.2.x 以及 64bit 系統下會有這個問題，登入 BlueHost 主機的後台看一下，果然沒錯，開始修正囉！</p>
<p>其實只要修正一行即可：<br />
wp-includes/gettext.php  LINE:117</p>
<pre title="code" class="php">

if ($magic == ($MAGIC1 &amp; 0xFFFFFFFF) || $magic == ($MAGIC3 &amp; 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
</pre>
<p>更改成：</p>
<pre title="code" class="php">

if ($magic == $MAGIC1 || $magic == $MAGIC3) { // &lt;- 64 BIT FIX: CHANGE THIS LINE!
</pre>
<p>ok!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/214/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Map 地圖定位</title>
		<link>http://blog.linym.net/archives/213</link>
		<comments>http://blog.linym.net/archives/213#comments</comments>
		<pubDate>Thu, 10 Jan 2008 12:40:38 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/213</guid>
		<description><![CDATA[Google Map 提供的 API 實在是強大又好用，結合 GPS 很快就可以做出地圖定位的網站，將之前的 Urmap 範例修改了一下，成為 Google Map 地圖定位系統，為了能夠展示所以將座標先寫好讓它自己動態更新，其中按下停止按鈕會畫出所有紀錄點的連線，可做路徑追蹤。
Google Map API 網路上的資源已經相當豐富了，在此就不多敘述，比較特別的是畫折線(polyline)的部份，如果用原始的 GPolyline 方法來畫，大概幾十個點就需要運算很久，甚至導致瀏覽器 crash，所以 API 後來又加入了編碼折線(encodedPolyline)的功能，先將所有的點用特定演算法轉換成一串文字符號，再丟給 GPolyline.fromEncoded 顯示，幾乎是馬上就顯示出來了，差很多喔，而這個編碼演算法也已經有人寫好囉！請看：Encoding polylines for Google Maps
]]></description>
			<content:encoded><![CDATA[<p>Google Map 提供的 <a href="http://code.google.com/apis/maps/documentation/" target="_blank">API</a> 實在是強大又好用，結合 GPS 很快就可以做出地圖定位的網站，將之前的 Urmap 範例修改了一下，成為 <a href="http://map.linym.net/" target="_blank">Google Map 地圖定位系統</a>，為了能夠展示所以將座標先寫好讓它自己動態更新，其中按下停止按鈕會畫出所有紀錄點的連線，可做路徑追蹤。</p>
<p><a href="http://code.google.com/apis/maps/documentation/" target="_blank">Google Map API</a> 網路上的資源已經相當豐富了，在此就不多敘述，比較特別的是畫折線(polyline)的部份，如果用原始的 GPolyline 方法來畫，大概幾十個點就需要運算很久，甚至導致瀏覽器 crash，所以 API 後來又加入了編碼折線(encodedPolyline)的功能，先將所有的點用特定演算法轉換成一串文字符號，再丟給 GPolyline.fromEncoded 顯示，幾乎是馬上就顯示出來了，差很多喔，而這個編碼演算法也已經有人寫好囉！請看：<a href="http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/" target="_blank">Encoding polylines for Google Maps</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/213/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CodeIgniter 設定 MySQL 編碼</title>
		<link>http://blog.linym.net/archives/212</link>
		<comments>http://blog.linym.net/archives/212#comments</comments>
		<pubDate>Sat, 22 Dec 2007 15:21:51 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[編碼]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/212</guid>
		<description><![CDATA[※ CodeIgniter 1.6 已釋出，不需再做這篇的修正了哦！
先前有提到過 CodeIgniter 這個 PHP Framework，也用它做了幾個 case，當然開發速度不能說快上多少，但確實讓程式碼變得整齊優雅許多。
使用 CI 目前遇到第一個問題是存取 MySQL 資料的問題，在 MySQL 4.1 以後採用了多層式編碼設定，簡單說就是不管是資料庫、資料表、欄位或是 Client 連線階段，都可以分別設定編碼，所以即使 server 都改成了 utf8，PHP 到 MySQL Server 的這個 connection 卻還是預設的(latin1)，許多亂碼就是這樣造成的，應該已經有不少人知道解決方法，就是先送出一個改變編碼的查詢：SET NAMES &#39;charset&#39;。
然而目前 CodeIgniter 並沒有這樣的設計，所以只好自行改 code 囉！
Step1：修改 system/application/config/database.php
增加一項：$db[&#39;default&#39;][&#39;charset&#39;]  = &#34;utf8&#34;;
Step2：修改 system/database/DB_driver.php
在 32 行之後的宣告增加：var $charset        = &#39;&#39;;
接著 96 行的陣列增加：&#39;charset&#39;	=> &#39;&#39;,
Step3：修改 system/database/drivers/mysql/mysql_driver.php
74 行 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>※ CodeIgniter 1.6 已釋出，不需再做這篇的修正了哦！</strong></p>
<p>先前有<a href="http://blog.linym.net/archives/162">提到</a>過 <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a> 這個 PHP Framework，也用它做了幾個 case，當然開發速度不能說快上多少，但確實讓程式碼變得整齊優雅許多。</p>
<p>使用 CI 目前遇到第一個問題是存取 MySQL 資料的問題，在 MySQL 4.1 以後採用了多層式編碼設定，簡單說就是不管是資料庫、資料表、欄位或是 Client 連線階段，都可以分別設定編碼，所以即使 server 都改成了 utf8，PHP 到 MySQL Server 的這個 connection 卻還是預設的(latin1)，許多亂碼就是這樣造成的，應該已經有不少人知道解決方法，就是先送出一個改變編碼的查詢：SET NAMES &#39;charset&#39;。<br />
然而目前 CodeIgniter 並沒有這樣的設計，所以只好自行改 code 囉！</p>
<p><strong>Step1：修改 system/application/config/database.php</strong><br />
增加一項：$db[&#39;default&#39;][&#39;charset&#39;]  = &quot;utf8&quot;;</p>
<p><strong>Step2：修改 system/database/DB_driver.php</strong><br />
在 32 行之後的宣告增加：var $charset        = &#39;&#39;;<br />
接著 96 行的陣列增加：&#39;charset&#39;	=> &#39;&#39;,</p>
<p><strong>Step3：修改 system/database/drivers/mysql/mysql_driver.php</strong><br />
74 行 return 前加入：</p>
<pre title="code" class="php">

if (!empty($this-&gt;charset))
{
    @mysql_query(&quot;SET NAMES $this-&gt;charset&quot;);
}
</pre>
<p>這樣就 ok 了，如果使用 mysqli 請如法炮製。另外如果主機環境符合，可使用 PHP 內建函式來設定：</p>
<pre title="code" class="php">

// PHP &gt;= 5.2.3，MySQL &gt;= 5.0.7 for mysql
@mysql_set_charset($this-&gt;charset, $this-&gt;conn_id);
// PHP &gt;= 5.0.5，MySQL &gt;= 5.0.6 for mysqli
@mysqli_set_charset($this-&gt;conn_id, $this-&gt;charset);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/212/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>開源中文語音合成:eSpeak</title>
		<link>http://blog.linym.net/archives/211</link>
		<comments>http://blog.linym.net/archives/211#comments</comments>
		<pubDate>Sat, 01 Dec 2007 00:47:20 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[eSpeak]]></category>
		<category><![CDATA[TTS]]></category>
		<category><![CDATA[語音合成]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/211</guid>
		<description><![CDATA[語音合成系統通常拿來做 TTS(Text to Speach) 應用，英文 TTS 已經滿多且成熟了，但是中文的目前大多是廠商或實驗室驗自行開發，所以可能沒辦法免費拿來研究。
最近發現的 eSpeak 這個 Open Source 已經在最新的開發版本中加入中文語音支援囉!網頁在這裡，應該不久就會變成正式版本釋出。根據了解，好用的 StarDict 翻譯軟體也是使用 eSpeak 來作為朗讀發音系統哦！
在嘗試移植到嵌入式 ARM Linux 時失敗，因為實在太多 Shared Libraries 了，如果有成功的高手希望能分享一下心得。
]]></description>
			<content:encoded><![CDATA[<p>語音合成系統通常拿來做 TTS(Text to Speach) 應用，英文 TTS 已經滿多且成熟了，但是中文的目前大多是廠商或實驗室驗自行開發，所以可能沒辦法免費拿來研究。</p>
<p>最近發現的 <a href="http://espeak.sourceforge.net/" target="_blank">eSpeak</a> 這個 Open Source 已經在最新的開發版本中加入中文語音支援囉!網頁在<a href="http://espeak.sourceforge.net/test/latest.html" target="_blank">這裡</a>，應該不久就會變成正式版本釋出。根據了解，好用的 <a href="http://stardict.sourceforge.net/" target="_blank">StarDict</a> 翻譯軟體也是使用 eSpeak 來作為朗讀發音系統哦！</p>
<p>在嘗試移植到嵌入式 ARM Linux 時失敗，因為實在太多 Shared Libraries 了，如果有成功的高手希望能分享一下心得。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/211/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PC 安裝 Mac OS X Leopard 心得</title>
		<link>http://blog.linym.net/archives/210</link>
		<comments>http://blog.linym.net/archives/210#comments</comments>
		<pubDate>Thu, 22 Nov 2007 03:56:50 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[系統筆記]]></category>
		<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Macbook]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/210</guid>
		<description><![CDATA[Mac 這幾年的市佔率有攀升的趨勢，其中硬體轉換到 Intel-based 以及 Boot Camp 應該是很大的推手，在 Mac 電腦上安裝 XP/Vista 都已經不成問題了，甚至有報導指出目前跑 Vista 最快的 NB 為 MacBook Pro，所以我的下一台 NB 應該也會買 Macbook 吧，因為實在想不出不買它的理由啊= =
前陣子最火熱的應該是 Leopard 一上市就被破解可以裝在 PC 上的消息，不過看許多人討論都是以失敗或放棄收場，但是我拿了一台 A8Je NB 及 PC 試裝發現都可以成功進入系統，只是 NB 驅動有問題，沒辦法連上網。
PC 規格如下：
Pentium D 925
Gigabyte GA-945GM-S2
Nvidia GeForce 7300LE
Hitachi T7K250 160G
裝好使用上幾乎沒什麼問題，不過可惜的是 Boot Camp 無法使用。
安裝關鍵：

要有修改過的 Leopard 安裝光碟(DVD5 可燒那版)
下載 patch 檔放在隨身碟(內有 9a581PostPatch.sh 這個檔案的)
照著 Install Leopard on your [...]]]></description>
			<content:encoded><![CDATA[<p>Mac 這幾年的市佔率有攀升的趨勢，其中硬體轉換到 Intel-based 以及 <a href="http://zh.wikipedia.org/w/index.php?title=Boot_Camp&#038;variant=zh-tw" target="_blank">Boot Camp</a> 應該是很大的推手，在 Mac 電腦上安裝 XP/Vista 都已經不成問題了，甚至有<a href="http://www.pcworld.com/article/id,136649-page,3-c,notebooks/article.html" target="_blank">報導</a>指出目前跑 Vista 最快的 NB 為 MacBook Pro，所以我的下一台 NB 應該也會買 Macbook 吧，因為實在想不出不買它的理由啊= =</p>
<p>前陣子最火熱的應該是 <a href="http://www.apple.com.tw/macosx/" target="_blank">Leopard</a> 一上市就被破解可以裝在 PC 上的消息，不過看許多人討論都是以失敗或放棄收場，但是我拿了一台 A8Je NB 及 PC 試裝發現都可以成功進入系統，只是 NB 驅動有問題，沒辦法連上網。</p>
<p><strong>PC 規格如下：</strong><br />
Pentium D 925<br />
Gigabyte GA-945GM-S2<br />
Nvidia GeForce 7300LE<br />
Hitachi T7K250 160G<br />
裝好使用上幾乎沒什麼問題，不過可惜的是 Boot Camp 無法使用。</p>
<p><strong>安裝關鍵：</strong></p>
<ol>
<li>要有修改過的 Leopard 安裝光碟(DVD5 可燒那版)</li>
<li>下載 patch 檔放在隨身碟(內有 9a581PostPatch.sh 這個檔案的)</li>
<li>照著 <a href="http://dailyapps.net/2007/10/hack-attack-install-leopard-on-your-pc-in-3-easy-steps/" target="_blank">Install Leopard on your PC in 3 easy steps</a> 安裝</li>
<li>安裝時先選英文，並且按 Custom 取消打勾的套件</li>
<li>裝好重開，放上隨身碟，再進一次光碟安裝介面，選 Menu 的 Terminal，作 patch。(文中說的按 F8 我都失敗)</li>
<li>利用 tboot 引導作多重開機，可以參考<a href="http://blog.sinplee.cn/archives/173818.html" target="_blank">這篇</a></li>
</ol>
<p>這樣應該就 OK 了，再來就祈禱驅動都有抓到可以跑囉！如果網卡無法驅動可以試試 <a href="http://www.pinxue.net/mac/viarhine.html" target="_blank">Via Rhine</a>，我的 D-Link DFE-530TX 就是靠它跑起來的。</p>
<p>最後...在 PC 安裝破解的 Leopard 是非法的，玩玩就好，還是買台 Mac 來玩比較穩定&#038;實在啦^^</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/210/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>編譯 ZD1211 無線網卡驅動</title>
		<link>http://blog.linym.net/archives/209</link>
		<comments>http://blog.linym.net/archives/209#comments</comments>
		<pubDate>Mon, 19 Nov 2007 11:36:22 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[硬體筆記]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[zd1211]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/209</guid>
		<description><![CDATA[關於如何編譯 ZD1211/ZD1211B 晶片的 USB 無線網卡 driver，經常在各大討論區及 BBS 看到有人提出相同的問題，因此來寫個教學。
前往 ZD1211 專案網站可以知道目前有三種版本的驅動，其中建議使用 zd1211rw 這個版本，因為它持續在更新且已納入 Linux 2.6.18 以後的 kernel 裡。zd1211rw 支援這三種晶片：

ZyDAS ZD1211
ZyDAS ZD1211B
Atheros AR5007UG

不過既然都已經納入 kernel 了為什麼還要編譯驅動？因為還是有很多產品的 USB ID 不能被 zd1211rw 所辨識(我的 PCI GW-US54GXS 就是)，當然就沒辦法驅動囉！這篇要做的就是從 kernel 裡的 zd1211rw source code 加入對應的 USB ID，主機環境是 ubuntu 7.10，其他版本應該也差不多。
首先要安裝編譯相關套件 &#038; 下載 linux source
$ sudo apt-get install build-essential kernel-package linux-source
切換至 src 目錄並解開 linux source
$ [...]]]></description>
			<content:encoded><![CDATA[<p>關於如何編譯 ZD1211/ZD1211B 晶片的 USB 無線網卡 driver，經常在各大討論區及 BBS 看到有人提出相同的問題，因此來寫個教學。</p>
<p>前往 <a href="http://zd1211.wiki.sourceforge.net/" target="_blank">ZD1211</a> 專案網站可以知道目前有三種版本的驅動，其中建議使用 <a href="http://www.linuxwireless.org/en/users/Drivers/zd1211rw" target="_blank">zd1211rw</a> 這個版本，因為它持續在更新且已納入 Linux 2.6.18 以後的 kernel 裡。zd1211rw 支援這三種晶片：</p>
<ul>
<li>ZyDAS ZD1211</li>
<li>ZyDAS ZD1211B</li>
<li>Atheros AR5007UG</li>
</ul>
<p>不過既然都已經納入 kernel 了為什麼還要編譯驅動？因為還是有很多產品的 USB ID 不能被 zd1211rw 所辨識(我的 PCI GW-US54GXS 就是)，當然就沒辦法驅動囉！這篇要做的就是從 kernel 裡的 zd1211rw source code 加入對應的 USB ID，主機環境是 ubuntu 7.10，其他版本應該也差不多。</p>
<p><strong>首先要安裝編譯相關套件 &#038; 下載 linux source</strong><br />
$ sudo apt-get install build-essential kernel-package linux-source</p>
<p><strong>切換至 src 目錄並解開 linux source</strong><br />
$ cd /usr/src<br />
$ sudo tar -xjvf linux-source-2.6.22.tar.bz2</p>
<p><strong>拷貝 kernel 設定檔(.config) 至 linux source</strong><br />
$ sudo cp linux-headers-2.6.22-14-generic/.config linux-source-2.6.22</p>
<p><strong>編輯 zd_usb.c 加入新 USB ID，可利用 lsusb 指令可以找出網卡的 ID，如：2019:5303</strong><br />
$ cd linux-source-2.6.22<br />
$ sudo vim drivers/net/wireless/zd1211rw/zd_usb.c<br />
在檔案開頭不遠處可以看到一堆 USB ID 號碼，就是要加進這裡面，GW-US54GXS 是 ZD1211B 晶片，所以在 ZD1211B 下方增加一行：<br />
/* ZD1211B */<br />
{ USB_DEVICE(0x2019, 0x5303), .driver_info = DEVICE_ZD1211B },<br />
確認後就存檔離開</p>
<p><strong>開始編譯驅動</strong><br />
$ sudo mkdir .tmp_versions<br />
$ sudo make drivers/net/wireless/zd1211rw/zd1211rw.ko</p>
<p><strong>沒錯誤就會產生 zd1211rw.ko，將它覆蓋原本系統中的</strong><br />
$ sudo cp drivers/net/wireless/zd1211rw/zd1211rw.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/zd1211rw<br />
$ sudo depmod -a</p>
<p>重開機應該就可以正確驅動了:D</p>
<p>參考資料：<br />
<a href="http://www.linuxwireless.org/en/users/Drivers/zd1211rw/AddID" target="_blank">Adding new device IDs to zd1211rw</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/209/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Windows Live Messenger 8.5 正式版</title>
		<link>http://blog.linym.net/archives/207</link>
		<comments>http://blog.linym.net/archives/207#comments</comments>
		<pubDate>Wed, 07 Nov 2007 15:28:49 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[Messenger]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[WLM]]></category>
		<category><![CDATA[即時通訊]]></category>
		<category><![CDATA[軟體]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/207</guid>
		<description><![CDATA[Windows Live Messenger 8.5(MSN) 今天終於釋出正式版囉！這次版本代號為 8.5.1302.1018，基本上和 beta 差不多，安裝時也是要連到官方下載很久，真是麻煩。
再來就是關於去除廣告的問題，試了一下發現廣告代碼位置已經換了，所以還需要再找看看，如果有人試出來麻煩分享一下方法，謝謝！
軟體名稱：Windows Live Messenger 8.5
版本代號：8.5.1302.1018
官方網站：http://get.live.com/zh-cht-tw/messenger/overview
去廣告+多開 Patch for 8.5.1302.1018

去除主視窗底部廣告
去除主視窗底下搜尋列
去除對話框底下之文字廣告
去除對話框底下之搜尋按鈕

]]></description>
			<content:encoded><![CDATA[<p>Windows Live Messenger 8.5(MSN) 今天終於釋出正式版囉！這次版本代號為 8.5.1302.1018，基本上和 beta 差不多，安裝時也是要連到官方下載很久，真是麻煩。</p>
<p><del datetime="2007-11-08T03:08:01+00:00">再來就是關於去除廣告的問題，試了一下發現廣告代碼位置已經換了，所以還需要再找看看，如果有人試出來麻煩分享一下方法，謝謝！</del></p>
<blockquote><p>軟體名稱：Windows Live Messenger 8.5<br />
版本代號：8.5.1302.1018<br />
官方網站：<a href="http://get.live.com/zh-cht-tw/messenger/overview" target="_blank">http://get.live.com/zh-cht-tw/messenger/overview</a></p></blockquote>
<p><strong><a href='http://blog.linym.net/wp-content/uploads/2007/11/msn_patch.exe' title=''>去廣告+多開 Patch for 8.5.1302.1018</a></strong></p>
<ul>
<li>去除主視窗底部廣告</li>
<li>去除主視窗底下搜尋列</li>
<li>去除對話框底下之文字廣告</li>
<li>去除對話框底下之搜尋按鈕</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/207/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>拯救容量錯亂的 USB 隨身碟</title>
		<link>http://blog.linym.net/archives/204</link>
		<comments>http://blog.linym.net/archives/204#comments</comments>
		<pubDate>Thu, 01 Nov 2007 03:00:36 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[硬體筆記]]></category>
		<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[教學]]></category>
		<category><![CDATA[軟體]]></category>
		<category><![CDATA[隨身碟]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/204</guid>
		<description><![CDATA[前幾天要使用一個中華電信送的隨身碟時，卻出現無法存取(開不了)，換電腦也是一樣，最後將它格式化之後就可以開啟了，不過卻發現容量錯誤的情形，原本 128MB 變成了 15MB...XD，在之前也聽朋友說過有 512MB 變 4G 的案例，當然存進去的檔案很容易損毀。通常遇到這種情況又過保的就只好丟了，不過我突然想到用其他軟體來格式化試試，就找到「HP USB Disk Storage Format Tool」這個工具。

如圖，選好隨身碟代號，按下 Start 就開始格式化了，完成後容量就恢復正常了，應該還可以撐一陣子吧！
不過最後還是要提醒大家，Flash Memory 儲存裝置因為本身電氣充放電特性，有所謂物理讀寫次數的極限，通常約十萬次左右，所以千萬不要把重要資料只存在隨身碟裡面，不然哪天掛點就慘囉！
HP USB Disk Storage Format Tool
官方網頁 &#124; 免安裝綠色版
]]></description>
			<content:encoded><![CDATA[<p>前幾天要使用一個中華電信送的隨身碟時，卻出現無法存取(開不了)，換電腦也是一樣，最後將它格式化之後就可以開啟了，不過卻發現容量錯誤的情形，原本 128MB 變成了 15MB...XD，在之前也聽朋友說過有 512MB 變 4G 的案例，當然存進去的檔案很容易損毀。通常遇到這種情況又過保的就只好丟了，不過我突然想到用其他軟體來格式化試試，就找到「HP USB Disk Storage Format Tool」這個工具。<br />
<a href='http://blog.linym.net/wp-content/uploads/2007/11/usb.jpg' title='HP_USB' target="_blank"><img src='http://blog.linym.net/wp-content/uploads/2007/11/usb.jpg' alt='' /></a><br />
如圖，選好隨身碟代號，按下 Start 就開始格式化了，完成後容量就恢復正常了，應該還可以撐一陣子吧！</p>
<p>不過最後還是要提醒大家，<strong>Flash Memory 儲存裝置因為本身電氣充放電特性，有所謂物理讀寫次數的極限</strong>，通常約十萬次左右，所以千萬不要把重要資料只存在隨身碟裡面，不然哪天掛點就慘囉！</p>
<p><em>HP USB Disk Storage Format Tool</em><br />
<a href="http://h50178.www5.hp.com/support/470035-692/more_info_local_17019.html" target="_blank">官方網頁</a> | <a href="http://blog.linym.net/wp-content/uploads/2007/11/hpusbfw.rar">免安裝綠色版</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/204/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>尋人啟事</title>
		<link>http://blog.linym.net/archives/203</link>
		<comments>http://blog.linym.net/archives/203#comments</comments>
		<pubDate>Sun, 28 Oct 2007 17:35:55 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[生活日誌]]></category>
		<category><![CDATA[尋人]]></category>
		<category><![CDATA[雜記]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/203</guid>
		<description><![CDATA[今天朋友傳來這個連結，是要網友協尋一位豐原高中的女生，原本我只是大略看看，正當準備關掉網頁的時候，卻看到個熟悉的名字「鍾元凱」，繼續往下看...豐原，接著留言回應有人貼出照片...
靠...這不就是我國小同班過的同學嘛！在這裡就不方便說他從前是怎樣的人了，以免招來法律問題，我只能說我們對他印象都很深刻，這兩天應該就會看到新聞報導，希望那女生平安無事才好。
相關新聞報導：

少女挨巴掌蹺家　母部落格急尋人　上萬網友轉貼協尋

]]></description>
			<content:encoded><![CDATA[<p>今天朋友傳來這個<a href="http://www.wretch.cc/blog/gogofind456&#038;article_id=6975600" target="_blank">連結</a>，是要網友協尋一位豐原高中的女生，原本我只是大略看看，正當準備關掉網頁的時候，卻看到個熟悉的名字「鍾元凱」，繼續往下看...豐原，接著留言回應有人貼出照片...</p>
<p>靠...這不就是我國小同班過的同學嘛！在這裡就不方便說他從前是怎樣的人了，以免招來法律問題，我只能說我們對他印象都很深刻，這兩天應該就會看到新聞報導，希望那女生平安無事才好。</p>
<p>相關新聞報導：</p>
<ul>
<li><a href="http://www.ettoday.com/2007/10/29/123-2179250.htm" target="_blank">少女挨巴掌蹺家　母部落格急尋人　上萬網友轉貼協尋</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/203/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
