<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Asp.net版Blog開發實錄</title><link>http://blog.blueshop.com.tw/dplayerd/category/1822.aspx</link><description>Asp.net版Blog開發實錄</description><managingEditor>毛豆</managingEditor><dc:language>zh-TW</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>毛豆</dc:creator><title>TrackBack規範</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/05/19/50956.aspx</link><pubDate>Sat, 19 May 2007 13:33:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/05/19/50956.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/50956.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/05/19/50956.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/50956.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/50956.aspx</trackback:ping><description>&lt;P class=Track&gt;引用：&lt;A href="http://mtbook.org/"&gt;Movable Type 文件集&lt;/A&gt;之&lt;BR&gt;&lt;A href="http://mtbook.org/mttrackback.html"&gt;引用功能技術規格&lt;/A&gt;&lt;/P&gt;
&lt;P class=Track&gt;引用：&lt;A href="http://blog.csdn.net/niki190/archive/2006/12/01/1424119.aspx"&gt;TrackBack原理及源碼實現&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;「TrackBack」為通知原文發文者我對原文做了些評筆的功能，中譯「引用」。這在Blog中是相當常見的技術，原始概念是來自BBS上的推文及收藏評論。為了開發blog，在網路上找了許多資料，好不容易給我找到關於實作的部份了。&lt;/P&gt;
&lt;P&gt;這篇先說概念的部份，真正要實作就等晚點吧。先看引用功能技術規格裡所載，引用功能是在資源A與資源B中利用一種叫做TrackBack ping的Request的技術來達成。若A為原發文者，B想用A的文章並發表些評論，則B可以發送一個TrackBack ping到A所公佈的網址，當A收到時，便回傳一份xml文件，借以告知B關於這份TrackBack ping被處理的情形。&lt;/P&gt;
&lt;P&gt;文件中規範了TrackBack以Post的方式來傳遞，即一切的函數都隱藏在背後。雖然有些站台也支援Get，但最好是發送都採用Post，接收則兩種兼具。&lt;/P&gt;
&lt;P&gt;接著讓我們看Request內容：&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;目的地：這決定了將被發送到哪個網址，如「http://www.foo.com/mt-tb.cgi/5」 
&lt;LI&gt;編碼格式：application/x-www-form-urlencoded 
&lt;LI&gt;真正傳送的內容：title=Foo+Bar&amp;amp;url=http://www.bar.com/&amp;amp;excerpt=My+Excerpt&amp;amp;blog_id=Foo&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;目的地則是對方放出來的網址，該網址必須要能處理以Post為傳送方法的Request。其中真正傳送的內容分成四段：&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Title:所撰寫之標題，若沒加Title則以網址代替。 
&lt;LI&gt;Url:自家網站的網址。 
&lt;LI&gt;Excerpt:撰寫的內容。 
&lt;LI&gt;Blog_id:自家網站的名稱。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;當網站A收到了這份Request，則會回傳兩種xml中的一種回去給B，一種成功，另一種則代表失敗，其內容如下：&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;成功：&lt;BR&gt;&lt;TEXTAREA class=xml name=code rows=6 cols=50&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;
&amp;lt;response&amp;gt;
&amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;
&amp;lt;/response&amp;gt;&lt;/TEXTAREA&gt; 
&lt;LI&gt;失敗：&lt;BR&gt;&lt;TEXTAREA class=xml name=code rows=6 cols=50&gt;&amp;lt;?xml version="1.0" encoding="iso-8859-1"?&amp;gt;
&amp;lt;response&amp;gt;
&amp;lt;error&amp;gt;1&amp;lt;/error&amp;gt;
&amp;lt;message&amp;gt;The error message&amp;lt;/message&amp;gt;
&amp;lt;/response&amp;gt;&lt;/TEXTAREA&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;如此便完成了。&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/50956.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>毛豆</dc:creator><title>開發Blog</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/25/50240.aspx</link><pubDate>Sun, 25 Mar 2007 20:31:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/25/50240.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/50240.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/25/50240.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/50240.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/50240.aspx</trackback:ping><description>&lt;P&gt;從2005年底就決定要開發Blog了，最初是因為都沒有看到使用ASP.net的Blog出現，所以想試著動手寫一個出來。但一直遲遲未動手，除了許多事讓自己沒辦法執行，只因一個字：懶。不過眼看著時間一分一秒過去，覺得還是趁還有時間趕快開發完，然後把它變成Open Source Software。&lt;/P&gt;
&lt;P&gt;話說剛想要開發的時候，正是無名剛紅（2004~2005尾），就連小舖部落格都還沒推出呢。雖然這是當紅炸子雞，但事實上所需要使用的程式技術並不很高。它類似討論區去掉依回覆排列，基本新增、刪除、修改一點也不能少，再加上一些比較新的技術：引用追蹤、RSS以及標準網頁語法來構成。&lt;/P&gt;
&lt;P&gt;未來開發時語言和資料庫將使用ASP.net（VB.net）、Access，而在Html碼可能會參考無名小站或是xCute這類的站，畢竟這些站已經有廣大的使用者幫它們做出許多版本，直接就可以套用過去（會不會被告抄襲呀？）。開發工具方面，應該會使用VS.net 2003為主、WebMatrix為輔（做出Code Inline和Code Behide兩種版本），也會用Dreamweaver幫忙，不過資安就先略過，否則再做下去就太多了，等1.0完成再來補。開發手段嘛，不囉嗦，就採用雛型法，這最簡單，也不用事先規劃。&lt;/P&gt;
&lt;P&gt;在這邊也邀請各位看到的朋友們一起來開發，目前的進度剛完成新增、依發表時間排列顯示、以及RSS產生器和小月曆，其餘像回應系統、刪除、修改、引用追蹤都還沒做。&lt;/P&gt;
&lt;P&gt;而關於引用追蹤連一點頭緒都沒有，有人能提供資料嗎？&lt;/P&gt;
&lt;P&gt;這篇其實在一個月前已經寫過，但按下發表…就被洗掉，當時的規畫更清楚，約現在的三倍左右。剛洗掉的時候，真的連再寫一次的動力都沒有。為什麼FireFox按下發表會被洗掉，這問題到現在還是搞不懂。&lt;/P&gt;&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/50240.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>毛豆</dc:creator><title>亂數排列(以猜數字遊戲為例)</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/19/50068.aspx</link><pubDate>Mon, 19 Mar 2007 00:46:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/19/50068.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/50068.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/03/19/50068.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/50068.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/50068.aspx</trackback:ping><description>&lt;P&gt;相信不少人在學程式時，凡到亂數這章就有作過猜數字吧。我也做過，想當初，產生四組不重覆的數字讓我們整班都想破頭，各種方法紛紛出籠，以前大家提出的方法有：&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;使用while迴圈直到四個數字都不重覆為止 
&lt;LI&gt;設定二維陣列，第二個維度為(true, false)，用以判斷是否使用過，也是用while迴圈 
&lt;LI&gt;利用動態陣列 
&lt;LI&gt;指標來取字串，並適當刪減（本文採用類似的方法）&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;其實尚有相當多想法，不過成功的方法並沒幾個，上面三種方法中，以第一種最笨，它相當消耗資源，讓cpu不斷的運算來取得成功。&lt;/P&gt;
&lt;P&gt;後來有人想出使用動態陣列，不過…當時我們使用的是c語言，不曉得怎麼用（後來才知道c語言無法直接使用動態陣列）。&lt;/P&gt;
&lt;P&gt;最後由某大胖（別懷疑，他外號真的叫大胖，哈哈），想出利用指標改變字串內容的方法（c語言無法直接更動字串內容），但是呢，那時候我們班還沒教過指標，大家都不會用，就他一個人搞定。&lt;/P&gt;
&lt;P&gt;後來許多人都由第一種改出第二種方法來，這也可以，但仍然蠻費資源。&lt;/P&gt;
&lt;P&gt;到了ASP.net就不需要這麼費力了，所以這次採用大胖的想法，但不使用指標來實作亂數排列。&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_8.png"&gt;&lt;/IMG&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_1.png"&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P&gt;由上面的程式碼中可以看到傳入值為兩個陣列和一個整數，整數是為了擴充而預料的欄位，所以亂用掉了。&lt;/P&gt;
&lt;P&gt;它的運作原理如下圖所示（橙色：不會再用到、綠色：被動態改變）：&lt;/P&gt;
&lt;P&gt;第一回合：k=2，list(0)=nums(2)，nums(2)=nums(9)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_4.png"&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P&gt;第二回合k=4，list(1)=nums(4)，nums(4)=nums(8)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_5.png"&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P&gt;第三回合k=2，list(2)=nums(2)，nums(2)=nums(7)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_6.png"&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P&gt;第四回合k=2，list(3)=nums(2)，nums(2)=nums(6)&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_7.png"&gt;&lt;/P&gt;
&lt;P&gt;結果：&lt;IMG src="/images/blog_blueshop_com_tw/dplayerd/1824/r_2.png"&gt;&lt;/P&gt;
&lt;P&gt;就像這個例子一樣，即使重覆了三次的序號二也沒關係，它根本就不會拿到相同的數字。如此一來，既不用設定檢查語法，也不用讓迴圈一直跑了，很自然就避掉重覆的情況，大胖，你真是太棒了。&lt;/P&gt;&lt;/IMG&gt;&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/50068.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>毛豆</dc:creator><title>blog開發記錄開通</title><link>http://blog.blueshop.com.tw/dplayerd/archive/2007/02/19/49668.aspx</link><pubDate>Mon, 19 Feb 2007 14:56:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/dplayerd/archive/2007/02/19/49668.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/dplayerd/comments/49668.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/dplayerd/archive/2007/02/19/49668.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/dplayerd/comments/commentRss/49668.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/dplayerd/services/trackbacks/49668.aspx</trackback:ping><description>這裡是開發blog的點點滴滴&lt;BR&gt;&lt;BR&gt;從寫下需求開始到寫碼都會一點一點的記錄在這邊&lt;BR&gt;&lt;BR&gt;從2005年底開始我就想寫個blog程式來玩玩&lt;BR&gt;&lt;BR&gt;那時候記得藍色小舖還沒開通blog呢&lt;BR&gt;&lt;BR&gt;但一直拖到現在，不過也沒關係，還是可以試著弄弄看&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;也請各位大大不吝指教&lt;img src ="http://blog.blueshop.com.tw/dplayerd/aggbug/49668.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>