大貓共和國

Meow

Erlang入門心得、學習資源推薦

幾個月前,我在Survey一些並行運算的技術時,注意到了Erlang這個語言。引述一下維基百科對Erlang的介紹

Erlang is a general-purpose concurrent programming language and runtime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and dynamic typing.
Erlang擁有許多近似Pure Functional Language的特性,對於習慣於物件導向、指令式編程的Programmer來說,應該算是相當奇怪的語言。

這幾個月,我利用業餘的時間進行Erlang的Study,對於Erlang以及函數編程,我自認都還在初學的階段。本文整理了一些我對於Erlang的入門心得,以及我推薦的學習資源。我假設讀者對於Erlang已經有最基本的了解,所以一些細節的東西不會深入提及。若你對Erlang還一無所知,推薦可以看看蔡學鏞先生對Erlang的介紹或是維基百科。

誰適合學習Erlang?

首先,我先簡短的介紹一下Erlang的優缺點。Erlang的強項在於建構並行(Concurrent)、分散(Distributed)、容錯 (Fault-tolerance)的系統。但他也有一些致命的缺點:內建函式庫的貧乏、對Unicode支援度低、缺乏良好的IDE及Debug Tool。

如果你建構的系統需要擁有並行、分散、容錯其中的一種特性,Erlang是值得一看的語言。就算你的項目沒有要以Erlang開發,我相信你在接觸這套語言時,可以得到一些有用的設計觀念。

如果你沒有以上的需求,而想學習一些函數編程(Functional Programming)語言來建構你的應用。那麼F#Scala可能都是不錯的選擇,這兩套語言分別可以輕鬆的與.Net Framework及Java整合,擁有強大的程式庫可以調用。

如果你想要找一套程式語言鑽研,擁有接近Purely Functional Language的特性 (Ex. Signel assignment, No Side-Effect) 。在這類語言中 (Ex. Haskell, Oz, Erlang…),我認為Erlang仍然是相當好的學習選擇。

最後,如果你喜歡寫程式,喜歡鑽研未知的技術,只要能學到有趣的東西就很開心,而不在乎學習的成果是否能拿到工作或應用上。恭喜你,你絕對是適合學習這類奇怪的語言的人。

學習Erlang不可不看的文件

以下是我主觀地認為學習Erlang不可不看的文件。
  • Programming Erlang: Software for a Concurrent World, Joe Armstrong著
    Erlang的書輯甚少,這本書應該可以說是Erlang的聖經。中規中矩的依序講述Erlang的語言特性、Sequential Programming、Concurrent Programming、Distributed Programming的實作方式。另外也提及了Mneisa(Erlang Database)、Socket、OTP Application等等重要的項目,並附帶有完整的應用範例。

    這本書是我在五月左右買的,現在台灣已經買的到蔡學鏞先生翻譯的Erlang程式設計。聽到這個名字應該可以相信其翻譯水準,有興趣的話可以買中譯本來看,至少可以省下幾百塊,原文書好貴 Q.Q
  • Making reliable distributed systems in the presence of software errors, Joe Armstrong的博士論文
    這篇似乎是比較容易被忽略的重要教學資源 (Well, 重要是我的主觀認定) 。大家不用看到「論文」兩個字就感到害怕,這篇論文沒有什麼深奧的數學公式,而是精彩的闡述了Erlang的設計核心理念。

    在Programming Erlang這本書中,我學習到了Erlang的基礎概念及語法。但唸完之後總覺得少了些什麼。試圖寫一些需要Concurrency的小工具時, 我發現我對於如何切分工作到不同進程(Process)相當沒有頭緒,直到我唸了這篇論文才補足了一個環節。

    這篇論文的第一、二章指出來Erlang的設計理念:
    「進程(Process)是封裝錯誤的單元」
    「進程要嘛就正正確確的活著,要嘛就痛痛快快的死掉」
    「一個錯誤從發生到被檢測出的時間越長,錯誤就越難以回復」

    這些觀念在Programming Erlang一書中只是約略地帶過,而在這篇論文中則是不斷的強調,所以我認為這篇論文特別值得一看。若不了解這些Erlang的核心設計理念,在設計Erlang系統時,應該是只能得其形而不得其髓。

    這篇論文可以免費下載,而對岸已有熱心人士將這篇論文翻譯成簡體中文的版本
以上是我學習到現在,覺得最有助益的Document。官方的文件有的地方寫的太仔細了,有空的話也可以多多參考:Getting Started算是精簡的Tutorial,Efficiency Guide有助於迅速的了解一些率考量的細節。而Programming Rule提出了一些很有用的Erlang Design Principle。

其他Erlang資源

目前國內深入接觸Erlang的人似乎還很少。繁體中文的資源首推蔡學鏞【言程序】部落格。其中對於程式語言、函數編程、Erlang都有相當精彩的見解。此外lazy Guy (不是東西的東西 vs 沒有邏輯的邏輯)這個Blog也有一些關於Erlang的文章。有些遺憾的,這兩個Blog是我目前找到僅有的繁體中文Erlang資源。

蔡學鏞先生在這篇文章中,整理了許多Erlang的學習資源(似乎都是英文的)。此外,中國大陸似乎也有不少人在玩Erlang。像是Erlang-ChinaJavaEye上的Erlang討論、以及Erlang | Ocaml China(目前似乎是當站的狀態),或許都值得一看。

Linux+EeePC? It’s Not Easy….

這篇要講的是「EeePC Linux版不適合給不懂電腦的人使用」…

華碩一開始在出產7吋的EeePC時,對EeePC有這樣的定位:
「Easy to play, easy to work, easy to learn」1
「EeePC不是PC、不是筆記型電腦」
當時EeePC的規格低,運算能力較差
官方只有搭載Xandros Linux的作業系統,而沒有MS Windows的版本

EeePC具備有無線上網、文書、撥放DVD及特定格式的影片….等功能….
官方也僅止於保證這些功能可以正確運作而已,確實不到一般筆電的所有功能。
但是這樣C/P值不錯的硬體,落到電腦玩家的手上,
網路上開始流傳「解放EeePC的實力」的方法
例如安裝LazyEeePC、使用Debian的套件庫、在7″ EeePC上灌Windows XP等等…

後來隨著8.9″及10″的EeePC上市
EeePC也開始同時販售Linux和Windows版
無論從價位或者效能來看
似乎再也沒有人能說EeePC不是筆電、只是玩具

價位落在13K~19K間的新型EeePC,大家應該會期待他能夠做到筆電能做的大部份功能
如果使用Windows,應該是沒問題的
可是Linux版的功能卻沒有跟上硬體的演進,內建的功能依然相當簡陋
當然,網路上有很多非官方的教學,教人如何擴充EeePC Linux的功能
但是我必需指出,這些教學的內容相當不easy,也不一定在每個版本上的EeePC上能夠正常工作
甚至,對Linux有一定概念的人,也不一定能解決每一個遇到的問題。

以下是我使用EeePC 901 + Linux所遇到的問題…

多媒體撥放
DVD的方面
原本EeePC內建的SMPlayer+MPlayer組合可以正確的撥放

EeePC並沒有內建rmvb的解碼器
網路上有一個lazyeeepc的懶人包,可以幫我們安裝一些EeePC Linux版上好用的工具
包括了rmvb的解碼器,讓我們可以直接用MPlayer撥放rmvb檔案

安裝了LazyEeePC之後,試著撥放rmvb影片看看
結果聲音和影像都停格的慘不忍睹

在網路上找到一些文章,說這是因為LazyEeePC安裝的是RealPlayer 9的codec
如果安裝了RealPlayer 10或11的Linux版,就可以順暢的撥放影片
於是我試著裝了這兩個版本….不管那一個版本
一開始撥放影片時程式就會馬上當掉
後來發現是XVideo的問題,關掉XVideo就可以撥放,但仍然有非常嚴重的停格現像

後來又無意間找到一篇教學….
在SMPlayer中將影像輸出裝置設成X11
音訊輸出裝置設成ALSA
RMVB就可以很順暢的撥放了….

一切事情解決了嗎?還沒有
在這個環境下,我試著用MPlayer撥放DVD,結果卻會當機!
以有其他人和我遇到同樣的問題。
經過交叉測試之後,發現不管是Debian或者XEPC套件庫的MPlayer,都無法在我的電腦上正常撥放DVD

無線網路
Xandros管理無線網路的GUI相當簡陋
(我沒在有NB上跑過Linux, 不清楚他是不是直接拿debian的套件來用)
做連線/斷線動作時,有時會跳出視窗顯示ifconfig等指令的執行過程,有時不會顯示
有時連不上網路時,也不會顯示錯誤訊息
另外,我找不到如何在UI中直接調整認證方式為Shared key..
在使用Shared Key認證方式時,好像唯有打指令設定一途

其他Linux Distribution
EeePC內建的Xandros功能明顯不足,或許有人會想要使用其他版本的Linux
但目前並沒有一個Linux Distribution對EeePC有完整的支援
eeebuntu, eeexubuntu這兩個專案,都還不能支援EeePC的所有硬體
PCMan等人開發的LXDE目前尚不支援EeePC 901

結語
本人並非微軟的愛好者。
我也相當遵敬、感謝lazyeeepc, LXDE, eeebuntu, eeeXubuntu的開發者。

我也可以想像,應該護有人跳出來說我資料找的不足。
在那裡有解決我遇到問題的方法。
但我必需指出,目前在EeePC上,Windows XP的支援性、易用性比Windows好的多。
對一個自認對Linux有一定程度了解的人,花兩個晚上還搞不定多媒體、無線網路。
這些東西使用Windows XP+MPlayer, KLite等免費軟體,幾分鐘就可以設定完閉。

對有一定Linux知識的玩家來說,Linux或許是你的好選擇。
但若你是要推薦給不太會用電腦的長輩、朋友、或是不想花太多時間調整系統。
我想「EeePC上Linux其實比Windows還簡單易用」這句話離限實還有一大段距離
如果你不想花一堆時間解決系統的問題,拿8G MLC硬碟去換XP的正版授權,我想是值得的。

最後,以上是我在2008/7月的使用心得。
這篇文章應具有時效性。
我也期待開源社群的活躍,或許有朝一日Linux會比Window還要Easy to use…


Footnotes:
  1. 參考此網頁的標題 [up]

4 Responses to “Linux+EeePC? It’s not easy….”

  1. songsongboyon 05 Aug 2008 at 2:07 am

    聽起來真是恐怖…連你都覺得難用的話 Orz

    不過是資工學生的就該買 Linux 版阿 XD (<= 偏見)

    反正現在也沒錢買這種東西,相信等我有錢時情況應該會好很多…吧?

  2. 大鳥on 09 Aug 2008 at 11:46 am

    你什麼時候留言的….
    我過了好幾天看到
    我WP的E-mail通知功能好像有點問題 Orz

  3. 玉子@香港on 29 Aug 2008 at 2:42 am

    咁 你一定要去呢度至得了,問 asus 係無用的, 佢地 d 技術人員一點都唔 pro, 夠胆同我講話 eeepc 目前係無任何 player 可以 support 到佢, 點知唔夠一個鐘我就搵到呢個網站, 我試過睇 rmvb, 不錯, 都幾流暢, 睇過呢個網站後, 包你愛上你的 eeepc.

    讓Eee PC內建的影音播放器支援rmvb
    http://blog.yam.com/tad0616/article/12306274

    Eee PC改造手冊
    http://blog.yam.com/BlogIndex.php?BLOG_ID=tad0616&CATEGORY_ID=1626347

一段愛與極座標系統的故事

被標題騙進來的人….這是數學文章不是愛情故事 XD

前陣子在同學Honda的BBS個版上看到一個關於笛卡兒的故事。其實這個故事源自於網路流傳,出處已經不詳了 (記得很久以前曾經看過不同的版本) ,在這裡引述一下….

十七世紀出生於法國的笛卡兒是第一個發現直角坐標的人,這對後人的貢獻相當大,可惜一生窮困潦倒。
一直到52歲,仍一直默默無名。當時法國正流行黑死病,笛卡兒不得不逃離,流浪到瑞典當乞丐。

某天,他在市場乞討時,有一群少女經過,
其中一名少女發現他的口音不像是瑞典人,她對笛卡兒非常好奇,於是上前問他:

「你從哪來的啊?」

「法國。」

「你是做什麼的啊?」

「我是數學家。」

這名少女叫克麗絲汀,18歲,是位公主,她和其它女孩不同,
克麗絲汀不喜歡文學,而是熱衷數學。
當她聽到笛卡兒說明身份後,感到相當大的興趣,於是把笛卡兒邀請回宮。

笛卡兒就成了她的數學老師,將一生的研究傾囊相授,
而克麗絲汀的數學也日益進步,直角坐標當時也只有笛卡兒這對師生才懂。

後來,他們之間產生了不一樣的情愫,發生喧騰一時的師生戀。
然而這件事傳到國王耳中,讓國王相當憤怒!下令將笛卡兒處死,克麗絲汀以自縊相逼,
國王害怕寶貝女兒真的會想不開,於是…將笛卡兒放逐回法國,也將克麗絲汀軟禁。

笛卡兒一回到法國沒多久就染上黑死病,躺在床上奄奄一息。
笛卡兒不斷地寫信到瑞典給克麗絲汀,都被國王攔截沒收。
克麗絲汀也就不曾收到過笛卡兒寫來的信…

就在笛卡兒快要死去的時候,他寄出了第13封信,當他寄出去沒多久後就氣絕身亡。
這封信的內容只有短短的一行…

r = a(1-sinθ)

國王攔截到這封信後拆開看,發現並不是一如往常的情話。
於是找來城裡所有科學家來研究,但都沒有任何人能夠解開。
國王心想…反正笛卡兒就快要死了,而且公主被軟禁時都悶悶不樂,便把信交給克麗絲汀。

故事暫停一下。




前陣子在PTT程設版看到有人問這樣的問題:
請問版上大大 我現在有一張image(方形)
想把他 warping 成環型(甜甜圈)
網路上沒看到相似的方法
不知道版上的高手有沒有任何想法呢
可以提供給小弟

極座標系統(Polar coordinate system)是解決這個問題的一個快速途徑。下圖 ((圖片引用自維基共享資援)) 是極座標系統的一個範例。



極座標系統定義一個中心點O,並且以與中心點的距離r,以及夾角θ,定位平面上的任何一個點。

極座標系統 (r, θ) 和我們更熟知的直角座標系 (x,y) 間,可以下列公式轉換:

[tex]x = r cos \theta[/tex]
[tex]y = r sin \theta[/tex]
記得這是理組高中數學的內容….

這樣對我們先前提到的問題有什麼幫助呢?

讓我們想想,怎樣在極座標系上,表示半徑為10的圓?
[tex]r = 10[/tex]
怎樣在極座標系上,表示一個內圈半徑為10,外圈半徑為15的環?
[tex]10 < r < 15[/tex]

要怎麼把一個矩型的圖片Wrap(變型)到一個環上,答案就呼之欲出了。


(x,y)為原圖上的座標
(x’,y’)為目的圖上的座標 (使用直角座標系,x軸向右,y軸向上)
(r,θ)為目的圖上的極標
(w,h)為原圖上的寬及高
R1為環內圈半徑,R2為環的寬度

讓我們觀查一下這組等式:
[tex] r = \frac{y}{h} \times R{2} + R{1} [/tex]
[tex] \theta = \frac{x}{w} \times 2\pi [/tex]

第一式讓y值越高時,r越大,距離原點越遠
第二式讓原圖的x座標轉變為目的圖的θ角,達成繞原點一週

但電腦在運算時,最直觀的方法是用點陣圖來處理。
所以我們最好把找到給定(x’, y’),找到(x,y)的公式。
因此,將上述等式移項

[tex]x = \theta \times \frac{w}{2\pi} [/tex]
[tex] y = (r-R{1}) \times \frac{h}{R{2}} [/tex]

配合

[tex]x’ = r cos \theta[/tex]
[tex]y’ = r sin \theta[/tex]

便可以(x’,y’)反查(x,y)

讓我們直接看看實作出來的效果
假設這是原圖(點擊放大) ((這是Gun and roses樂團Paradise City的第一句歌詞)) :



經過上述公式映射後會變成



看起來怪怪的應該是我沒有做Anti-aliasing。我用Matlab實作的程式碼置於文末,取樣時我是用nearest point,有興趣的人可以試著改成bilinear interpolation看看。




回到笛卡兒的故事吧….
當克麗絲汀收到這封信時,雀躍無比,她很高與她的愛人還是想念她。
她立刻動手研究這行字的秘密。沒多久就解出來了,用的就是「直角坐標圖」….

當 θ=0度時,r=a(1-0)=a
θ=90度時,r=a(1-1)=0
θ=180度時,r=a(1-0)=a
θ=270度時,r=a(1+1)=2a,

其中a為四截距的比值,再將所有的點連接起來…就是有名的心臟線

這是網路流傳文章的全文….可是看來他用的是極座標系統,與直角座標系並沒有直接的關係啊。

先不管這個,我們試著把這張圖畫出來吧,使用matlab是很簡單的..
close all; figure;
n = 10000;
a = 10;
X = zeros(n, 1);
Y = zeros(n, 1);
i = 0;
for theta = linspace(0, 2*pi, n+1)
i = i + 1;
r = a * ( 1 - sin(theta) );
X(i) = r * cos(theta);
Y(i) = r * sin(theta);
end
line(X,Y);




原來這張圖代表了笛卡兒對於公主的愛意啊….




至於這個故事的真實性,我想本來就是漏洞百出的,如果有興趣的話,這邊有人考據過了。我想,故事有趣就好,這時候真相可能不是那麼重要吧….XD如果有興趣,可以參考這篇文章

最後,我們可以用上面的方法,把一張矩型的圖片Wrap到一個心型的環上嗎?
原本的等式是
[tex]x = \theta \times \frac{w}{2\pi} [/tex]
[tex] y = (r-R{1}) \times \frac{h}{R{2}} [/tex]
我們簡單的以
[tex]R_{1} = a \times ( 1 - sin\theta ) [/tex]
代入即可得到


看起來怪怪的,圖片被太過扭曲了。至於為什麼會這樣,答案就留給有興趣的讀者自己找尋吧…

附上本文所用到的源碼及圖片,很久沒寫Matlab了,很多地方都沒寫好。[Link]

輕省筆電 無責任Survey

之前提到我想買輕省筆電 (我定位為:價位20K以下,重量1.5Kg以下的筆電) 。我針對目前的資訊做了一些調查。我主要是想拿來文書、上網,偶爾寫小程式,調查的方向偏向CPU運算、省電能力優秀的筆電。其實我對於這方面資訊也不甚了解,如果內容有所謬誤歡迎幫忙更正。



可以先參考8.9”以上 輕省筆電規格大對決這篇文章的表格。這張表列出了Asus EeePC, MSI Wind, HP2133, Acer AspireOne, Gigabyte M912這幾款筆電。幾乎包括了目前市面上所有的輕省筆電,我只知道漏掉了一個日本工人舍KJS系列的。


  • Acer AspireOne最先出局,他的MLC硬碟在Mobile01已經慢到哀鴻遍野了。

  • HP2133省電能力低落,出局。原裝附3 cell電池,但換成6 cell後省電能力仍不如Atom系列的CPU

  • Gigabyte M912…似乎是廠商延後出貨,目前還買不到,所以不考慮 =.=

  • 工人舍…CPU能力輸Intel Atom一截,出局。


刪到現在,還剩Asus EeePC系列和MSI Wind系列。我先關於整理一些筆電規格的知識。

硬碟

在硬碟的規格會看到一些專有名詞:HDD, SSD, MLC, SLC
稍微解釋一下

簡單說,所謂HDD就是一般的硬碟,用一個讀取頭去讀取磁盤上的資訊。
而SSD (固態硬碟) 就是像隨身碟那樣,沒有磁盤與讀取頭。

HDD和SSD各有優劣
HDD的優點為容量大 (或者說比較便宜,相同價錢可以買到較大空間的硬碟),速度較快。
但缺點是較為不耐震耐摔,可以想像在不斷震動的情況下,讀取頭較為容易損壞。

SSD的優點是耐震耐摔 (震動對他幾乎沒有影響) 適合在車上使用,省電、靜音 (不會有硬碟讀取的聲音)
雖然他耐摔,但其壽命和HDD相比,他能接受的寫入次數是比較少的。
但也不用太過擔心,參考一下這篇文章。 (雖然我覺得他的計算方法不盡正確)
我想,只要不要使用太常讀寫硬碟的軟體(如P2P),正常的使用就好了吧。

SSD又有分SLC和MLC兩種
SLC價錢高、速度快、壽命長
MLC價錢低、速度快、壽命短

輕省筆電為了壓低售價,通常是SLC及MLC混用
像是EeePC 901 XP版就是以4G SLC當作系統碟,8G MLC當作第二顆硬碟。

CPU

我所列出的EeePC和MSI Wind,只剩兩種CPU:Intel Celeron 900及Intel Atom 1.6G
簡單的說,這兩顆的運算能力是差不多的,但Atom比Celeron更省電,似乎也比較不會發熱。


其他的東西就比較直觀了。

螢幕大小EeePC 900, 901是8.9”,MSI U90是9”,EeePC 1000和MSI U100是10”。

聽說EeePC 901的鍵盤比一些其他的9”筆電要難打。我這幾天和同事借來試打,一開始是很不習慣,練了幾天之後覺得還好,只是要用特殊的姿勢,想要把字打快的話手會很痠。這個建議想要買的人多去試打看看 @@”


EeePC已知問題篇

EeePC大概是最紅的輕省筆電,我在Mobile01及ptt看到不少討論,我搜集了一下目前問題出現率的前三名。

第三名:EeePC 9xx及1000H型,喇叭會出現雜音。
這似乎是Driver或Firmware的問題。有些人會碰到有些人不會,有人說重灌Driver可以解決。這個問題的解決進度不明,但我相信不是重大的問題。

第二名:EeePC 9xx型,插著SD卡開機會當機。
這是BIOS的問題,已確認解決,更新BIOS後就沒問題了。

第一名:常看到「要放棄EeePC去買Wind」這種標題的文章,讓我很緊張的點進去看,想說EeePC是不是有什麼重大缺失。結果這些文章清一色在抱怨某些型號的EeePC太難買了。主要都是Linux版的買不到,像是20G SSD的EeePC 901 Linux版,目前聽說廠商只出貨過兩次。還有EeePC 1000型 (非1000H型) ,預定六月上市,七月連影子都沒有。據傳是Intel Atom CPU以及電池的材料缺貨所致。
結果這些文章都不是對EeePC本身的抱怨,而是太想買EeePC抱怨買不到 @@

Well, 這是目前對於EeePC的Survey,看來沒有太大的問題。

MSI Wind已知問題篇

Wind系列我就沒有那麼仔細的調查。
目前最聽說最大的問題就是重量設計不良,螢幕角度開太大會造成重心不穩,不小心的話會整個NB向後倒。

另外就是也聽說喇叭會出現有雜音的問題。




目前還在觀望中,最可能買的是901 Linux版吧,雖然目前還沒有貨

Blogger新提供XML匯入匯出功能

Blogger於六月已經開始提供了XML匯入匯出的功能
網路上也有些中文的試用報告,如:Josh’s Note: 來試試新玩意之六,Blogger in Draft:Import/Export
這部份我就不多說了。

本站之前提供了一個問題百出的Blog搬家工具 - BlogTrans。
這個工具搬家到Blogger,最大的限制就是每天只能匯入五十篇,以及匯入留言時會有些問題。

Blogger提供的這個新功能,匯出的XML檔基本上是Atom格式,但有的地方必需符合Blogger自己的規格。
一個重要的地方是:這個功能可以匯入留言,也沒有一天五十篇的限制。
所以要是我們摸透了他的XML格式,就有希望利用這個功能,做為將其他Blog資料 (例如無名) 匯入Blogger的方便跳版。

稍微看了一下他的格式,基本上每篇文章的結構是這樣

<entry>
<id>tag:blogger.com,1999:blog-1.post-1</id>
<published>2008-07-14T08:49:00.004-07:00</published>
<updated>2008-07-14T08:56:06.128-07:00</updated>
<category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/blogger/2008/kind#post'/>
<category scheme='http://www.blogger.com/atom/ns#' term='Label2'/><category scheme='http://www.blogger.com/atom/ns#' term='Label1'/>
<title type='text'>Test1</title>
<content type='html'>Test12</content>
<link rel='alternate' type='text/html' href='http://test0012463.blogspot.com/2008/07/test1_9163.html' title='Test1'/>
<link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3196312873051422574/posts/default/3405625350671241273'/>
<author>
<name>大宅鳥</name>
<uri>http://abcde.com</uri>
<email>12345@msn.com</email>
</author>
</entry>

如果要用程式生成這樣的格式,有幾點要注意的:


  • 最重要的一點,id tag似乎只能是tag:blogger.com,1999:blog-12345.post-23456這樣的格式,但裡面的數字不管填什麼,匯入時都沒有問題

  • 已經存在的欄位不要空著。Author裡的name, uri, email其實都沒有作用,但不打的話就會發生錯誤。

  • Comment的部份好像複雜一些,我還沒有摸清他的規則。


目前只研究到這樣。