<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">

<channel>
	<title>電腦茶包 Blog</title>
	
	<link>http://www.minitw.com</link>
	<description>解決資訊問題分享，電腦隨手筆記</description>
	<lastBuildDate>Mon, 30 Apr 2012 08:31:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/minitw/HlPc" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="minitw/hlpc" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>解決資訊問題分享，電腦隨手筆記</itunes:subtitle><item>
		<title>全自動備份 RouterOS，並以Email寄送備份檔</title>
		<link>http://www.minitw.com/archives/695</link>
		<comments>http://www.minitw.com/archives/695#comments</comments>
		<pubDate>Mon, 30 Apr 2012 08:29:37 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=695</guid>
		<description><![CDATA[RouterOS用了這麼久(3年多了)，感覺上算是蠻穩的。
不過凡事總有個萬一，所以備份也是很重要的。
以下的Script就是幫助我們達成RouterOS備份自動化，而且備份完後會自動e-mail到你指定的位置。
]]></description>
			<content:encoded><![CDATA[<p>RouterOS用了這麼久(3年多了)，感覺上算是蠻穩的</p>
<p>不過凡事總有個萬一，所以備份也是很重要的</p>
<p>以下的Script就是幫助我們達成RouterOS備份自動化，而且備份完後會自動e-mail到你指定的位置</p>
<p>###############################################<br />
#Script在RouterOS 5.15中測試通過<br />
#Date:2010/12/19<br />
#Script Name:MailBackupFile</p>
<p>#SMTP伺服器位置<br />
:local SMTP "msa.hinet.net"</p>
<p>#寄件人<br />
:local MailFrom "ROSBackup<ROS@minitw.com>"</p>
<p>#收件人<br />
:local MailTo "ModifyHere@minitw.com"</p>
<p>#寄出後是否刪除已存檔的Log(/file裡的檔案)<br />
#0=保留  1=刪除<br />
:local DeleteLogFile 1</p>
<p>:local BackupFileName<br />
:set BackupFileName ([/system identity get name] . "_Backup-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");<br />
/system backup save name=($BackupFileName);<br />
delay 10;</p>
<p>/tool e-mail set from=$MailFrom;<br />
/tool e-mail set address=[:resolve $SMTP];</p>
<p>/tool e-mail send to=$MailTo subject=([/system identity get name] . " -- RouterOS Backup " . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]) file=[$BackupFileName];</p>
<p>:delay 10; </p>
<p>:if ($DeleteLogFile =1) do={<br />
/file rem [/file find name=($BackupFileName)];<br />
}</p>
<p>:log info ("System Backup emailed at " . [/sys cl get time] . " " . [/sys cl get date] . " (CHT:備份email寄出)");</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/695/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RouterOS 自動更新版本的 Script</title>
		<link>http://www.minitw.com/archives/753</link>
		<comments>http://www.minitw.com/archives/753#comments</comments>
		<pubDate>Tue, 20 Dec 2011 10:01:34 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=753</guid>
		<description><![CDATA[RouterOS要更新版本除了可以手動更新外，也可以利用Script來進行更新。

參考mikrotik官方的wiki後，我把Script修改了一下，方便使用。
]]></description>
			<content:encoded><![CDATA[<p>RouterOS要更新版本除了可以手動更新外(請參考<a href="http://www.minitw.com/archives/740">更新與升級RouterOS的版本</a>)，也可以利用Script來進行更新。</p>
<p>參考mikrotik官方的wiki後，我把Script修改了一下，方便使用。</p>
<p>要使用前，要修改的地方只有1個:local upgradeTo "5.11"，</p>
<p>把版本改成你想要更新的版本即可，例如:local upgradeTo "5.13"</p>
<p>執行後，Script會自動去官方網站下載符合該平台的更新檔下來，</p>
<p>下載完會自動重開機進行更新。</p>
<p>請注意：系統更新都有其風險，更新前請自行斟酌</p>
<pre class="brush: ros; title: ;">#Script在RouterOS 5.7中測試過
#Date:2011/12/20
#Script Descript:半自動更新RouterOS的系統版本
#reference:http://wiki.mikrotik.com/wiki/Auto_upgrade_script_V3.x

#----------------------------------
#要更新到那一個版本請在這邊設定
:local upgradeTo &quot;5.11&quot;;
#----------------------------------

# newest version
:local lMajor;
:local lMinor;

# current version
:local vMajor;
:local vMinor;

:local myVer [/system resource get version];

:for i from=0 to=([:len $myVer] - 1) do={
:if ( [:pick $myVer $i] = &quot;.&quot;) do={
:set vMajor [:tonum [:pick $myVer 0 $i]];
:set vMinor [:tonum [:pick $myVer ($i + 1) [:len $myVer]]] ;
}
}
......以下略
</pre>
<p>完整程式碼可參考(編碼為BIG5)<a href="http://www.minitw.com/download/UpgradeROS.txt">http://www.minitw.com/download/UpgradeROS.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/753/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>在.NET上實作SHA加密</title>
		<link>http://www.minitw.com/archives/751</link>
		<comments>http://www.minitw.com/archives/751#comments</comments>
		<pubDate>Mon, 19 Sep 2011 01:28:34 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SHA]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=751</guid>
		<description><![CDATA[SHA加密有很多種版本

下面用一個Function來實作.NET中所有的SHA加密]]></description>
			<content:encoded><![CDATA[<p>SHA加密有很多種版本，像是SHA1、SHA256....等</p>
<p>下面用一個Function來實作.NET中所有的SHA加密</p>
<pre class="brush: csharp; title: ;">
using System;
using System.Security.Cryptography;
using System.Text;

namespace SystemAPI.Function.EncryptLibrary
{
    public class EncryptSHA
    {
        /// &lt;summary&gt;
        /// 使用SHA加密訊息
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;sourceMessage&quot;&gt;原始資訊&lt;/param&gt;
        /// &lt;param name=&quot;SHAType&quot;&gt;SHA加密方式&lt;/param&gt;
        /// &lt;returns&gt;string&lt;/returns&gt;
        public string Encrypt(string sourceMessage, EnumSHAType SHAType)
        {
            if (string.IsNullOrEmpty(sourceMessage))
            {
                return string.Empty;
            }

            //字串先轉成byte[]
            byte[] Message = Encoding.Unicode.GetBytes(sourceMessage);
            HashAlgorithm HashImplement = null;

            //選擇要使用的SHA加密方式
            switch (SHAType)
            {
                case  EnumSHAType.SHA1:
                    HashImplement = new SHA1Managed();
                    break;
                case EnumSHAType.SHA256:
                    HashImplement = new SHA256Managed();
                    break;
                case EnumSHAType.SHA384:
                    HashImplement = new SHA384Managed();
                    break;
                case EnumSHAType.SHA512:
                    HashImplement = new SHA512Managed();
                    break;
            }

            //取Hash值
            byte[] HashValue = HashImplement.ComputeHash(Message);

            //把byte[]轉成string後，再回傳
            return BitConverter.ToString(HashValue).Replace(&quot;-&quot;,&quot;&quot;).ToLower();

        }

        public enum EnumSHAType
        {
            SHA1,
            SHA256,
            SHA384,
            SHA512
        }

    }
}
</pre>
<p>.<br />
使用方式如下：</p>
<pre class="brush: csharp; title: ;">
EncryptSHA SHA = new EncryptSHA();
string EncryptString = SHA.Encrypt(&quot;12345&quot;, EncryptSHA.EnumSHAType.SHA512);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/751/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自動刪除RouterOS上無效的IP位置</title>
		<link>http://www.minitw.com/archives/745</link>
		<comments>http://www.minitw.com/archives/745#comments</comments>
		<pubDate>Thu, 01 Sep 2011 05:37:45 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=745</guid>
		<description><![CDATA[但有的時候，撥接上來的VPN發生異常斷線後，該IP並沒有自動刪除。

這時就會導致該帳號永遠無法再撥接上來(帳號使用固定VPN IP)

為了解決這狀況，所以需要一個小Script搭配Scheduler來自動刪除ROS上這些無效的IP位置]]></description>
			<content:encoded><![CDATA[<p>正常的狀況下，RouterOS會自動管理系統上的IP位置。</p>
<p>像是使用VPN撥接上ROS後，ROS系統會自動給予1個IP位置，斷線後該IP位置會自動刪除。</p>
<p>但有的時候，撥接上來的VPN發生異常斷線後，該IP並沒有自動刪除。</p>
<p>這時就會導致該帳號永遠無法再撥接上來(帳號使用固定VPN IP)</p>
<p>為了解決這狀況，所以需要一個小Script搭配Scheduler來自動刪除ROS上這些無效的IP位置</p>
<p>Script內容如下</p>
<pre class="brush: ros; title: ;">
#Script TestOS:RouterOS 5.6
#Date:2011/09/01
#Script Description:刪除無效的IP位置

# 把無效的IP位置資料全部讀出來
:foreach i in=[/ip address find invalid=yes] do={
#刪除無效的IP
    /ip address remove $i
}
</pre>
<p>.<br />
.<br />
懶人包如下，於winbox中開啟Terminal，貼上下面的指令<br />
系統會完成新增上面的Script並每5分鐘於Scheduler中自動執行1次</p>
<pre class="brush: ros; title: ;">
/system script
add name=DeleteInvalidIP policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source=&quot;#Script T\
    estOS:RouterOS 5.6\r\
    \n#Date:2011/09/01\r\
    \n#Script Description:\A7R\B0\A3\B5L\AE\C4\AA\BAIP\A6\EC\B8m\r\
    \n\r\
    \n# \A7\E2\B5L\AE\C4\AA\BAIP\A6\EC\B8m\B8\EA\AE\C6\A5\FE\B3\A1\C5\AA\A5X\A8\D3\r\
    \n:foreach i in=[/ip address find invalid=yes] do={\r\
    \n#\A7R\B0\A3\B5L\AE\C4\AA\BAIP\r\
    \n    /ip address remove \$i  \r\
    \n}&quot;

/system scheduler
add disabled=no interval=5m name=AutoDeleteIP on-event=\
    &quot;/system script run DeleteInvalidIP&quot; policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-date=\
    aug/19/2011 start-time=02:08:36
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/745/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motorola Defy(MB525) 雙向錄音</title>
		<link>http://www.minitw.com/archives/743</link>
		<comments>http://www.minitw.com/archives/743#comments</comments>
		<pubDate>Thu, 25 Aug 2011 01:32:28 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[defy]]></category>
		<category><![CDATA[錄音]]></category>
		<category><![CDATA[雙向錄音]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=743</guid>
		<description><![CDATA[終於...Defy with CM7 有完美的雙向錄音了(非擴音)。
自已測試過，聲音真的很清楚。
系統：CyanogenMod-7-110817-1717-NIGHTLY-Jordan (CM7)。
錄音軟體：AutoCallRecorder。
要使用完美的雙向錄音要先刷修正檔RecordFixByJoe0821_OnlyFix.zip(本站分流)。]]></description>
			<content:encoded><![CDATA[<p>終於...Defy with CM7 有完美的雙向錄音了(非擴音)</p>
<p>自已測試過，聲音真的很清楚</p>
<p>系統：CyanogenMod-7-110817-1717-NIGHTLY-Jordan (CM7)</p>
<p>錄音軟體：<a href="https://market.android.com/details?id=net.romang.callrecorder" target="_blank">AutoCallRecorder</a></p>
<p>要使用完美的雙向錄音要先刷修正檔<a href="http://www.minitw.com/download/RecordFixByJoe0821_OnlyFix.zip">RecordFixByJoe0821_OnlyFix.zip</a>(本站分流)</p>
<p>刷機方法：</p>
<p>1.下載RecordFixByJoe0821_OnlyFix.zip，並記得下載到那一個資料夾去了<br />
2.重新開機，在MOTO的LOGO出現時，注意LED，在亮藍燈時，快速按下「音量的下鍵」，此時會進入的BootMenu<br />
3.先選*Recovery--&gt; 再選 [Latest Recovery]<br />
4.此時會進入Recovery V4.X.X.X-DEFY<br />
5.選Install zip from sdcard<br />
6.進入choose zip from sdcard<br />
7.進入後選擇剛剛下載RecordFixByJoe0821_OnlyFix.zip的位置，並且安裝該檔案<br />
8.完成後，重新開機<br />
9.接下來你可以用market上的錄音軟體來進行雙向通話錄音了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/743/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<enclosure url="http://www.minitw.com/download/RecordFixByJoe0821_OnlyFix.zip" length="215962" type="application/zip" /><media:content url="http://www.minitw.com/download/RecordFixByJoe0821_OnlyFix.zip" fileSize="215962" type="application/zip" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>終於...Defy with CM7 有完美的雙向錄音了(非擴音)。 自已測試過，聲音真的很清楚。 系統：CyanogenMod-7-110817-1717-NIGHTLY-Jordan (CM7)。 錄音軟體：AutoCallRecorder。 要使用完美的雙向錄音要先刷修正檔RecordFixByJoe0821_OnlyFix.zip(本站分流)。</itunes:subtitle><itunes:summary>終於...Defy with CM7 有完美的雙向錄音了(非擴音)。 自已測試過，聲音真的很清楚。 系統：CyanogenMod-7-110817-1717-NIGHTLY-Jordan (CM7)。 錄音軟體：AutoCallRecorder。 要使用完美的雙向錄音要先刷修正檔RecordFixByJoe0821_OnlyFix.zip(本站分流)。</itunes:summary><itunes:keywords>Android, defy, 錄音, 雙向錄音</itunes:keywords></item>
		<item>
		<title>更新與升級RouterOS的版本</title>
		<link>http://www.minitw.com/archives/740</link>
		<comments>http://www.minitw.com/archives/740#comments</comments>
		<pubDate>Sun, 31 Jul 2011 11:06:47 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>
		<category><![CDATA[升級]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=740</guid>
		<description><![CDATA[一直以來好像很少看到升級RouterOS的文章 今天就記錄一下過程吧 首先是先下載RouterOS的升級npk檔 可以到官方網站下載 如果你需要之前的版本，可以到本站的這邊下載 依照自已的RouterOS系統別下載好後，打開winbox 把升級的npk檔拖到winbox的Files中 檔案上傳中..... 確認檔案上傳完成 重開RouterOS 選擇確定重開後，會花一點時間，此時請勿關閉電源。開機完成後，系統即完成升級]]></description>
			<content:encoded><![CDATA[<p>一直以來好像很少看到升級RouterOS的文章</p>
<p>今天就記錄一下過程吧</p>
<p>首先是先下載RouterOS的升級npk檔</p>
<p>可以到<a href="http://www.mikrotik.com/download.html">官方網站下載</a></p>
<p>如果你需要之前的版本，可以到本站的<a href="http://rosdl.minitw.com/">這邊下載</a></p>
<p>依照自已的RouterOS系統別下載好後，打開winbox</p>
<p><a title="Flickr &lt;/a&gt;20110731_1" href="http://www.flickr.com/photos/jokkson/5993103419/"><img src="http://farm7.static.flickr.com/6131/5993103419_ed84baefff.jpg" alt="20110731_1" width="500" height="363" /></a></p>
<p>把升級的npk檔拖到winbox的Files中</p>
<p><a title="Flickr  20110731_2" href="http://www.flickr.com/photos/jokkson/5993103587/"><img src="http://farm7.static.flickr.com/6142/5993103587_dd39c9f65e.jpg" alt="20110731_2" width="500" height="433" /></a></p>
<p>檔案上傳中.....</p>
<p><a title="Flickr  20110731_3" href="http://www.flickr.com/photos/jokkson/5993103737/"><img src="http://farm7.static.flickr.com/6134/5993103737_875aee4c3b.jpg" alt="20110731_3" width="500" height="363" /></a></p>
<p>確認檔案上傳完成</p>
<p><a title="Flickr 20110731_4" href="http://www.flickr.com/photos/jokkson/5993662856/"><img src="http://farm7.static.flickr.com/6150/5993662856_3c8bd47273.jpg" alt="20110731_4" width="500" height="363" /></a></p>
<p>重開RouterOS</p>
<p><a title="Flickr  20110731_4_1" href="http://www.flickr.com/photos/jokkson/5993668936/"><img src="http://farm7.static.flickr.com/6006/5993668936_7f916cf408.jpg" alt="20110731_4_1" width="500" height="500" /></a></p>
<p>選擇確定重開後，會花一點時間，此時請勿關閉電源。開機完成後，系統即完成升級</p>
<p><a title="Flickr 20110731_5" href="http://www.flickr.com/photos/jokkson/5993103915/"><img src="http://farm7.static.flickr.com/6133/5993103915_53a7d0e3ba_m.jpg" alt="20110731_5" width="193" height="101" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/740/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RouterOS 2 WAN Mapping to 1 LAN，多個WAN對映到單一內部Server</title>
		<link>http://www.minitw.com/archives/735</link>
		<comments>http://www.minitw.com/archives/735#comments</comments>
		<pubDate>Mon, 09 May 2011 13:41:34 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=735</guid>
		<description><![CDATA[當你有多個外面線路想要同時間對映到內部的某一台Server時，
或許你是為了備援或Load Balance的考量。在RouterOS下你可以很簡單的達成。
首先，我們本次範例的網路架構圖如下，目標是把2條PPPoE對映到內部的那台Server]]></description>
			<content:encoded><![CDATA[<p>當你有多個外面線路想要同時間對映到內部的某一台Server時</p>
<p>或許你是為了備援或Load Balance的考量。在RouterOS下你可以很簡單的達成</p>
<p>首先，我們本次範例的網路架構圖如下，目標是把2條PPPoE對映到內部的那台Server</p>
<p><a title="Flickr 上 20110509_1" href="http://www.flickr.com/photos/jokkson/5703515090/"><img src="http://farm3.static.flickr.com/2345/5703515090_023a14f05c.jpg" alt="20110509_1" width="431" height="378" /></a></p>
<p>先給大家Script，大家可以再對照下面的圖，不難的</p>
<pre class="brush: ros; title: ;">
/interface pppoe-client
add ac-name=&quot;&quot; add-default-route=no allow=pap,chap,mschap1,mschap2 \
dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
mrru=disabled name=ISP1 password=99999999 profile=default service-name=&quot;&quot; \
use-peer-dns=no user=99999999@hinet.net
add ac-name=&quot;&quot; add-default-route=no allow=pap,chap,mschap1,mschap2 \
dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
mrru=disabled name=ISP2 password=99999999 profile=default service-name=&quot;&quot; \
use-peer-dns=no user=99999999@hinet.net

/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no in-interface=ISP1 \
new-connection-mark=ISP1_conn passthrough=yes
add action=mark-connection chain=prerouting disabled=no in-interface=ISP2 \
new-connection-mark=ISP2_conn passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP1_conn disabled=no \
in-interface=LAN new-routing-mark=to_ISP1 passthrough=yes src-address=\
192.168.55.200
add action=mark-routing chain=prerouting connection-mark=ISP2_conn disabled=no \
in-interface=LAN new-routing-mark=to_ISP2 passthrough=yes src-address=\
192.168.55.200

/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP1 \
protocol=tcp to-addresses=192.168.55.200 to-ports=80
add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP2 \
protocol=tcp to-addresses=192.168.55.200 to-ports=80
add action=masquerade chain=srcnat disabled=no out-interface=ISP1
add action=masquerade chain=srcnat disabled=no out-interface=ISP2

/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2 routing-mark=\
to_ISP2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP1 routing-mark=\
to_ISP1 scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2,ISP1 scope=30 \
target-scope=10
</pre>
<p><a title="Flickr 上 20110509_2" href="http://www.flickr.com/photos/jokkson/5702946047/"><img src="http://farm6.static.flickr.com/5147/5702946047_b1a8911767.jpg" alt="20110509_2" width="500" height="179" /></a></p>
<p><a title="Flickr 上 20110509_3" href="http://www.flickr.com/photos/jokkson/5702946143/"><img src="http://farm4.static.flickr.com/3289/5702946143_fa12cc5a10.jpg" alt="20110509_3" width="500" height="171" /></a></p>
<p><a title="Flickr 上 20110509_4" href="http://www.flickr.com/photos/jokkson/5703515268/"><img src="http://farm4.static.flickr.com/3256/5703515268_cbbe0f1735.jpg" alt="20110509_4" width="500" height="177" /></a></p>
<p>最後我們實驗一下，確認2個外面的IP都連的進來，並且對映到內部的同一個IP位置，收工</p>
<p><a title="Flickr 上 20110509_5" href="http://www.flickr.com/photos/jokkson/5703515484/"><img src="http://farm3.static.flickr.com/2662/5703515484_85b61b5bc7.jpg" alt="20110509_5" width="500" height="271" /></a></p>
<p>參考資料：<a href="http://wiki.mikrotik.com/wiki/Manual:PCC" target="_blank">Manual:PCC</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/735/feed</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>讓你的eclipse更好用，幫你的eclipse加上自動提示(Intellisense)程式碼的功能</title>
		<link>http://www.minitw.com/archives/724</link>
		<comments>http://www.minitw.com/archives/724#comments</comments>
		<pubDate>Mon, 02 May 2011 13:24:20 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Intellisense]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=724</guid>
		<description><![CDATA[話說Android也出了好一陣子了，一直到最近才入手了一隻Moto Defy來玩玩。

雖然手機買來用別人的程式很方便，但是用自已寫的程式爽度才高呀(搞技術的人都有這種感覺對吧)。

Google官方所推的程式開發IDE是eclipse。

不過中Visual Studio毒太深的我，一時無法接受怎麼eclipse一定要點(.)下去，才會有相關指令跑出來。

這對於能打1個字就不會打2個字、能用選的就不會用打的，實在是不方便。]]></description>
			<content:encoded><![CDATA[<p>話說Android也出了好一陣子了，一直到最近才入手了一隻Moto Defy來玩玩。</p>
<p>雖然手機買來用別人的程式很方便，但是用自已寫的程式爽度才高呀(搞技術的人都有這種感覺)。</p>
<p>Google官方所推的程式開發IDE是eclipse。</p>
<p>不過中Visual Studio毒太深的我，一時無法接受怎麼eclipse一定要點(.)下去，才會有相關指令跑出來。</p>
<p>這對於能打1個字就不會打2個字、能用選的就不會用打的，實在是不方便。微軟你害的我好慘呀，我要在Visual Studio上寫個爽字。</p>
<p>Google了一下發現原來只要在設定中加上提示的關鍵字就行了。</p>
<p>做法如下：</p>
<p>Windows -&gt; Preferences -&gt; Java -&gt; Editor -&gt; Content Assist</p>
<p>在Auto activation triggers for Java 中輸入 .abcdefghijklmnopqrstuvwxyz(,</p>
<p><a title="Flickr 上 猴子銘 的 20110502_1" href="http://www.flickr.com/photos/jokkson/5679410137/"><img src="http://farm6.static.flickr.com/5146/5679410137_7d4bb1b6c2.jpg" alt="20110502_1" width="486" height="500" /></a></p>
<p>如此一來便可以使用任一文字Intellisense的功能了，不過效能上會有一點影響</p>
<p>不過在電腦硬體越來越強的現在，應該是感覺不太出來</p>
<p>大家可以試試看</p>
<p><a title="Flickr 上 猴子銘 的 20110502_2" href="http://www.flickr.com/photos/jokkson/5679969468/"><img src="http://farm6.static.flickr.com/5024/5679969468_2642caa4d1.jpg" alt="20110502_2" width="480" height="281" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/724/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle官方的 Linq to Oracle</title>
		<link>http://www.minitw.com/archives/721</link>
		<comments>http://www.minitw.com/archives/721#comments</comments>
		<pubDate>Fri, 08 Apr 2011 02:48:23 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[linq to oracle]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=721</guid>
		<description><![CDATA[這幾天無意間發現Oracle官方也支援Linq to Oracle了 雖然還是測試版，不過至少踏出了第一步了吶 下載的名稱為： 32-bit Oracle Data Access Components (ODAC) for Microsoft Entity Framework and LINQ to Entities  想嘗鮮的朋友可以先玩看看 參考資料： Tutorial. Entity Framework, LINQ and Model-First for the Oracle Database]]></description>
			<content:encoded><![CDATA[<p>這幾天無意間發現Oracle官方也支援Linq to Oracle了</p>
<p>雖然還是測試版，不過至少踏出了第一步了吶</p>
<p>下載的名稱為：<br />
<a href="http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html" target="_blank">32-bit Oracle Data Access Components (ODAC)<br />
for Microsoft Entity Framework and LINQ to Entities </a></p>
<p>想嘗鮮的朋友可以先玩看看</p>
<p>參考資料：<br />
<a href="http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/EntityFrameworkOBE/EntityFrameworkOBE.htm" target="_blank">Tutorial. Entity Framework, LINQ and Model-First for the Oracle Database</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/721/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在.Net中使用繼承建構子(Constructor)</title>
		<link>http://www.minitw.com/archives/707</link>
		<comments>http://www.minitw.com/archives/707#comments</comments>
		<pubDate>Mon, 21 Feb 2011 03:36:49 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Constructor]]></category>
		<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[建構子]]></category>
		<category><![CDATA[繼承]]></category>
		<category><![CDATA[繼承建構子]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=707</guid>
		<description><![CDATA[繼承建構子(Constructor)，這看起來既有學問又深奧的文字。 

不要怕，以下我問白話文解釋一下。 

把繼承建構子分解後，就是 繼承 + 建構子。 

繼承，相信有物件導向概念的朋友應該都知道這2個字的意思。 

建構子(Constructor)，就是用來進行物件初始化的方法。 

一般來說，Class B 繼承 Class A 之後就可以使用Class A所開放出來的東西。 

那麼如果Class B 繼承 Class A後，想要對Class A進行初始化的動作，那就需要使用繼承建構子了。

先來看看程式吧，看程式就比較不會那麼文謅謅了。
]]></description>
			<content:encoded><![CDATA[<p>繼承建構子(Constructor)，這看起來既有學問又深奧的文字 </p>
<p>不要怕，以下我問白話文解釋一下 </p>
<p>把繼承建構子分解後，就是 繼承 + 建構子 </p>
<p>繼承，相信有物件導向概念的朋友應該都知道這2個字的意思 </p>
<p>建構子(Constructor)，就是用來進行物件初始化的方法 </p>
<p>一般來說，Class B 繼承 Class A 之後就可以使用Class A所開放出來的東西 </p>
<p>那麼如果Class B 繼承 Class A後，想要對Class A進行初始化的動作，那就需要使用繼承建構子了 </p>
<p>先來看看程式吧，看程式就比較不會那麼文謅謅了。程式碼可於這邊<a href="http://www.minitw.com/download/BaseSampleCode.zip" target="_self">下載</a>(C#、VB.NET雙版本)</p>
<p>首先有一個最基本的Class，我們叫它Class A </p>
<p>C#版本Class A </p>
<pre class="brush: csharp; title: ;">
class ClassA
{
    public ClassA()
    {
        _InitString = &quot;123&quot;;
    }

    public ClassA(string initStr)
    {
        _InitString = initStr;
    }

    private string _InitString;
    public string InitString
    {
        get { return _InitString; }
    }

    public void ShowClassAInit()
    {
        Console.WriteLine(InitString);
        Console.WriteLine(&quot;-----------------------------&quot;);
    }
}
</pre>
<p>VB.NET版本Class A </p>
<pre class="brush: vb; title: ;">
Class ClassA
    Public Sub New()
        _InitString = &quot;123&quot;
    End Sub

    Public Sub New(ByVal initStr As String)
        _InitString = initStr
    End Sub

    Private _InitString As String
    Public ReadOnly Property InitString() As String
        Get
            Return _InitString
        End Get
    End Property

    Public Sub ShowClassAInit()
        Console.WriteLine(InitString)
        Console.WriteLine(&quot;-----------------------------&quot;)
    End Sub
End Class
</pre>
<p>接下來我們需要Class B來繼承Class A </p>
<p>注意到了嗎，繼承建構子的實作方式就是於Class B加入一個與Class A一樣的初始建構子</p>
<p>並使用base(C#語法)、MyBase.New(VB.NET語法)把初始值帶入Class A。成功於Class B內，進行初始化Class A的動作 </p>
<p>C#版本Class B </p>
<pre class="brush: csharp; title: ;">
class ClassB : ClassA
{
    public ClassB()
    {        
    }

    public ClassB(string initStr)
        : base(initStr)
    {           
    }        
}
</pre>
<p>VB.NET版本Class B </p>
<pre class="brush: vb; title: ;">
Class ClassB
    Inherits ClassA

    Public Sub New()
    End Sub

    Public Sub New(ByVal initStr As String)
        MyBase.New(initStr)
    End Sub

End Class
</pre>
<p>接下來就看看怎麼使用，跟使用的結果吧<br />
下面使用Console來DemoC#版本Console </p>
<pre class="brush: csharp; title: ;"> 

class Program
{
    static void Main(string[] args)
    {
        ClassA CA1 = new ClassA();
        Console.WriteLine(&quot;new ClassA()&quot;);
        CA1.ShowClassAInit(); //Result:123 

        ClassA CA2 = new ClassA(&quot;Init AAA&quot;);
        Console.WriteLine(&quot;new ClassA(\&quot;Init AAA\&quot;)&quot;);
        CA2.ShowClassAInit(); //Result:Init AAA 

        ClassB CB1 = new ClassB();
        Console.WriteLine(&quot;new ClassB()&quot;);
        CB1.ShowClassAInit(); //Result:123 

        ClassB CB2 = new ClassB(&quot;Init BBB&quot;);
        Console.WriteLine(&quot;new ClassB(\&quot;Init BBB\&quot;)&quot;);
        CB2.ShowClassAInit(); //Result:Init BBB 

        Console.ReadLine();
    }
} 
</pre>
<p>  </p>
<p>VB.NET版本Console </p>
<pre class="brush: vb; title: ;"> 

Module Module1 

    Sub Main()
        Dim CA1 As New ClassA()
        Console.WriteLine(&quot;new ClassA()&quot;)
        CA1.ShowClassAInit()  'Result:123 

        Dim CA2 As New ClassA(&quot;Init AAA&quot;)
        Console.WriteLine(&quot;new ClassA(&quot;&quot;Init AAA&quot;&quot;)&quot;)
        CA2.ShowClassAInit()  'Result:Init AAA 

        Dim CB1 As New ClassB
        Console.WriteLine(&quot;new ClassB()&quot;)
        CB1.ShowClassAInit()  'Result:123 

        Dim CB2 As New ClassB(&quot;Init BBB&quot;)
        Console.WriteLine(&quot;new ClassB(&quot;&quot;Init BBB&quot;&quot;)&quot;)
        CB2.ShowClassAInit()  'Result:Init BBB 

        Console.ReadLine() 

    End Sub 

End Module 
</pre>
<p>執行結果如下圖<br />
<a title="Flickr 20110221_1" href="http://www.flickr.com/photos/jokkson/5463835988/"><img src="http://farm6.static.flickr.com/5136/5463835988_6b7de189af.jpg" alt="20110221_1" width="349" height="311" /></a></p>
<p>以上程式碼可於這邊<a href="http://www.minitw.com/download/BaseSampleCode.zip" target="_self">下載</a>(C#、VB.NET雙版本)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/707/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<enclosure url="http://www.minitw.com/download/BaseSampleCode.zip" length="13213" type="application/zip" /><media:content url="http://www.minitw.com/download/BaseSampleCode.zip" fileSize="13213" type="application/zip" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>繼承建構子(Constructor)，這看起來既有學問又深奧的文字。 不要怕，以下我問白話文解釋一下。 把繼承建構子分解後，就是 繼承 + 建構子。 繼承，相信有物件導向概念的朋友應該都知道這2個字的意思。 建構子(Constructor)，就是用來進行物件初始化的方法。 一般來說，Class B 繼承 Class A 之後就可以使用Class A所開放出來的東西。 那麼如果Class B 繼承 Class A後，想要對Class A進行初始化的動作，那就需要使用繼承建構子了。 先來看看程式吧，看程式就比</itunes:subtitle><itunes:summary>繼承建構子(Constructor)，這看起來既有學問又深奧的文字。 不要怕，以下我問白話文解釋一下。 把繼承建構子分解後，就是 繼承 + 建構子。 繼承，相信有物件導向概念的朋友應該都知道這2個字的意思。 建構子(Constructor)，就是用來進行物件初始化的方法。 一般來說，Class B 繼承 Class A 之後就可以使用Class A所開放出來的東西。 那麼如果Class B 繼承 Class A後，想要對Class A進行初始化的動作，那就需要使用繼承建構子了。 先來看看程式吧，看程式就比較不會那麼文謅謅了。 </itunes:summary><itunes:keywords>程式設計, C#, Constructor, VB.Net, 建構子, 繼承, 繼承建構子</itunes:keywords></item>
		<item>
		<title>在RouterOS中加入Port Mapping</title>
		<link>http://www.minitw.com/archives/702</link>
		<comments>http://www.minitw.com/archives/702#comments</comments>
		<pubDate>Tue, 15 Feb 2011 07:33:46 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>
		<category><![CDATA[NAT]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=702</guid>
		<description><![CDATA[之前幫 RouterOS 加上 IP分享器功能(NAT)這篇文章教大家怎麼把RouterOS當成Gateway，
讓內部的IP可以透過RouterOS上網。
那如果外部的電腦想連到內部電腦的服務(例如：Web、SSH、SQL Server...等)，
這時候就需要轉Port的功能(Port Mapping)]]></description>
			<content:encoded><![CDATA[<p>之前<a href="http://www.minitw.com/archives/272" target="_blank">幫 RouterOS 加上 IP分享器功能(NAT)</a>這篇文章教大家怎麼把RouterOS當成Gateway</p>
<p>讓內部的IP可以透過RouterOS上網</p>
<p>那如果外部的電腦想連到內部電腦的服務(例如：Web、SSH、SQL Server...等)</p>
<p>這時候就需要轉Port的功能(Port Mapping)</p>
<p>實作的方式也很簡單，使用winbox的介面就可以達成了</p>
<p>首先開啟winbox後，IP -&gt; Firewall -&gt; NAT -&gt; 加入一筆新的規則</p>
<p>接下來就看圖操作吧，要注意的是如果你是ADSL撥接上網的，In Interface請選該ADSL的介面</p>
<p><a title="Flickr 20110215_1" href="http://www.flickr.com/photos/jokkson/5446570497/"><img src="http://farm6.static.flickr.com/5294/5446570497_733f26d7b4.jpg" alt="20110215_1" width="500" height="500" /></a></p>
<p>Action的部份則是選dst-nat，IP與Port則是依自已的需求填寫</p>
<p><a title="Flickr  20110215_2" href="http://www.flickr.com/photos/jokkson/5447173920/"><img src="http://farm5.static.flickr.com/4076/5447173920_e34767a3ee.jpg" alt="20110215_2" width="498" height="500" /></a></p>
<p>最後記得把該新建立的規則拉到masquerade的上面</p>
<p><a title="Flickr  20110215_3" href="http://www.flickr.com/photos/jokkson/5446570613/"><img src="http://farm6.static.flickr.com/5173/5446570613_ed12f82e22.jpg" alt="20110215_3" width="500" height="248" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/702/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>在RouterOS中使用網路喚醒(Wake on LAN)</title>
		<link>http://www.minitw.com/archives/697</link>
		<comments>http://www.minitw.com/archives/697#comments</comments>
		<pubDate>Mon, 17 Jan 2011 02:51:36 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>
		<category><![CDATA[WOL]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=697</guid>
		<description><![CDATA[網路喚醒(WOL)是一個可以透過網路傳送封包，來達成遠端開機的技術。
詳細可以參考維基百科--網路喚醒或是如何透過網際網路遙控電腦開機 (Software: WOL magic packet sender)

使用前，請確認電腦的BIOS有開啟此項功能。不然你試半天，電腦也是不會理你的。

把以下的Script存到ROS裡面(請參考讓RouterOS自動把Log檔email出去)，並把MAC改成你想啟動電腦的網卡MAC位置。

接下來執行就可以了，]]></description>
			<content:encoded><![CDATA[<p>網路喚醒(WOL)是一個可以透過網路傳送封包，來達成遠端開機的技術。<br />
詳細可以參考<a href="http://zh.wikipedia.org/zh/%E7%B6%B2%E8%B7%AF%E5%96%9A%E9%86%92">維基百科--網路喚醒</a>或是<a href="http://blog.yam.com/lucast/article/17890768">如何透過網際網路遙控電腦開機 (Software: WOL magic packet sender)</a></p>
<p>使用前，請確認電腦的BIOS有開啟此項功能。不然你試半天，電腦也是不會理你的。</p>
<p>把以下的Script存到ROS裡面(請參考<a href="http://www.minitw.com/archives/212">讓RouterOS自動把Log檔email出去</a>)，並把MAC改成你想啟動電腦的網卡MAC位置。</p>
<pre class="brush: ros; title: ;">
#Script在RouterOS 4.15中測試通過
#Date:2011/01/17
#Script Name:BootPCwithWOL
#Script Description:使用Wake on Lan的方式遠端啟動PC

#網卡的MAC請依照下面的格式填入
:local MACADDR &quot;00:11:22:33:44:55&quot;;

:foreach eth in=[/interface ethernet find] do={
  /tool wol interface=$eth  mac=$MACADDR
}
</pre>
<p>接下來執行就可以了。</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/697/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RouterOS 全版本下載</title>
		<link>http://www.minitw.com/archives/680</link>
		<comments>http://www.minitw.com/archives/680#comments</comments>
		<pubDate>Sun, 19 Dec 2010 16:13:19 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=680</guid>
		<description><![CDATA[花了一些時間，下載RouterOS歷史的版本
有需要的人就請自取吧。請到<a href="http://rosdl.minitw.com/">http://rosdl.minitw.com/</a>下載
請大家別用多點續傳的方式下載，本小站只有200kByte的上傳能力而已
RouterOS版本若有更新，一樣是在此頁面更新資訊
]]></description>
			<content:encoded><![CDATA[<p>花了一些時間，下載RouterOS歷史的版本<br />
有需要的人就請自取吧。請到<a href="http://rosdl.minitw.com/">http://rosdl.minitw.com/</a>下載<br />
請大家別用多點續傳的方式下載，本小站只有200kByte的上傳能力而已<br />
RouterOS版本若有更新，一樣是在此頁面更新資訊</p>
<p>目前提供的版本如下，如果需要更詳細的檔案清單，請<a href="http://rosdl.minitw.com/rosFiles.html" target="_blank">點這邊</a>(檔案有點大，請有心理準備)</p>
<p><span id="more-680"></span></p>
<div class="iframe-wrapper">
  <iframe src="http://rosdl.minitw.com/rosList.html" frameborder="0" style="height:1400px;width:800px;">Please upgrade your browser</iframe>
</div><br />
RouterOS All Version Download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/680/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>VB.NET 的另類可斷行字串寫法</title>
		<link>http://www.minitw.com/archives/675</link>
		<comments>http://www.minitw.com/archives/675#comments</comments>
		<pubDate>Wed, 24 Nov 2010 12:13:05 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=675</guid>
		<description><![CDATA[有寫過C#的朋友大概都知道，要在C#中輸入一段有斷行的字串或SQL時，
都會使用「@」這個好用的符號。好處就是可以直接斷行。
如果行數一多，那可真是累死人不償命又無聊的工程。
某天在黑暗執行緒的某一篇文章挖到了寶，
使用VB.NET 2008內建的XML嵌入語法，來達成模擬C#的「@」。



]]></description>
			<content:encoded><![CDATA[<p>有寫過C#的朋友大概都知道，要在C#中輸入一段有斷行的字串或SQL時</p>
<p>都會使用「@」這個好用的符號。好處就是可以直接斷行</p>
<p>例如：<br />
string test = @"<br />
select * from tb<br />
where c1 = 123"</p>
<p>但是在VB.NET就要很鱉腳用 「 &amp; _ 」來斷行<br />
例如：<br />
dim test as string<br />
test = "select * from tb" &amp; _<br />
"where c1 = 123"</p>
<p>如果行數一多，那可真是累死人不償命又無聊的工程<br />
某天在<a href="http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/06/19/c-or-vb-net.aspx#6697">黑暗執行緒的某一篇文章</a>挖到了寶</p>
<p>使用VB.NET 2008內建的XML嵌入語法，來達成模擬C#的「@」<br />
直接看下面的例子</p>
<pre class="brush: vb; title: ;">
        Dim JS As String = &lt;s&gt;&lt;![CDATA[
                &lt;script type=&quot;text/javascript&quot;&gt;
                jQuery(function ($) {
                    $('#@txtbox.ClientID@').datepicker({
                    rangeSelect: true,
                    firstDay: 1,
                    changeMonth: true,
                    changeYear: true,
                    showOn: 'both',
                    buttonImageOnly: true,
                    buttonImage: '@Context.Request.ApplicationPath@/Picture/calendar.gif'
                    });
                });
                &lt;/script&gt;
        ]]&gt;&lt;/s&gt;.Value.Replace(vbLf, vbCrLf)</pre>
<p>跟據Ark網友的補充，由於預設的換行是vbLf，所以後面我加了Replace(vbLf, vbCrLf)<br />
來把換行符號變成vbCrLf</p>
<p>那如果字串裡面有變數怎麼辦?<br />
先把變數用@包起來，例如：@txtbox.ClientID@<br />
之後再用Replace去把變數塞進去，例如：JS = JS.Replace("@txtbox.ClientID@", "AAAA")</p>
<p>看來一切都很完美了，不過還沒結束<br />
當你在VS2010上使用時你會發現字串內的文字是接近白色的<br />
這對老人家的眼力是很大的考驗<br />
<a title="Flickr 上  20101124_1" href="http://www.flickr.com/photos/jokkson/5203520505/"><img src="http://farm5.static.flickr.com/4085/5203520505_c1563dbd76.jpg" alt="20101124_1" width="500" height="256" /></a></p>
<p>這時候可以進去選項裡面調整</p>
<p><a title="Flickr 上 的 20101124_2" href="http://www.flickr.com/photos/jokkson/5204119842/"><img src="http://farm6.static.flickr.com/5284/5204119842_c4fc8d6b65.jpg" alt="20101124_2" width="306" height="427" /></a></p>
<p>選擇字型與色形，再挑選VB XML CData 區段，調整你想要顏色，按下確定</p>
<p><a title="Flickr 上  的 20101124_3" href="http://www.flickr.com/photos/jokkson/5204119908/"><img src="http://farm5.static.flickr.com/4084/5204119908_743849e9b8.jpg" alt="20101124_3" width="500" height="276" /></a></p>
<p>收工</p>
<p><a title="Flickr 上  的 20101124_4" href="http://www.flickr.com/photos/jokkson/5204119954/"><img src="http://farm6.static.flickr.com/5046/5204119954_404d67a4f1.jpg" alt="20101124_4" width="500" height="262" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/675/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>讓.Net的方法、函式顯示過時</title>
		<link>http://www.minitw.com/archives/667</link>
		<comments>http://www.minitw.com/archives/667#comments</comments>
		<pubDate>Tue, 09 Nov 2010 05:28:16 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Obsolete]]></category>
		<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[過時]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=667</guid>
		<description><![CDATA[如果你有寫公用程式讓使用者使用，也許經過版本的更新 有些方法、函式已經過時或過期了 你不再建議使用者繼續使用，而是改用新的方法 這時候要怎麼提示使用者呢? 答案就是使用 Obsolete 這個屬性 先來看看範例程式碼 VB.NET 的語法如下 Partial Public Class GetDirectoryFiles ''' &#60;summary&#62; ''' 取得資料夾與檔案 ''' &#60;/summary&#62; ''' &#60;returns&#62;String&#60;/returns&#62; ''' &#60;remarks&#62;&#60;/remarks&#62; &#60;Obsolete(&#34;這個方法已經過時了，建議使用新的方法GetDF()&#34;)&#62; _ Public Function GetDirectoryFile() As String Return &#34;&#34; End Function End Class C# 的語法如下 public partial class GetDirectoryFiles { /// &#60;summary&#62; /// 取得資料夾與檔案 /// &#60;/summary&#62; /// &#60;returns&#62;String&#60;/returns&#62; /// &#60;remarks&#62;&#60;/remarks&#62; [Obsolete(&#34;這個方法已經過時了，建議使用新的方法GetDF()&#34;)] [...]]]></description>
			<content:encoded><![CDATA[<p>如果你有寫公用程式讓使用者使用，也許經過版本的更新<br />
有些方法、函式已經過時或過期了<br />
你不再建議使用者繼續使用，而是改用新的方法<br />
這時候要怎麼提示使用者呢?</p>
<p>答案就是使用 Obsolete 這個屬性<br />
先來看看範例程式碼</p>
<p>VB.NET 的語法如下</p>
<pre class="brush: vb; title: ;">
    Partial Public Class GetDirectoryFiles
        ''' &lt;summary&gt;
        ''' 取得資料夾與檔案
        ''' &lt;/summary&gt;
        ''' &lt;returns&gt;String&lt;/returns&gt;
        ''' &lt;remarks&gt;&lt;/remarks&gt;
        &lt;Obsolete(&quot;這個方法已經過時了，建議使用新的方法GetDF()&quot;)&gt; _
        Public Function GetDirectoryFile() As String
            Return &quot;&quot;
        End Function
    End Class
</pre>
<p>C# 的語法如下</p>
<pre class="brush: csharp; title: ;">
public partial class GetDirectoryFiles
{
	/// &lt;summary&gt;
	/// 取得資料夾與檔案
	/// &lt;/summary&gt;
	/// &lt;returns&gt;String&lt;/returns&gt;
	/// &lt;remarks&gt;&lt;/remarks&gt;
	[Obsolete(&quot;這個方法已經過時了，建議使用新的方法GetDF()&quot;)]
	public string GetDirectoryFile()
	{
		return &quot;&quot;;
	}
}
</pre>
<p></p>
<p>當使用者使用到這個方法、函式就會出現下面的提示<br />
提示使用者需要注意一下<br />
<a href="http://www.flickr.com/photos/jokkson/5160008737/" title="Flickr 20101109_1"><img src="http://farm5.static.flickr.com/4107/5160008737_0980417eb7_z.jpg" width="640" height="69" alt="20101109_1" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/667/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 快速匯入資料的方法</title>
		<link>http://www.minitw.com/archives/659</link>
		<comments>http://www.minitw.com/archives/659#comments</comments>
		<pubDate>Mon, 01 Nov 2010 03:08:29 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[軟體技術]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[匯入]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=659</guid>
		<description><![CDATA[如果你是用SQL Dumper(<a href="http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/05/14/sql-dumper.aspx">黑暗執行緒：好用的SQL Dumper</a>)來匯出SQL Server的資料，當你要匯入時
可能你會遇到 .sql 檔的檔案太大，SQL Server Management Studio 開不起來
]]></description>
			<content:encoded><![CDATA[<p>如果你是用SQL Dumper(<a href="http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/05/14/sql-dumper.aspx">黑暗執行緒：好用的SQL Dumper</a>)來匯出SQL Server的資料，當你要匯入時<br />
可能你會遇到 .sql 檔的檔案太大，SQL Server Management Studio 開不起來<br />
或是開起來後，執行很慢<br />
這時候我們就需要使用sqlcmd來幫我們執行指令，較不吃資源<br />
使用方式為開始 --&gt; 執行 --&gt; cmd </p>
<p>C:\Program Files\Microsoft SQL Server\90\Tools\Binn&gt;sqlcmd -S 資料庫的IP -U 使用者名稱 -d 資料庫名稱 -i "C:\Documents and Settings\Administrator\SQLFile\SQL1.sql" </p>
<p>如此就可以執行匯入了，如果還需要更詳細的資訊可以使用sqlcmd -? 這個指令 </p>
<p>C:\Program Files\Microsoft SQL Server\90\Tools\Binn&gt;sqlcmd -?<br />
Microsoft (R) SQL Server 命令列工具<br />
版本 9.00.4035.00 NT INTEL X86<br />
Copyright (c) Microsoft Corporation. All rights reserved. </p>
<p>使用方式: Sqlcmd                [-U 登入識別碼]         [-P 密碼]<br />
  [-S 伺服器]           [-H 主機名稱]           [-E 信任連接]<br />
  [-d 使用資料庫名稱]   [-l 登入逾時]           [-t 查詢逾時]<br />
  [-h 標頭]             [-s 資料行分隔符號]     [-w 螢幕寬度]<br />
  [-a 封包大小]         [-e 回應輸入]           [-I 啟用引號識別碼]<br />
  [-c 命令結束]         [-L 列出伺服器[清除輸出]]<br />
  [-q "命令行查詢"]             [-Q "命令行查詢" 並結束]<br />
  [-m 錯誤層次]         [-V 嚴重性層級]         [-W 移除句尾空格]<br />
  [-u unicode 輸出]             [-r[0|1] 訊息傳至 stderr]<br />
  [-i 輸入檔]           [-o 輸出檔]             [-z 新密碼]<br />
  [-f &lt;字碼頁&gt; | i:&lt;字碼頁&gt;[,o:&lt;字碼頁&gt;]]               [-Z 新密碼並結束]<br />
  [-k[1|2] 移除[取代] 控制字元]<br />
  [-y 可變長度類型顯示寬度]<br />
  [-Y 固定長度類型顯示寬度]<br />
  [-p[1] 列印統計資料[冒號格式]]<br />
  [-R 使用用戶端地區設定]<br />
  [-b 發生錯誤時中止批次]<br />
  [-v var = "值"...]  [-A 專用管理員連接]<br />
  [-X[1] 停用命令, 啟動指令碼, 環境變數 [並結束]]<br />
  [-x 停用變數替代]<br />
  [-? 顯示語法摘要]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/659/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MikroTik RouterBoard RB750 開箱分享</title>
		<link>http://www.minitw.com/archives/639</link>
		<comments>http://www.minitw.com/archives/639#comments</comments>
		<pubDate>Thu, 01 Jul 2010 15:56:09 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[RouterOS]]></category>
		<category><![CDATA[RB750]]></category>
		<category><![CDATA[RouterBoard]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=639</guid>
		<description><![CDATA[MikroTik RouterBoard RB750 這是一台內含RouterOS Level 4的路由器 RouterOS相信有在玩軟體路由的同好，應該都有聽過它的名字才對 之前在玩網路的時候，也在選擇一套好用的路由軟體 有試過現在很熱門的DD-WRT、pfSense、WinGate、Linux的iptables 試來試去總是感覺上缺少了那一點點，每套都有每套的好處 功能強的，沒有友善的介面使用 有好用介面的，但就是吃多了點資源 穩定的系統，有些功能又沒提供 真是有一好，而沒二好 直到發現RouterOS這個好東西，為什麼說是好東西呢?當然不是隨便說說的 RouterOS是一個基於Linux上開發的系統 而MikroTik公司也針對RouterOS設計了一個設定程式，供設定RouterOS使用 這真是魚與熊掌兼得呀 有Linux其穩定不吃資源的核心，又有完善的程式介面可以使用 你說，這叫尋尋覓覓己久的我，怎麼能不心動呢 於是一頭就栽進了RouterOS的世界 越玩，才越知道RouterOS的強大 但玩RouterOS最大的缺點就是，入門的門檻很高 至少要有一點網路的基礎跟Linux iptables的觀念，玩起來，才不會那麼痛苦 不是網頁點一點、勾一勾，就會有你想要的功能了(如果你堅持用RouterOS提供的WEB設定，你會很失望的) 如果要用個東西來比喻的話 一般的無線分享器、路由器就像房車 只要會踩油門，會轉方向盤，就可以上路了 刷了DD-WRT後，就像改裝後的房車 油缸加大、馬力加大、加入自動導航，狠一點再加個渦輪系統 我想有這台車，應該沒什麼問題了。應付一般的需求很足夠了 RouterOS，就像是一台全配的戰車 要在上面架個機槍，甚至裝個飛彈系統都沒問題 你要開去買菜、開去打戰都沒問題 唯一的問題，就是你得知道怎麼使用這台戰車，這就是門檻 這樣子說，大家應該對RouterOS有點認識了吧 不過在台灣，玩RouterOS的人真的算是少數 可能是入門的門檻高與硬體取得不易，再加上RouterOS的文章很少使得找資料不便 目前可以找到RouterOS資料的，在台灣就屬小弟的電腦茶包Blog自嗨，跟台灣代理商立誠電腦資訊有限公司了 至於大家最關心的價錢問題，就留到文尾再跟大家交待吧 看完了上面的廢話，接下來就開始正文的開箱文了 開箱後第一眼看到的就是廠商附的簡易使用說明書，教你怎麼進行設定RouterOS 說明書的下面就是裝本文的主角RouterBoard RB750了，有看到那個連線數32786可不是騙人的 進入系統看，NAT Connection真的可以到32768條 盒子旁側的簡易設定說明，這邊我要補充說明一下。電腦插在port1，預設僅能使用IP方式的設定 也就是說你可以在IE上打IP進入，可以用Winbox打IP進入。但你用Winbox的掃瞄，是掃不到的 要讓Winbox掃瞄的到，請插Port2~5任一個。解決的設定方式，會在之後寫相關的文章跟大家分享 盒子側面的硬體相關資訊。RB750的Port 1有支援PoE供電 RAM是32MB。可用的儲存空間是64MB(RouterOS作業系統佔去了32MB，剩32MB可使用) Port 1預設是GateWay [...]]]></description>
			<content:encoded><![CDATA[<p>MikroTik RouterBoard RB750 這是一台內含RouterOS Level 4的路由器<br />
RouterOS相信有在玩軟體路由的同好，應該都有聽過它的名字才對<br />
之前在玩網路的時候，也在選擇一套好用的路由軟體<br />
有試過現在很熱門的DD-WRT、pfSense、WinGate、Linux的iptables<br />
試來試去總是感覺上缺少了那一點點，每套都有每套的好處<br />
功能強的，沒有友善的介面使用<br />
有好用介面的，但就是吃多了點資源<br />
穩定的系統，有些功能又沒提供<br />
真是有一好，而沒二好</p>
<p>直到發現RouterOS這個好東西，為什麼說是好東西呢?當然不是隨便說說的<br />
RouterOS是一個基於Linux上開發的系統<br />
而MikroTik公司也針對RouterOS設計了一個設定程式，供設定RouterOS使用<br />
這真是魚與熊掌兼得呀<br />
有Linux其穩定不吃資源的核心，又有完善的程式介面可以使用<br />
你說，這叫尋尋覓覓己久的我，怎麼能不心動呢</p>
<p><span id="more-639"></span></p>
<p>於是一頭就栽進了RouterOS的世界<br />
越玩，才越知道RouterOS的強大<br />
但玩RouterOS最大的缺點就是，入門的門檻很高<br />
至少要有一點網路的基礎跟Linux iptables的觀念，玩起來，才不會那麼痛苦<br />
不是網頁點一點、勾一勾，就會有你想要的功能了(如果你堅持用RouterOS提供的WEB設定，你會很失望的)</p>
<p>如果要用個東西來比喻的話<br />
一般的無線分享器、路由器就像房車<br />
只要會踩油門，會轉方向盤，就可以上路了</p>
<p>刷了DD-WRT後，就像改裝後的房車<br />
油缸加大、馬力加大、加入自動導航，狠一點再加個渦輪系統<br />
我想有這台車，應該沒什麼問題了。應付一般的需求很足夠了</p>
<p>RouterOS，就像是一台全配的戰車<br />
要在上面架個機槍，甚至裝個飛彈系統都沒問題<br />
你要開去買菜、開去打戰都沒問題<br />
唯一的問題，就是你得知道怎麼使用這台戰車，這就是門檻</p>
<p>這樣子說，大家應該對RouterOS有點認識了吧<br />
不過在台灣，玩RouterOS的人真的算是少數<br />
可能是入門的門檻高與硬體取得不易，再加上RouterOS的文章很少使得找資料不便<br />
目前可以找到RouterOS資料的，在台灣就屬小弟的電腦茶包Blog自嗨，跟台灣代理商立誠電腦資訊有限公司了<br />
至於大家最關心的價錢問題，就留到文尾再跟大家交待吧</p>
<p>看完了上面的廢話，接下來就開始正文的開箱文了</p>
<p>開箱後第一眼看到的就是廠商附的簡易使用說明書，教你怎麼進行設定RouterOS</p>
<p><a title="Flickr IMG_4060" href="http://www.flickr.com/photos/jokkson/4742654162/"><img src="http://farm5.static.flickr.com/4102/4742654162_9845f08c06.jpg" alt="IMG_4060" width="500" height="375" /></a></p>
<p>說明書的下面就是裝本文的主角RouterBoard RB750了，有看到那個連線數32786可不是騙人的</p>
<p><a title="Flickr IMG_4061" href="http://www.flickr.com/photos/jokkson/4742655794/"><img src="http://farm5.static.flickr.com/4114/4742655794_5b5aac8d8b.jpg" alt="IMG_4061" width="500" height="375" /></a></p>
<p>進入系統看，NAT Connection真的可以到32768條</p>
<p><a title="Flickr  4" href="http://www.flickr.com/photos/jokkson/4742069401/"><img src="http://farm5.static.flickr.com/4082/4742069401_9d3dd8afdc_b.jpg" alt="4" width="734" height="505" /></a></p>
<p>盒子旁側的簡易設定說明，這邊我要補充說明一下。電腦插在port1，預設僅能使用IP方式的設定<br />
也就是說你可以在IE上打IP進入，可以用Winbox打IP進入。但你用Winbox的掃瞄，是掃不到的<br />
要讓Winbox掃瞄的到，請插Port2~5任一個。解決的設定方式，會在之後寫相關的文章跟大家分享</p>
<p><a title="Flickr IMG_4063" href="http://www.flickr.com/photos/jokkson/4742020625/"><img src="http://farm5.static.flickr.com/4140/4742020625_24e06a2795.jpg" alt="IMG_4063" width="500" height="375" /></a></p>
<p>盒子側面的硬體相關資訊。RB750的Port 1有支援PoE供電<br />
RAM是32MB。可用的儲存空間是64MB(RouterOS作業系統佔去了32MB，剩32MB可使用)<br />
Port 1預設是GateWay Port<br />
Port2~5預設是Switch Port</p>
<p><a title="Flickr IMG_4064" href="http://www.flickr.com/photos/jokkson/4742659854/"><img src="http://farm5.static.flickr.com/4076/4742659854_2b8f985b69.jpg" alt="IMG_4064" width="500" height="375" /></a><br />
<a title="Flickr 上 猴子銘 的 3" href="http://www.flickr.com/photos/jokkson/4742707430/"><img src="http://farm5.static.flickr.com/4140/4742707430_f957029522_b.jpg" alt="3" width="734" height="505" /></a></p>
<p>盒子的背面，說明RB750的功能。這邊寫的，我想只有RouterOS功能的10分之1<br />
你就知道RouterOS的功能有多麼的多了</p>
<p><a title="Flickr IMG_4066" href="http://www.flickr.com/photos/jokkson/4742022329/"><img src="http://farm5.static.flickr.com/4136/4742022329_9356a80303.jpg" alt="IMG_4066" width="500" height="375" /></a></p>
<p>正面的特寫，讓大家看清楚一點</p>
<p><a title="Flickr IMG_4067" href="http://www.flickr.com/photos/jokkson/4742661360/"><img src="http://farm5.static.flickr.com/4136/4742661360_5c04bae49d.jpg" alt="IMG_4067" width="500" height="375" /></a></p>
<p>開盒了，很簡單的就是RB750一台，加上變壓器一個</p>
<p><a title="Flickr IMG_4075" href="http://www.flickr.com/photos/jokkson/4742025201/"><img src="http://farm5.static.flickr.com/4099/4742025201_ac5d5644f2.jpg" alt="IMG_4075" width="500" height="375" /></a></p>
<p>變壓器可插100v~240v的電，當然110V，也是沒問題的</p>
<p><a title="Flickr IMG_4076" href="http://www.flickr.com/photos/jokkson/4742665218/"><img src="http://farm5.static.flickr.com/4137/4742665218_2e4dc4ccf1.jpg" alt="IMG_4076" width="500" height="375" /></a></p>
<p>驗明正身RouterBoard 750</p>
<p><a title="Flickr IMG_4077" href="http://www.flickr.com/photos/jokkson/4742028791/"><img src="http://farm5.static.flickr.com/4117/4742028791_d1095ba51b.jpg" alt="IMG_4077" width="500" height="375" /></a><br />
<a title="Flickr 上 猴子銘 的 IMG_4078" href="http://www.flickr.com/photos/jokkson/4742668118/"><img src="http://farm5.static.flickr.com/4134/4742668118_3003c88efb.jpg" alt="IMG_4078" width="500" height="375" /></a></p>
<p>RB750的背面，很簡單，就網卡的卡號跟機身序號</p>
<p><a title="Flickr IMG_4079" href="http://www.flickr.com/photos/jokkson/4742670140/"><img src="http://farm5.static.flickr.com/4095/4742670140_3af088da0b.jpg" alt="IMG_4079" width="500" height="375" /></a></p>
<p>這樣就完了嗎?當然還沒，接下來要把RB750脫光光</p>
<p><a title="Flickr IMG_4080" href="http://www.flickr.com/photos/jokkson/4745243955/"><img src="http://farm5.static.flickr.com/4079/4745243955_6254f2fc3e.jpg" alt="IMG_4080" width="500" height="375" /></a></p>
<p>有散熱片的那個是CPU</p>
<p><a title="Flickr IMG_4081" href="http://www.flickr.com/photos/jokkson/4742036199/"><img src="http://farm5.static.flickr.com/4116/4742036199_99fe6361be.jpg" alt="IMG_4081" width="500" height="375" /></a></p>
<p>電源處理的部份，可吃8V~28V的電</p>
<p><a title="Flickr IMG_4083" href="http://www.flickr.com/photos/jokkson/4742037795/"><img src="http://farm5.static.flickr.com/4134/4742037795_1ce548cf67.jpg" alt="IMG_4083" width="500" height="375" /></a></p>
<p>D2516AETA-5B-E 是 32MB的RAM</p>
<p><a title="Flickr IMG_4086" href="http://www.flickr.com/photos/jokkson/4742040181/"><img src="http://farm5.static.flickr.com/4073/4742040181_b766c3d02b.jpg" alt="IMG_4086" width="500" height="375" /></a></p>
<p>左邊的是CPU，右邊的是64MB的Flash</p>
<p><a title="Flickr IMG_4087" href="http://www.flickr.com/photos/jokkson/4742042387/"><img src="http://farm5.static.flickr.com/4080/4742042387_a05f772a06.jpg" alt="IMG_4087" width="500" height="375" /></a></p>
<p>整個RB750的大小就是一片1.44MB磁片加上1個10元的大小</p>
<p><a title="Flickr IMG_4090" href="http://www.flickr.com/photos/jokkson/4742043957/"><img src="http://farm5.static.flickr.com/4094/4742043957_6037c86cc2.jpg" alt="IMG_4090" width="500" height="375" /></a></p>
<p>平放後的高度也只有1個50元高度</p>
<p><a title="Flickr IMG_4091" href="http://www.flickr.com/photos/jokkson/4742683154/"><img src="http://farm5.static.flickr.com/4139/4742683154_10b22f7cc4.jpg" alt="IMG_4091" width="500" height="375" /></a></p>
<p>RB750不偷料，請看下面那台，Port裡面只給你4根必要的針腳。RB750則是完整的8根</p>
<p><a title="Flickr IMG_4092" href="http://www.flickr.com/photos/jokkson/4742046691/"><img src="http://farm5.static.flickr.com/4121/4742046691_7415cdfacf.jpg" alt="IMG_4092" width="500" height="375" /></a></p>
<p>坦白的說，這台RB750 CP值真的很高，別的不說，光是RouterOS Level 4，就要USD$45元了<br />
版本的比較與價格請看<a href="http://wiki.mikrotik.com/wiki/Manual:License_levels">http://wiki.mikrotik.com/wiki/Manual:License_levels</a><br />
等於是硬體送給你，軟體再折扣一次了。如果需要Giga Port的，請自行參考RB750G</p>
<p>這次的開箱文就到這邊了，接下來會接連寫一些RouterOS相關的文章(設定、使用.......等)<br />
就請有興趣的同好期待吧.........此文同步發表於<a href="http://www.minitw.com/" target="_blank">電腦茶包Blog<br />
</a><br />
如果你想玩玩看RouterOS可以到<a href="http://www.mikrotik.com/download.html" target="_blank">官網</a>下載x86版的ISO檔，然後用VMWare或VirtueBox裝起來玩看看<br />
相信你會有另一種體驗的</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/639/feed</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>開啟 CodeRush Xpress 10.1 的選單功能列</title>
		<link>http://www.minitw.com/archives/633</link>
		<comments>http://www.minitw.com/archives/633#comments</comments>
		<pubDate>Fri, 11 Jun 2010 07:23:26 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[軟體技術]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=633</guid>
		<description><![CDATA[在安裝完CodeRush Xpress 10.1 後 進入Visual Studio你會發現上面的工具列多一個DevExpress 但是等Visual Studio載入完成後，DevExpress就不見了 以下登錄檔可以讓DevExpress出現，如要應急的話 按下Ctrl + Alt + Shift + O，就可以顯示DevExpress的設定視窗 x86 系統用，把文字存成.reg後執行。Visual Studio重開就完成了 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Developer Express\CodeRush for VS\10.1] &#34;HideMenu&#34;=dword:00000000 x64 系統用，把文字存成.reg後執行。Visual Studio重開就完成了 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Developer Express\CodeRush for VS\10.1] &#34;HideMenu&#34;=dword:00000000]]></description>
			<content:encoded><![CDATA[<p>在安裝完CodeRush Xpress 10.1 後<br />
進入Visual Studio你會發現上面的工具列多一個DevExpress<br />
但是等Visual Studio載入完成後，DevExpress就不見了<br />
以下登錄檔可以讓DevExpress出現，如要應急的話<br />
按下Ctrl + Alt + Shift + O，就可以顯示DevExpress的設定視窗</p>
<p>x86 系統用，把文字存成.reg後執行。Visual Studio重開就完成了</p>
<pre class="brush: sql; title: ;">
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Developer Express\CodeRush for VS\10.1]
&quot;HideMenu&quot;=dword:00000000
</pre>
<p>x64 系統用，把文字存成.reg後執行。Visual Studio重開就完成了</p>
<pre class="brush: sql; title: ;">
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Developer Express\CodeRush for VS\10.1]
&quot;HideMenu&quot;=dword:00000000
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/633/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2010 不能開發 Mobile Application</title>
		<link>http://www.minitw.com/archives/622</link>
		<comments>http://www.minitw.com/archives/622#comments</comments>
		<pubDate>Thu, 03 Jun 2010 16:27:47 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[碎碎雜唸]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=622</guid>
		<description><![CDATA[是的，你沒看錯!!

如果你有下載微軟提供的中文試用版來用
你就會發現，裡面沒有智慧型手機的開發專案，簡單的說就是VS2010現在不玩.NET Compact Framework 了
]]></description>
			<content:encoded><![CDATA[<p><strong>是的，你沒看錯!!</strong>至少現在不行</p>
<p>如果你有下載微軟提供的<a href="http://www.microsoft.com/visualstudio/zh-tw/download" target="_blank">中文試用版</a>來用<br />
你就會發現，裡面沒有智慧型手機的開發專案，簡單的說就是<a href="http://msdn.microsoft.com/en-us/library/sa69he4t.aspx">VS2010現在不玩.NET Compact Framework 了</a></p>
<p>沒圖沒真相，所以一定要來張圖<br />
<a title="Flickr 20100604_1" href="http://www.flickr.com/photos/jokkson/4666146957/"><img src="http://farm5.static.flickr.com/4021/4666146957_93d8ba6d94_b.jpg" alt="20100604_1" width="990" height="751" /></a></p>
<p>微軟真的要跟.NET Compact Framework 說掰掰了嗎?<br />
我想這個問題就讓微軟的技術團隊去煩惱吧</p>
<p>而最新的<a href="http://developer.windowsphone.com/">Windows 7 Phone</a>，目前開發只有<a href="http://go.microsoft.com/?linkid=9713250">CTP</a>可以玩<br />
要開發PDA、PPC、Mobile Phone的軟體，很抱歉，目前請先用Visual Studio 2008<br />
看來VS2010有很多驚喜等我去發現.........</p>
<p>相關文章：<br />
<a title="Permanent Link to Visual Studio 2010 中文版下載" rel="bookmark" href="http://www.minitw.com/archives/615">Visual Studio 2010 中文版下載</a><br />
<a title="Permanent Link to 微軟三螢一雲，Visual Studio 2010上市發表會資料下載" rel="bookmark" href="http://www.minitw.com/archives/604">微軟三螢一雲，Visual Studio 2010上市發表會資料下載</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/622/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<enclosure url="http://go.microsoft.com/?linkid=9713250" length="3364168" type="application/octet-stream" /><media:content url="http://go.microsoft.com/?linkid=9713250" fileSize="3364168" type="application/octet-stream" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>是的，你沒看錯!! 如果你有下載微軟提供的中文試用版來用 你就會發現，裡面沒有智慧型手機的開發專案，簡單的說就是VS2010現在不玩.NET Compact Framework 了 </itunes:subtitle><itunes:summary>是的，你沒看錯!! 如果你有下載微軟提供的中文試用版來用 你就會發現，裡面沒有智慧型手機的開發專案，簡單的說就是VS2010現在不玩.NET Compact Framework 了 </itunes:summary><itunes:keywords>碎碎雜唸, Visual Studio</itunes:keywords></item>
		<item>
		<title>Visual Studio 2010 中文版下載</title>
		<link>http://www.minitw.com/archives/615</link>
		<comments>http://www.minitw.com/archives/615#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:20:41 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[網路好康]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.minitw.com/?p=615</guid>
		<description><![CDATA[開發人員所期待的Visual Studio 2010中文版，終於開放下載了
如果你有MSDN帳號，進去就有相關的檔案可以下載了
如果沒有的話，微軟很佛心的提供這個頁面給大家下載
]]></description>
			<content:encoded><![CDATA[<p>開發人員所期待的Visual Studio 2010中文版，終於開放試用版下載了<br />
如果你有MSDN帳號，進去就有相關的檔案可以下載了<br />
如果沒有的話，微軟很佛心的提供這個頁面給大家下載<br />
<a href="http://www.microsoft.com/visualstudio/zh-tw/download">http://www.microsoft.com/visualstudio/zh-tw/download</a></p>
<p><strong>如果你有購買正式版序號的話，補進去就成了正式版囉<br />
不用再移除重新安裝了</strong></p>
<p>VS2010的4個版本都到齊了<br />
Visual Studio 2010 Professional 專業版<br />
Visual Studio 2010 Premium 企業版<br />
Visual Studio 2010 Ultimate 企業旗艦版<br />
Visual Studio 2010 Test Professional 品管人員版</p>
<p>其他像是<br />
Visual Studio Team Foundation Server 2010<br />
Visual Studio Lab Management 2010 測試實驗室版<br />
Visual Studio Team Explorer Everywhere 2010<br />
都有提供下載</p>
<p>相關文章：<br />
<a href="http://www.minitw.com/archives/604">微軟三螢一雲，Visual Studio 2010上市發表會資料下載</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minitw.com/archives/615/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	<media:rating>nonadult</media:rating></channel>
</rss><!-- Dynamic page generated in 0.716 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-07 09:28:56 -->

