一部修行人一定要看的動畫『 調象圖 九住心 』

感恩 師佛的加持

感恩 諸佛菩薩金剛護法的加持
===============
今天翻到這篇文章

對修行大有益處

面對自身種種情緒

種種環境與對境

我自己依舊處理得不好

該如何調御這頭大象ㄋ ?????

佛的稱號很多

其中『調御丈夫』

就是說

佛可以很巧妙很圓滿的調整

身心靈的狀態

處於一種美妙平衡之中

我該要好好調御這頭笨重的大象~~~

以下是我搜羅的好文章

與大家分享!


嗡阿吽.古魯貝.阿訶薩沙嘛哈.蓮生地.吽.
嗡。咕嚕。蓮生。悉地。吽。





一部修行人一定要看的動畫『 調象圖 九住心 』

一部修行人一定要看的動畫『 調象圖 九住心 』
西藏有一幅著名的唐卡《調象圖》,所描述的內容是「九住心」,透過連環的動畫,再配合《阿毗達磨集論》與《經莊嚴論》,我們更能夠清楚地了解成辦「安止」的方式!
以調伏大象,來比喻調伏自己的內心。
猴子,代表「掉舉」,黑色代表「昏沉 」,兔子代表「細微昏沉 」
出家人表“用功修定的行者”,他的鉤索表“正念”,棍表“正知”,這些是他馴心的工具。
道路六彎,象徵「六力」:聽聞力、思維力、正念力、正知力、精進力,與串習力。
這幅圖正是喻示佛教徒修習禪定必經的九個階段,稱為「九住心」
在初修時火比較猛,越往上走,火越小,這指開始修的時候必須用功力度大和很刻意,到後來不必太過用力和極刻意了。
人剛學佛時就像那不羈不馴的黑象一樣,思想不開悟,障礙重重,必須加以強制。猴子和火焰是象徵佛教哲理中所說的「心」。當魔障和心靈得到了凈化,由強制達到了自覺自愿,就和那象的顏色由黑逐漸變白、脾氣由暴躁變馴服一樣,徹底開悟了。
動畫最後和尚,到第 9住「等持住」──表示不須努力,任運而成的,心能完全如自己所願地安住於所緣上。 和尚坐著修定,象乖乖地躺在他旁邊,溫馴得不得了,而他的心有彩虹延伸出來,這是說隨等持住心後的境界與輕安。再之後和尚騎白象,而且有火和劍,這是表止觀雙運。這火是指智慧火。劍是表能斷輪迴的無我智慧正見。
動畫中出家人代表修行調心者,飄浮的人,無法證得究竟法喜!藏傳佛教中經常用馴象來比喻調心。
藏傳佛教寺院的壁畫上,常有《馴象圖》用來描述,修行者凈化心靈成長的步驟。

數據科學中必須熟知的5種聚類算法

轉貼:https://www.hksilicon.com/articles/1732695
聚類算法是機器學習中涉及對數據進行分組的一種算法。在給定的數據集中,我們可以通過聚類算法將其分成一些不同的組。在理論上,相同的組的數據之間有相同的屬性或者是特徵,不同組數據之間的屬性或者特徵相差就會比較大。聚類算法是一種非監督學習算法,並且作為一種常用的數據分析算法在很多領域上得到應用。
在數據科學領域,我們利用聚類分析,通過將數據分組可以比較清晰的獲取到數據信息。今天我們來看看,作為數據科學家需要知道並掌握的五種比較比較流行的聚類算法。

  K-means 聚類算法

K-means 聚類算法 可能是大家最為熟悉的聚類算法。它在許多的工業級數據科學和機器學習課程中都有被講解。並且容易理解和實現相應功能的代碼 。 比如以下的圖片:
k-means聚類
  1. 首先,我們確定要聚類的數量,並隨機初始化它們各自的中心點。為了確定要聚類的數量,最好快速查看數據並嘗試識別任何不同的分組。中心點是與每個數據點向量長度相同的向量,是上圖中的「x」。
  2. 通過計算當前點與每個組中心之間的距離,對每個數據點進行分類,然後歸到與距離最近的中心的組中。
  3. 基於迭代后的結果,計算每一類內,所有點的平均值,作為新簇中心。
  4. 迭代重複這些步驟,或者直到組中心在迭代之間變化不大。您還可以選擇隨機初始化組中心幾次,然後選擇看起來提供最佳結果。
k-means的優點是速度非常快,因為我們真正要做的就是計算點和組中心之間的距離;計算量少!因此,它具有線性複雜性o(n)。
另一方面,k-means有兩個缺點。首先,您必須先確定聚類的簇數量。理想情況下,對於一個聚類算法,我們希望它能幫我們解決這些問題,因為它的目的是從數據中獲得一些洞察力。k-均值也從隨機選擇聚類中心開始,因此它可能在算法的不同運行中產生不同的聚類結果。因此,結果可能不可重複,缺乏一致性。
K中位數是與K均值相關的另一種聚類算法,除了不使用平均值重新計算組中心點之外,我們使用組的中位數向量。這種方法對異常偏離值不太敏感(因為使用了中值),但對於較大的數據集來說要慢得多,因為在計算中值向量時,每次迭代都需要排序。

  Mean-Shift 聚類

Mean-shift 聚類是一個基於滑窗的算法,嘗試找到數據點密集的區域。它是一個基於質心的算法,也就是說他的目標是通過更新中心點候選者定位每個組或類的中心點,將中心點候選者更新為滑窗內點的均值。這些候選滑窗之後會在後處理階段被過濾,來減少臨近的重複點,最後形成了中心點的集合和他們對應的組。查看下面的說明圖。
單滑窗的 Mean-Shift 聚類
  1. 為了解釋 mean-shift,我們將考慮一個二維空間中的點集,像上圖所示那樣。我們以一個圓心在C點(隨機選擇)的圓形滑窗開始,以半徑 r 作為核。Mean shift 是一個爬山算法,它每一步都迭代地把核移動到更高密度的區域,直到收斂位置。
  2. 在每次迭代時,通過移動中心點到滑窗中點的均值處,將滑窗移動到密度更高的區域(這也是這種算法名字的由來)。滑窗內的密度與在其內部點的數量成正比。很自然地,通過將中心移動到窗內點的均值處,可以逐步的移向有個高的密度的區域。
  3. 我們繼續根據均值來移動滑窗,直到有沒有哪個方向可以使核中容納更多的點。查看上面的圖,我們一直移動圓圈直到密度不再增長。(即窗內點的數量不再增長)。
  4.  用很多滑窗重複1-3這個過程,直到所有的點都包含在了窗內。當多個滑動窗口重疊時,包含最多點的窗口將被保留。然後,根據數據點所在的滑動窗口對數據點進行聚類。 
下圖展示了所有滑動窗口從端到端的整個過程。每個黑色的點都代表滑窗的質心,每個灰色的點都是數據點。
Mean-Shift 聚類的全部過程
與 K-means 聚類不同的是,Mean-Shift 不需要選擇聚類的數量,因為mean-shift 自動發現它。這是一個很大的優點。事實上聚類中心向著有最大密度的點收斂也是我們非常想要的,因為這很容易理解並且很適合於自然的數據驅動的場景。缺點是滑窗尺寸/半徑「r「的選擇需要仔細考慮。

  基於密度的帶噪聲的空間聚類的應用(DBSCAN)

DBSCAN 是一個基於密度的聚類算法,與 mean-shift 相似,但是有幾個值得注意的優點。查看下面這個花哨的圖片,我們開始吧!
DBSCAN 笑臉聚類
  1. DBSCAN 從一個任意的還沒有被訪問過的啟動數據點開始。用一個距離 epsilon ε 將這個點的鄰域提取出來(所有再距離 ε 內的點都視為鄰居點)。
  2. 如果在鄰域內有足夠數量的點(根據 minPoints) ,那麼聚類過程開始,並且當前數據點變成新集群中的第一個點。否則,該點將被標記為噪聲(之後這個噪聲點可能會變成集群中的一部分)。在這兩種情況中的點都被標記為」已訪問「。
  3. 對於這個新集群中的第一個點,在它 ε 距離鄰域內的點已將變成相同集群中的一部分。這個讓所有在 ε 鄰域內的點都屬於相同集群的過程在之後會一直被重複做,直到所有新點都被加進集群分組中。
  4. 第 2,3 步的過程會一直重複直到集群內所有點都被確定,即所有在 ε 鄰域內的點都被訪問且被打上標籤。
  5. 一旦我們在當前集群做完這些,一個新的未被訪問的點會被提取並處理,從而會接着發現下一個集群或噪聲。這個過程反覆進行直到所有的點都被編輯為已訪問。既然在最後所有的點都被訪問,那麼每個點都被標記為屬於一個集群或者是噪聲。
相較於其他聚類算法,DBSCAN 提出了一些很棒的優點。首先,它根本不需要預置集群的數量。它還將離群值認定為噪聲,不像 mean-shift 中僅僅是將它們扔到一個集群里,甚至即使該數據點的差異性很大也這麼做。另外,這個算法還可以很好的找到任意尺寸核任意形狀的集群。
SBSCAN 最大的缺點是當集群的密度變化時,它表現的不像其他算法那樣好。這是因為當密度變化時,距離的閾值 ε 和用於確定鄰居點的 minPoints 也將會隨之改變。這個缺點也會發生在很高為的數據中,因為距離閾值 ε 變得很難被估計。

  基於高斯混合模型(GMM)的期望最大化(EM)聚類

k-means的一個主要缺點是它簡單地使用了集群中心的平均值。通過下面的圖片,我們可以看到為什麼這不是最好的方式。在左手邊,人眼可以很明顯地看到,有兩個半徑不同的圓形星團以相同的平均值為中心。k-means不能處理這個問題,因為不同簇的平均值非常接近。當簇不是圓形時,k均值也會失效,這也是將均值用作簇中心的後果。
K-means不適用的case
高斯混合模型(gmms)具有更好的靈活性比K-means。使用GMMs,我們需要假設數據點是高斯分佈,相對於環形的數據而言,這個假設的嚴格程度與均值相比弱很多。這樣的話,我們有兩個參數來描述簇的形狀:均值和標準差。以二維為例,意味簇可以是任何一種橢圓形(因為我們有兩個標準差在x和y方向)。因此,每個高斯分佈會被分配到單一的聚類簇。
為了在每個聚類簇中找到這兩個高斯參數(e.g均值和標準差),我們將使用的優化算法稱為expectation–maximization(EM)。請看下面的圖片,以說明將高斯擬合聚類簇。然後,我們可以處理EM聚類過程使用gmms。
   使用GMMs的EM聚類
  1. 我們首先設定聚類簇的數量(如k-means),然後隨機初始化每個集群的高斯分佈參數。我們也可以通過快速查看數據來為初始參數提供一個很好的猜測。正如上圖所示,這不是100%必要的,因為高斯操作開始時候是非常差的,但很快優化。
  2. 給定每個簇的高斯分佈,計算每個數據點屬於特定簇的概率。一個點越靠近高斯中心,它就越可能屬於該簇。這應該是直觀的,因為對於高斯分佈,我們假設大多數數據都靠近集群的中心。
  3. 基於這些概率,我們為高斯分佈計算了一組新的參數,這樣我們就可以最大化群集中數據點的概率。我們使用數據點位置的加權和計算這些新參數,其中權重是屬於特定集群的數據點的概率。為了以可視化的方式解釋這一點,我們可以查看上面的圖形,特別是以黃色集群為例。在第一次迭代中,分佈是隨機開始的,但是我們可以看到大多數黃點都在分佈的右邊。當我們計算一個由概率加權的和時,即使在中心附近有一些點,但大多數都在右邊。因此,分佈的平均值很自然地移近這些點集。我們還可以看到,大多數點是「從右上到左下」。因此,標準偏差會發生變化,以創建一個更適合這些點的橢圓,以便最大化概率加權的和。
  4. 第2步和第3步重複進行,直到收斂,也就是在收斂過程中,迭代變化不大。
使用GMMS有兩個關鍵優勢。首先,GMMS在簇協方差方面比K均值靈活得多;由於標準偏差參數的存在,簇可以呈現任何橢圓形狀,而不局限於圓形。k均值實際上是GMM的一個特例,其中每個簇的所有維協方差都接近於0。其次,由於GMM使用概率,因此每個數據點可以有多個集群。因此,如果一個數據點位於兩個重疊集群的中間,我們可以簡單地定義它的類,方法是說它屬於類1的X%,屬於類2的Y%。即GMMS支持混合成員。

  凝聚層次聚類 

凝聚層次聚類算法實際上分為 2 類:自上而下或自下而上。自下而上算法在一開始將每個數據點當作一個單個集群對待,然後逐步的合併(或凝聚)成對的集群,直到所有的集群被合併到一個集群中,這個集群包含所有的點。自下而上層次聚類因此被叫做層次凝聚的聚類或者 HAC。這個聚類的層次被表示為一棵樹(或者樹狀圖)。樹根是唯一的集群,他聚集了所有的樣本,葉子是只有一個樣本的集群。在接着看算法步驟之前,請查看下面的圖示說明。
 凝聚層次聚類
  1. 我們通過將每個點視作一個單個集群作為開始,即如果我們的數據集中有 X 個數據點,那麼我們就有 X 個集群。我們然後選擇一個距離度量標準來測量兩個集群之間的距離。作為一個例子,我們將用到平均連接,它將兩個集群之間的距離定義為第一個集群中的數據點與第二個集群中數據點的平均距離。 
  2. 在每次迭代時,我們將兩個集群組合成一個。兩個將被組合的集群是在那些有最小平均連接的集群中選出來的,即根據我們選擇的距離度量標準,這些兩兩集群之間有最小的距離,且因此是最相似的也最應該被組合。
  3. 一直重複第二步,直到我們到達樹的根部,即我們只有一個包含所有數據點的集群。通過這種方法,我們僅僅通過選擇停止組合的集群的時機,即選擇何時停止樹的構建,就可以挑選出最終我們想要的集群數。
層次聚類不要求我們指定集群的數目,並且我們甚至可以選擇看上去最好的集群的數目,因為我們正在構建一棵樹。另外,算法對於距離度量的選擇也是不敏感的;所有的這些都和其他聚類算法的效果一樣好,而對於其他算法,距離度量的選擇是很關鍵的。層次聚類方法的一個典型的使用案例是當底層數據具有層次結構並且要恢復層次結構時; 其他聚類算法做不到這個。這些層次聚類的優點的代價是效率很低,因為它的時間複雜度是O(n³),不像有線性複雜度的 K-Means 和 GMM 那樣。

  結論

以上就是數據科學家最應該了解的5中聚類算法!我們將以一個很漂亮的可視化來作為結束,可視化展示了這些算法和一些其算法表現得多麼出色,這要歸功於 「Scikit Learn」庫!

想要繼續查看該篇文章相關鏈接和參考文獻?
長按鏈接點擊打開或點擊【數據科學中必須熟知的5種聚類算法】:

2019年2月9日勾財天女法會後的感想抒發~

感恩 大恩 真佛宗根本傳承上師 慈悲加持

感恩 大悲大願 大聖大慈 無極瑤池金母大天尊 慈悲加持

感恩 諸佛菩薩金剛護法的加持
------------------------------------------------
當日

一如往常

帶全家人(雄瑄妍勇)一起去參加法會

原則上,大部分時間都在虎邊的休息室

共沐佛光

師尊 法會開示中

我抱著勇

勇睡了

而我坐在休息室的椅子上

持『勾財天女心咒』

觀想『勾財天女形象』

接著就閉目養神中

忽然

一股很強的磁場

從我頂門灌入全身

就像是沐浴一樣

全身充滿精力

在過去也有這樣子的經驗

偶爾 禪定到很靜很靜很靜之時

頭頂就會的一股強大的靈力

一股腦兒的從我頂門灌入

一樣也是全身充滿精力

這次也不例外

我想可能真的睡得太熟 進入四摩地摟

當日晚上 一樣繼續做功課

念『瑤池金母養正真經』『瑤池金母普渡收圓解脫真經』

修了一壇『多寶如來念誦法』

二月十日晚上睡覺之時

我居然

遇見『佛』就是我的師父 蓮生活佛

我跪在師佛前面 準備全身大禮拜

忽然之間 師佛按著我的頭

我感覺我的靈體飛出去 全身很自在的漂浮在空中 好久一陣子

我一直默念著 『上師心咒』

應該有一段時間 我才慢慢回到我自己身體中

我發覺我神清氣爽 像是脫殼般地自在

感謝 師佛的加持

雖然不知道是不是法會的力量 還是持咒的力量 還是修法的力量

但是我不再去想這些

如 蓮師所說:『
心不拘執,
身隨所安,
且藉禪定,
以為基礎。
任何念起,
知而勿隨,
心不貪慾,
善惡念起,
不加修整,
惟常覺照,
若見光影,
美惡好醜,
不加驚喜,
惟澄心諦觀』

繼續努力 加油 柏雄

密勒日巴詩歌集 第四十四篇 調伏邪見僧眾的故事


                      第四十四篇    調伏邪見僧眾的故事
                                                                 譯者:張澄基
 
 
     敬禮上師。
 
         有一個寺廟,其中的和尚對尊者密勒日巴極懷瞋恨,說他是斷見(外
     道)。一天,密勒日巴要到這所寺廟去遊訪,所有的弟子們都竭力勸阻尊
     者不要去,但尊者不聽逕自前往。當他來到該廟的門前時,和尚們看見尊
     者的模樣都一齊擁上前來,群起毆打鞭苔他。這樣虐待了許久,才把尊者
     拖進廟中的大殿,綁在柱子上。不久,尊者忽然又在寺外出現了!眾僧於
     是又跑到寺外來百般毆打,興盡之後才釋放他離去。可是尊者忽然又在廟
     中的大殿上出現了。群僧又來毆打,尊者卻(一言不發)安坐如山,群僧
     盡力推動尊者,卻不能移動分毫。大家奮力推他出去,(尊者的身體,卻
     像是在地上生了根一般)絲毫不能動搖。於是和尚們就去四處找來許多人
     手,把尊者的身體用繩子捆牢;一部份人在前面拼命拉,另一部份人在後
     面拼命推,但尊者仍然像磐石一般安然不動。眾人使盡力氣,弄得精疲力
     盡,仍是不能移動絲毫。至此,大家才驚駭不已。有些人說道:「現在請
     你走吧。」另外一些人說道:「把你捆在屋內,你卻在門外出現;把你弄
     到外面,你卻又在屋內冒出來了;無論怎樣推你拉你也不能動你分毫,這
     是什麼緣故呢?」
 
         尊者說道:「因為我是個『斷見』的人,所以殺了我也是空的,打
     罵我也是空的,把我捆在室內是空的,擯我於室外還是空的。因為我對生
     死涅盤的二種執著都已斷捨,所以我才能如是。」
 
         眾僧中的一位長者說道:「您是一位得了成就的瑜伽行者,我們竟對
     您這樣凌辱,實在是罪過,現在向您懺悔,請您離去吧。」
 
         尊者說道:「我是不是成就的人很難說。那裏有成就的人我不曉得,
     他們作些什麼我也不知道,但是你們切莫要驕慢自大和對別人生起邪見。
     邪見是比十惡還要壞的!自慢自傲乃是我執的表現,也是墮入輪迴的親因
     啊!」
 
         眾僧說道:「我們十分相信你確是一位成就者。但你今天到此究竟為
     了何事,你適才所說的話是何用意呢?」
 
         尊者以歌答道:
 
   「中陰心識如彼水晶球,遠離障礙遮蔽及困縛,擒之不得縱之亦不去,
     我此行素如空中流星,為調不信邪見今示現,此我老密今日所顯化,
     以後無復顯此神蹟矣!
 
     此番盡除邪愚無少疑。                                            」
 
         其中一位僧人說道:「你適才所說甚為稀有,但是為什麼說以後再不
     示現這種神通了呢?」
 
         尊者答道:「示現神通有三種情況:
 
   「轉變不信之心識,激勵覺受令增長,指示果位之證量,於此等時顯神通,
     其他之時不可顯,至尊上師如是囑。                                」」
 
         那個僧人又說道:「你對開、遮的道理有這樣的了解,則必能於對治
     法得善巧,因而在積聚資糧和學習經典之時善能得到安樂自在。」
 
         尊者道:「我大概沒有用過太多的時間和精力去學習經典,也許我曾
     努力學習過,但現在卻早已忘乾淨了,我忘記它們是不妨事的,聽我歌曰
     :
 
   「證得平等性之時,則能忘卻諸親眷,忘盡貪欲亦善哉!
     現證離意智慧時,能所諸物皆忘卻,苦樂俱忘亦善哉!
     現證無思無受時,一切覺受皆忘卻,增減俱忘亦善哉!
     現證三身自體時,起分佛慢皆忘卻,忘觀想法亦善哉!
     現證自體即果時,有為之果皆忘卻。忘世俗法亦善哉!
     修觀耳傳口訣時,文字學問皆忘卻,忘我慢法亦善哉!
     現證所顯皆經時,黑字佛經皆忘卻,捨重負法亦善哉!                」」
 
         有一僧人說道:「在未成佛以前,難免會有懷疑和錯誤的發生,(因
     此應廣事參學,)如果忘捨所學之法要,那怎麼可以呢?」
 
         尊者以歌答曰:
 
   「若知迷亂皆由心,無根無實決了知,則於任何一切時,無須懃勇及造作,
     必證無轉之真理。
     若能現證實相義,自於諸法離取捨,淨無明時甚樂哉!
     現證無滅之理時,從此心不生希懼,迷亂永消甚樂哉!
     由無明故流三界,依成就師口訣修,則能無貪及無著,是乃真正大莊嚴!
     不依學究之煩言,諸成就者信念也。
     (縱學經典似大海),降伏煩惱無少用!
     是故汝等大法師,應常自省莫驕傲。
     抉擇所知與迷亂,開悟之時體性一。
     心莫造作自然性,終獲廣大如虛空。
     我名乃為佛陀尊!                                                」
 
         諸僧聽畢尊者的歌後都生起了信心,無復邪見造作罪業,於一切法都
     能生起清淨之見。
 
         眾僧中有一根性成熟的和尚叫黎果比丘,尊者攝受他為徒僕,傳以灌
     頂和口訣,然後命他去修持,因而得到十分善巧的覺受。他不覺忖道:「
     尊者的慈悲和神力是如此的偉大,他如果能夠稍微隨順世俗一點,那麼衛
     、藏到處的僧眾善知識們都會被他所攝受,徒眾將會遠比現在為多,他老
     人家的福祐和美譽,也必較現在更為增長。因此對佛法之弘揚及眾生之利
     益皆會更為廣大。」於是他就來到尊者面前,把自己的意思稟告尊者。
 
         尊者答道:「我除了依上師的訓囑去修持外,其他我什麼也不要。那
     些覺得有隨順世俗必要的人,隨他們去好了。聽我歌曰:
 
   「頂禮譯師馬爾巴足。
 
     了達名譽似谷響,不捨禁戒淡泊行,矯行虛飾全拋卻,名利得失不關心,
     心離牽掛甚樂哉!
     深識財物如幻故,所得財食盡拋卻,未得之物心不求,福用有無不關心,
     心離牽掛甚樂哉!
     深了眷從似幻人,則於徒眾離眷戀。
     博學持戒之法師,隨順世俗持威儀,其心執著顧忌多,我心坦蕩無罣礙,
     不拘僧俗心樂哉!
     證得貪瞋及苦痛,平等性中本一味,慾火煎心之緊繩,從此斬斷心舒快,
     友朋徒眾及相識,有亦樂哉無亦樂!
     法性本來離戲論,貪著戲論徒自苦,堅固能所之鐵鏈,我已切斷粉碎之,
     若逢任何色慾境,心無罣礙甚樂哉!
     心性本來是光明,無有妄念及垢障,如是何用勤抉擇?!
     捨卻一切分別心!
     任何語言與文字,無礙無著甚樂哉!                                」
 
         黎果說道:「就尊者自己講,適才所示當然是足之又足了。我是為了
     弘揚嘎舉派的教法和利益大多數的劣根眾生們才向您請求的。」
 
         尊者答道:「因為我當初曾立下堅誓要這樣作,所以就像賭了咒一樣
     。過去我這樣作,現在也是這樣作。這樣的作法也正是弘揚佛法,和利益
     眾生的(最好方法),必然會收到廣大的利益的。」
 
         黎果問道:「您過去發了怎樣的誓呢?」
 
         尊者道:「我曾發下這樣的誓語,你們這些徒兒也應該倣傚我,發同
     樣的誓語才好。」隨即歌道:
 
   「我因懼此輪迴故,依仗上師之恩典,曾發重誓無悔顧。
     未嚐妙法勝味前,此心甚易逐外境。
     不依師囑如法修,必為求食遊鄉鎮。
     方便妙道之精義,未能融歸本體前,若行密乘禁戒行,必將外洩難守密。
     輕傳那諾之口訣,則壞嘎舉正教法。
     如彼學人初發意,行願二種菩提心,極易假名修正法,所行實則為自利!
     我守馬爾巴之密咐,終身依山勤修持,二利事業任運成!
     我若不依上師囑,則難弘法於西藏,為令上師心歡喜,我今勤修無反顧!」
 
         黎果夏汝哇聽了此歌後得到尊者的大悲力加持後,心意完全轉變,
     說道:「我也決心依照尊者的意旨以終身修行為業。」於是他發下宏願和
     堅誓在山中專心勤修。不久,心地上產生了地、道等稀有的功德,終於成
     為尊者的出家弟子眾中一名親近弟子,人稱黎果夏汝哇云云。
 
         以上的這些故事,包括黎果夏汝哇的故事在內,是尊者攝受那些具足
     善根的各大(超勝)之子的記述。

金剛薩埵的誓願

[金剛薩埵的誓願]
  問:請問金剛薩埵的誓願是什麼?
  
  金剛薩埵、金剛心菩薩、金剛手菩薩是法、報、應三身,祂是五方五佛的法王子,一切如來的菩提心。
  金剛薩埵就是普賢菩薩,因此祂的誓願也等同普賢菩薩。在「大方廣佛華嚴經普賢行願品」中,普賢菩薩有十大願︰一者禮敬諸佛。二者稱讚如來。三者廣修供養。四者懺悔業障。五者隨喜功德。六者請轉法輪。七者請佛住世。八者常隨佛學。九者恒順眾生。十者普皆回向。
  金剛薩埵,又稱「具德金剛薩埵」,「具德」是具有斷、證的一切功德。
  金剛薩埵又名為「不動如來」,是密乘中極為重要的一個本尊。
  金剛薩埵在因地修行時,曾發願凡是向他祈禱的人,都能很快消除罪障,否則決不成佛。
  現「金剛薩埵」已在東方琉璃淨土中成佛,故而在舊、新一切密乘修法中,均以金剛薩埵佛尊作為懺悔消業時的本尊。
  百字明咒的中譯文:
  金剛勇識誓句 請勿忘
  金剛勇識加持
  堅固我自性 將喜悅我自性
  將不退我自性 不離悲護我自性
  一切成就 我賜無餘
  一切事業 祈賜我 心德賜與
  五智出世間 一切如來對我不棄
  金剛自性 大誓句永識

現實生活的吃喝拉撒睡

感恩 師佛的傳承大加持

感恩 諸佛菩薩護法金剛空行諸天的善守護
____________________

在家與出家

現實與幻想

總是有這個BODY

一樣要吃

一樣要拉

一樣要睡

點點點點點

現在的我

觀念有點改變了

或許有了小孩要養

需要去賺錢

畢竟小孩還沒有自主過生活的能力

當然

種種挑戰與苦頭都會來

柏雄

您如何應對?

過去的我

認為錢不重要

那是因為你沒遇到缺錢困境

認為人際關係不重要

那是因為你沒遇到人事上種種的逼迫困境

總是需要對境後

才知修行的功力

關起門來

就像是井中蛙般的無知

種種事物都需要巧勁

剛剛好最難



也是易被忽略的大事

我還在努力

因為我還有我與BODY

願 根本上師 蓮生活佛 與 文殊師利大菩薩

賜與給我『巧』的灌頂

嗡.古魯.蓮生.悉地.吽

嗡.阿拉巴扎那底



搬出來了

感恩 師佛的傳承加持

感恩諸佛菩薩金剛護法的善守護
_______________
沒想到我放棄的名下的財產

毅然決然地把它過戶

雖然知道不會再回到我手邊了

但,這是個包袱應該捨棄才是

原,心想不會有任何在意

哈,心裡還是掙扎了一下

現在的柏雄與兩個小孩與妻子

都搬出來了

在外頭租一間房子住

小孩吃得飽穿得暖

也很知足了

雖然很多的挑戰

雖然很多的困難

我祈求我的根本上師 南摩紅冠聖冕金剛上師 蓮生活佛 盧勝彥

住頂

加持我

渡過種種難關

阿彌陀佛



感恩一切的順逆加持

謝謝

祈願我的老爸與老媽

身體健康

平安吉祥

祈願我的修行

從日日智慧福份的增長

到日日智慧福份的那摸長


༄༅༎ཨོཾ་ཨཱ༔་ཧཱུྃ་བཛྲ་གུ་རུ་པདྨ་སིདྡྷི་ཧཱུྃ་ཧྲཱི༔༎​

༄༅༎ཨོཾ་གུ་རུ་པདྨ་སམ་སིདྡྷི་ཧཱུྃ༎








佛說摩訶迦羅大黑天神經

佛說摩訶迦羅大黑天神經
爾時,如來告大眾言•今此大會中,有大菩薩•名曰“大福德自在圓滿菩薩”•此菩薩往昔,成等正覺•號大摩尼珠王如來。今以自在業力故,來娑婆世界,顯大黑天神•是大菩薩大會中,即起座,合掌白佛言:我於一切貧窮無福眾生,為與大福德,今現優婆塞形,眷屬七母女天,三界遊現,欲與一切眾生福德•唯願世尊,為我說大福德圓滿陀羅尼•爾時,世尊開貌含笑,說咒曰:
曩謨三曼多。沒馱喃。唵。摩訶迦羅耶。娑婆訶。
爾時,世尊告大眾言:此天神咒,過去無量諸佛出世不說。若未來惡世中,有諸貧窮人,聞此陀羅尼名者,當知是人,降大摩尼寶珠,湧出無量珍寶。爾時,大黑天神白佛言:若有末法中眾生,持此咒者,我體若五尺,若三尺,若五寸,刻其形象,安置伽藍,若崇敬家內,我遣七母女天眷屬,八萬四千人福德神,遊行十方,每日供養一千人。若我所說有虛妄者,永墮惡趣,不還本覺。若又以種種珍果、美酒等供養者,將降甘露•時一切大眾,皆大歡喜,信受奉行,作禮而去。


【瑪哈嘎拉】

梵名Maha^ka^la,漢譯有嘛哈嘎拉、摩訶迦羅、大黑天、大黑天神等名。

東密相傳此尊系大日如來為降伏惡魔所示現的忿怒藥叉形天神,藏密相傳系觀世音菩薩顯化的大護法。
這是日本與西藏兩系密教都相當重視的修法物件。

大黑天具有戰鬥神、廚房神、塚間神與福德神之四種性格。其故如次:

其一,由於此神有無量鬼神眷屬,且長於隱形飛行之藥術,因此能在戰爭時加護那些向他祈求的眾生。

其二,此神能使食物經常豐足,因此印度寺院與我國江南民間,常有人在廚房祀奉。

其三,此神也是佛教徒在墳場中祀奉的神祇之一。

其四,相傳此神及其眷屬七母女天,能予貧困者以大福德。

關於此一天神的形像,通常分為二類。一類作忿怒形,依‘現圖胎藏界曼荼羅’外金剛部所載,其身現黑色,坐在圓座上,火炎發上豎,三面六臂。右第一手執偃月刀,二執骨念珠,三執小鼓。左第一手執天靈蓋,二執三叉戟,三執金剛繩,左右方之上雙手握住一張展開的象皮。另一類作凡人形,戴圓帽,背負一囊,持小槌,踏米袋。在修法時,忿怒形多用在作降魔法時;凡人形則用在求福德之時。

修習東密與藏密的人,對大黑天法頗為重視,其目標大多在祈禱為行者除魔,修行勝利成就與求福德。依‘大黑天神法秘密成就次第’所述,此法至為秘密,非入室弟子不傳,甚至於付予萬金也不輕傳。

密教守護神之一。音譯為摩訶迦羅、莫訶哥羅,意譯為大黑或大時,又稱摩訶迦神,或摩訶迦羅神、大黑神、大黑天神。印度教以此神為濕婆神的別名,或為濕婆之後突迦的化身(或侍者),主破壞、戰鬥;佛教則視之為大自在天的化身,或是毗盧遮那佛的化身等,諸說不一,概述如下:

(1)《大日經疏》等以此天為毗盧遮那佛的化身,即降伏荼吉尼的忿怒神。《大日經疏》卷十謂(大正39•687b):‘毗盧遮那以降伏三世法門,欲除彼故化作大黑神。’

(2)以此天為藥叉王,為波羅奈國的守護神。據《大方等大集經》卷五十五〈分佈閻浮提品〉所載,大黑天女與善發乾闥婆等俱護持養育波羅奈國。不空譯《佛母大孔雀明王經》卷中謂:‘大黑藥叉王,婆羅拏斯國。’

(3)以此天神為摩醯首羅之化身,亦即塚間神、戰鬥神。《仁王護國般若波羅蜜多經》卷下〈護國品〉:‘乃令斑足取千王頭,以祀塚間摩訶迦羅大黑天神。’唐•良賁于《仁王護國般若波羅蜜多經疏》卷下謂:‘言塚間者,所住處也。言摩訶者,此翻雲大。言迦羅者,此雲黑天也。(中略)大黑天神,鬥戰神也,若禮彼神增其威德,舉事皆勝,故向祀也。’良賁且引不空三藏之說,謂大黑天神系摩醯首羅變化之身,與諸鬼神無量眷屬常於夜間遊行林中,食生人血肉,有大力,所作勇猛,戰鬥等法皆得勝,故大黑天神即戰鬥神。

(4)《玄法寺儀軌》卷二列出暗夜神(即黑闇天)之真言,其下注為大黑天神。此即以大黑天神為黑闇天。

(5)以此天為財福神,司飲食。《南海寄歸內法傳》卷一〈受齋軌則〉條載‘又複西方諸大寺處,鹹於食廚柱側,或在大庫門前,雕木表形,(中略)黑色為形,號曰莫訶哥羅,即大黑神也。古代相承雲:是大天之部屬,**三寶,護持五眾,使無損耗,求者稱情。但至食時,廚家每薦香火,所有飲食隨列於前。(中略)淮北雖複先無,江南多有置處,求者效驗,神道非虛。’又,此天神的三昧耶形為劍,種子是‘琰’。《大黑天神法》載其真言為:唵蜜止蜜止(降伏)舍婆隸(自在)多羅羯帝(救度)娑婆訶。

日本諸寺根據《南海寄歸傳》所說,盛行於庫廚安置二臂大黑天像。後世更以之為七福神之一,有時且與大國主命混同,謂其乃授與世間富貴官位之福神,其信仰之風頗盛。

關於其形像,《最勝心明王經》謂,大黑天被象皮,橫把一槍,一端穿人頭,一端穿羊。《大黑天神法》載,青色三面六臂,最前面的左右手橫執劍,左次手提取人之髮髻,右次手執牝羊,次二手於背後張被象皮,以髑髏為瓔珞。《胎藏現圖曼荼羅》之像同此,唯羊與人頭左右相反。《慧琳音義》卷十說是八臂,身青黑雲色,二手於懷中橫把三戟叉,右第二手捉青羖羊,左第二手捉一餓鬼頭髻,右第三手把劍,左第三手執朅吒罔迦髑髏鐘,此是破壞災禍之標幟),後二手各於肩上共張一白象皮如披勢,以毒蛇貫穿髑髏以為瓔珞,虎牙上出,作大忿怒形,足下有地神女天,以兩手承足。《南海寄歸傳》則說是神王形,把金囊,踞於小床而垂一腳。

此外,藏傳佛教名之為瑪哈嘎拉,為護法之主尊。其形像頗多,性質皆異,茲分述如下:

(1)薩迦派二臂大黑天,又名刑罰主大黑天,由元代傳入宮廷。一面二臂,頭戴五骷髏佛冠,鬚髮紅赤上揚,身藍黑色,右手持金剛鉞刀,左手持顱器,兩手捧杖刀,刀內隱有神兵無數。主要在保護喜金剛行者。

(2)四臂大黑天,傳為勝樂金剛之化身,身青藍,持杵、劍、戟及嘎巴拉,有雙身相者。主要護持大手印行者。

(3)六臂大黑天,有黑、白等。黑色為香巴噶舉、覺囊及格魯派之主護法,手持鉞刀、小鼓、人骨念珠及顱器、三叉、金剛繩。

(4)白色六臂大黑天,為財神之一,手持摩尼寶、鉞刀、小鼓及三叉、顱器等,威神甚大。

[參考資料] 《不空罥索神變真言經》卷七、卷十五、卷二十五、卷二十七;《理趣釋》卷下;《青龍寺儀軌》卷下;《諸說不同記》卷十;《寂照堂穀響集》卷四。

上師瑜伽法的法義

《上師瑜伽法的法義》請注意以下的幾行字:願一切諸佛、菩薩、金剛、護法、空行、諸天的化身…蓮生活佛盧勝彥,長壽健康,弘法如意,一切吉祥。願一切障礙他的佛行事業,盡速的去除,達成大圓滿。願他自由自在,自如的轉化,每一世都能達成神聖的救度。我個人弟子 道心堅固的去實修,盧師尊的加持,是業障及煩惱去除的主因。我願與根本上師合一。「嗡。古魯。蓮生悉地。吽。」以上,就是「上師瑜伽法」的法義。

過多過少都不及格

感恩師佛的加持
感恩本尊的攝受
感恩護法的擁戴

修禪定之人

忌諱飲食的不均衡

過多過少都不及格

尤其是我

太愛吃了

蓋瑞王 加油

突破這道自己圍起來的防禦

嗡.古魯.蓮生.悉地.吽.

光坨坨就是光坨坨

感恩 師佛的加持
感恩 本尊的攝受
感恩 護法的擁戴

阿彌陀佛

好久好久沒有只睡四個小時

精神依舊飽滿

看來真的 師佛的加持與真佛密法的殊勝故吧

舉家搬遷到一個陌生的環境

一個不熟悉人事時地物的氛圍

但不影響

我要修行之路

紅塵滾滾來

我隨之起伏

紅塵滾滾去

光坨坨一片


嗡.古魯.蓮生.悉地.吽.

好久沒有上來寫文章了

感恩師佛與諸佛菩薩護法的加持與教導

距離上次寫文章已經有兩年了

這兩年發生太多事情

畢竟過了就是過了

無需再去回想追憶

眼前的日子過得很快

一樣也是過了

修行的時日不多

紅塵真的快把我給淹沒

想要努力跳出這一鍋醬菜時

發現跳與不跳都是一樣

要賺多少錢才夠

要跟人比較有沒有錢的心情如何才夠

想想看

日子不多了

如少水魚

有何快樂

願根本上師『蓮生活佛』加持我
願根本本尊攝受我
願根本護法擁護我

發起菩提心吧

行菩薩願吧

嗡.古魯.蓮生.悉地.吽


TLV 資料交換格式

當數位的資料需要「交換」的時候,就自然的產生了資料到底該如何儲存、解析等與「格式」有關的問題。 當資料格式第一次定下後,隨著程式的被使用,往往無法避免的需要變更舊有的資料格式, 因為沒有人能夠在一開始就知道未來新增的各種資料需求。 這個時候,資料格式的版本控制就成為一個非常重要的議題,也是傳統上許多的程式在其生命發展中期以後會面臨的棘手問題!
對於一支程式內部所儲存的資料我們一般無需擔心, 因為這類資料不對外公開,生命週期也很短,其通常會在程式結束執行以前消逝, 因此只要程式自己能正確解析自己寫的資料就可以了; 但當資料的填寫者和接收解析者為兩個不同的程式時,一方能不能看懂另一方的資料就顯得格外重要! 這樣的情境在平常其實很容易遇到, 比如說在網路的兩端有兩隻程式要互相交換資料、一支程式要解析由另一支程式所儲存的檔案等等。 這個時候就不能恣意變更原來的資料格式,因為另外一支程式並不隨時在自己的掌握之中; 甚至大部份的時候這所謂的另外一支程式並不是別人開發的程式,而是你自己所開發的程式, 也就是同一個程式的不同版本。 比如說你自己開發並發佈的一組 Client-Server 架構程式, 在後續的維護中你可能很難同時更新所有的伺服器和客戶端程式到最新版本, 此時就會產生不同版本 Client 和 Server 的溝通問題。 又比如說你自己開發的程式會儲存一些檔案, 那你又會面臨這個檔案能不能被新版程式辨識、或者檔案能不能被舊版程式正確解析的問題。
因此,本文將著重在資料格式的相容性、擴充性上面,介紹好用的 Type-Length-Value (TLV) 格式。 但為了能夠更理解這種格式的特別之處,在介紹 TLV 之前,我們還是先回顧傳統上最常見的資料格式。

傳統的固定欄位格式

對於一個二進位的資料包,以一個簡單的自訂聊天訊息為例,我們常常可以見到像這樣的格式敘述:
  • 一個聊天訊息封包為 16 位元組長。
  • 第 1 個位元組到第 2 個位元組為訊息發送者 ID。
  • 第 3 個位元組到第 16 個位元組為訊息內容。
當然,上面的格式敘述可能過於精簡,還缺乏諸如 ID 的 endian 格式、訊息內容是否為以 NULL 為結尾的字串等等, 但由於本文的目的不在於做出一個可以傳送聊天訊息的程式,因此相信適度的簡化一些不必要的內容是可以接受的。 若把上面的訊息格式以圖表的方式表示的話,可能就會像這樣:
在這類的格式中,資料中的每個欄位內容都出現在固定的位置上。 它的由來其實很簡單,因為這樣的資料和程式在記憶體中所處理的資料格式是一樣的, 以 C 語言來說,上面的格式其實就等同於下面這樣的資料結構定義:
    struct talkmsg_t
    {
        uint16_t sender;
        char message[14];
    };
這樣,程式只要把這個結構的資料整包送出去、整包收下來,就可以了!
固定欄位格式還有另外一種變形,會在某些欄位前加上欄位資料的長度,以便利不定長度的資料包裝。 我們可以把前述的聊天訊息格式稍加修改,讓文字訊息的部份變成不定長:
這種格式會需要解析資料的一方稍微辛苦一點,它們可能需要逐個欄位解析資料,而無法像先前一樣把整個結構複製過來。 因為在不定長欄位資料解析出來以前,無法知道下一個欄位資料的起始位置(如果還有下一個欄位的資料的話)。 然而,這種帶有變長欄位的格式,我仍將之歸類為固定欄位格式,因為他們的許多特性相似,特別是缺點和限制。

固定欄位格式的限制

固定欄位格式很簡單也很容易使用,但卻也存在最致命的缺陷,那就是難以應付未來的變化! 以上面所舉的範例,假設第二個含有變動欄位的格式是第一個格式的改良格式, 而網路上已經散佈出去的聊天程式又不可能一次全部更新(更新總有先後,甚至有些人可能打死不更新), 那麼就會產生新舊版本程式的溝通問題。 如果一個新版本程式收到了舊版程式所發出的訊息,那麼:
由上圖可以看出,資料 “He” 被當成欄位長度來解析,訊息完全被錯誤解讀,甚至解出來的訊息可能超過封包長度,產生緩衝區過讀的問題! 同理,當舊版程式收到新版程式所發出的訊息時也會遇到同樣的情況。 何況實際上一個程式在被使用的時間裡通常不會只更新一個版本, 隨者資料格式版本的變化,我們就必須面對各種版本格式的溝通轉換問題。
當然,一種簡單也常見的解決方法就是當軟體第一次發佈以後就不要再變更資料格式。 這時,制定第一個資料格式的人壓力便非常龐大,因為他必須要設想到所有未來的使用需求。 然而依據經驗,對於稍大一點的資料結構,沒有人能夠在一開始就定下能夠傳用千年的格式。 最終,嚴格奉行不可變更格式的準則往往只會在未來成為程式改良與發展的枷鎖。

固定欄位格式對增加擴展彈性的解決方案

有鑑於不變更資料格式的不可行,在未來的某個時間點可能需要加入新的需求(新的資料欄位)就成為一種普遍的需求。 為了使固定欄位格式能夠容納新的資料,傳統上主要有三種手段最常被使用。

保留欄位

這種方法很常見,就是在原有的資料格式中保留一些「足夠的」欄位空間給未來可能新增的資料, 並且這些欄位通常會被要求以某種預設的資料填滿(常見為零或空白),如下圖所示: 如下圖所示:
這樣,當未來有新的欄位需求時就往原來的保留欄位塞就對了! 以同一個範例為例,假設我們現在需要在每個聊天訊息加上訊息傳送時間:
當這個訊息被舊的程式接收時,舊的程式能解出它所認得的欄位,而忽略掉新增的資料; 當新的程式收到舊程式傳送的資料時,便會知道某些欄位的資料或無意義、或沒有資料、或為預設值。
這種預先配置保留欄位的做法中,最困難、也最神奇的地方就在於決定一個「適當大小」的保留空間。 如果保留空間預留的太少,隨著新欄位的加入,一段時間後就會面臨沒有空間能再加進新欄位資料的窘境。 那保留空間就是留愈多愈好嗎?答案是否定的! 若一開使為資料格式留下超大保留空間,則每一筆資料將要為了這些未來不曉得能不能用到十分之一的垃圾資料撐的肥大! 決定保留空間的最適當大小需要很多經驗、哲學、和美感,沒有一個標準答案。
固定欄位格式加上保留空間雖可舒緩新增欄位的需求,但卻無法刪減欄位, 事實上正是因為我們不去更動原有的欄位,才使得舊的程式能夠判讀這些資料。 而這就引發了一個問題:資料格式可能會在未來的新功能需求上攜帶很多無用的垃圾資料!
假設我們的聊天程式大受歡迎,使用者眾,大家都可以戶傳訊息, 這時有些人就會受不了訊息轟炸,希望只有部份的好友被允許傳送訊息給自己。 這時我們需要在原來的訊息格式裡加上「加入好友請求」、「加入好友回應」功能的相關資料。 更進一步,如果我傳送訊息給一個沒有加我為好友的人,我還希望在訊息被拒絕時可以收到「訊息被拒絕的通知」, 讓我不用痴痴地等對方回應。 最終,為了傳送加入好友的需求,我們可能需要傳送一方的暱稱、 為了回應加入好友的要求,我們可能需要一個接受或拒絕好友的旗標、 為了傳送訊息被拒絕的通知,我們可能需要訊息回應碼、和錯誤原因, 最後,我們的訊息格式會變成下面這樣:
就這樣,雖然暫時解決了迫切的需求,但我們的資料格式愈來愈複雜,處理起來愈來愈消耗精力。 並且你會發現當我們在傳送其中一種訊息的時候,其它的欄位根本只是佔空間而已。 當傳送一般聊天訊息時只用到 Sender、Message、Time 等 3 個欄位, 而回應時只用到 Sender、Time、Fail Flag、Reason; 要求加好友時只需要 Sender、Time、Name, 而回應時只需要 Sender、Time、Result。
我相信如果能夠重新設計一個可以用來滿足這些命令的資料需求的話,一定可以設計出更簡潔典雅的格式, 但因為大量的程式已經被散佈,使得這個方法不可行。 事實上依據經驗,非常多(我沒有做全面的統計,不能給出準確的數字) 的程式會在被使用一段時間以後需要加入原本所沒有設想到的工作種類, 並且這件事情經過一段不長不短的時間就會重複一次。

重用資料欄位

有鑑於許多新增的功能往往用不到舊功能所使用的資料欄位, 於是把這些欄位拿來在新的功能上重複利用就成為一種節省空間的方法, 以上面的功能增加範例來說,若不是只增加新欄位,而一部份採用欄位回收概念來設計的話, 資料格式可能會長成像下面這樣:
這樣,一來節省了許多可供未來使用的保貴保留空間; 二來格式解析器不需要做太大的變更,因為大部分的欄位格式仍是一樣的,表面上你只要把解出來的資料另做它用就好。 只不過我們的格式文件可能需要寫上更多的說明,比如說:
  1. 當 message type 欄位為零時表示這是一個普通的聊天訊息;
  2. 當 message type 為 1 時表示對方請求加入好友,此時的 message 欄位資料實際上是對方暱稱;
  3. 當 message type 為 3 時表示拒絕訊息發送, 此時的 time 欄位實際上不是時間而是錯誤碼、而 message 為錯誤訊息… 等等。
這種重用舊欄位的方法也有一些限制,你往往不能為每個新增的欄位找到舊的可用欄位對應,有時仍免不了需要往保留區塞資料。 除此之外它還有一些強烈的副作用,隨著程式的發展,格式資料的解析規則會變得愈來愈複雜。 並且它會迷惑你的程式開發人員,使這種格式成為蟲子的溫床,特別是在那些有一定複雜度、一定年歲的資料格式上。 以程式設計的觀點來看,這其實就是犯了變數名稱誤導的錯誤!

檢查格式版本

除了上面兩種最常見的資料擴充設計之外,還有第三種比較少見的手段,就是在資料格式裡加上記錄資料格式版本的資訊。
這樣,每一個版的資料格式都可以隨心所欲的發揮,它只要求需要俱備相同格式的資料標頭而已。 當程式收到訊息時,會先從標頭中檢查資料所使用的格式版本,若這個版本與程式所知到的版本不同,則它可以:
  • 直接拒絕不認識的(不論新舊)資料版本。
    這種做法最簡單了,但也很容易被使用者抱怨,通常只有在大版本更新的時候才會這樣對舊的格式直接不認帳。
  • 若發現資料版本比較舊,則將該版本的資料轉換為程式現行的格式再處理。
    這種做法對舊版程式的相容性會比較高,但對程式人員的額外負擔會很大, 程式人員需要小心處理每一個版本的轉換工作。 並且隨著版本的更新,不同版本間的大量的轉換工作還可能會消耗計算效能。

TLV 資料格式

在重新溫習傳統的固定欄位資料格式後,現在就來看看一種新的想法如何能夠更好的解決資料版本變更的問題。
如果說一個資料封包是由許多的資料欄位所構成的話,對於資料相容性的最大問題就是要正確的解析出所需要的資料欄位。 傳統固定欄位格式依賴資料欄位的絕對位置來識別資料,所以已定義的資料欄位絕不可做更動; 變動長度的資料欄位格式依賴資料的順序來識別資料,所以已定義的資料欄位不可更換位置,也不可取消不帶, 其終究與固定欄位格式一樣依賴著資料的位置來辨別資料。
那麼,另一個想法因應而生:如果我們以可變長欄位為基礎,在每一個資料欄位加上一個用來識別欄位的標籤呢? 這樣資料欄位自己就可以告訴讀取者它是什麼樣的資料,解析者不再需要靠著沒有彈性的位置順序來辨別資料。 而這種格式就是接下來要探討的主題,即 TLV 資料格式。
TLV 就是 Type-Length-Value 的縮寫,也有些地方會寫成 Tag-Length-Value。 TLV 格式的資料的最小單位是一個 TLV 資料元素,一個 TLV 資料元素由三部份所構成, 就是資料類型識別(type)、酬載資料的長度(length)、以及被酬載的資料(value),大概像下圖這樣:
基本上,只要資料元素是以 T、L、V 所組成的格式都叫作 TLV 格式,這是一種統稱。 至於 type 和 length 的詳細格式則由具體的資料格式所定義,較有名氣的有 Simple-TLV 和 BER-TLV 等資料格式。 通常來說,type 和 length 都會是一個整數的型態,甚至可能為變動長度的整數, 以取得較佳的擴展性和較彈性的資料空間消耗。 而 value 就是原來一個欄位的資料,其格式由最終的使用者自定。

元素群組

理想上一個 TLV 資料元素酬載一個我們從前所認知的一個欄位的資料, 所以一個資料包裡原來有多少個資料欄位,以 TLV 來呈獻的話就會有多少個 TLV 元素, 我們把這樣的資料稱為 TLV 群組。
在解析 TLV 群組時,會先解析到第一個元素的標籤,即可得知這個元素是什麼東西。 再往後讀就可以知道元素酬載的資料大小,並把酬載資料讀出。 此時不論解析者認不認得酬載資料的格式,都一樣可以正常的把整個 TLV 元素定位或讀出, 然後再以同樣的步驟讀出下一個 TLV 元素,直到整個 TLV 群組被解析完畢。
因為 TLV 元素可以表達自己是什麼,因此 TLV 元素的順序便可自由調動, 解析者可以準確的判斷資料包缺少什麼欄位,因此新程式可以正確解讀舊資料,或著有些資料可以選擇性的不發送; 由於解析者可以完全忽略不認識的欄位而不影響資料讀取,因此舊程式解讀新資料便不再困難; 甚至只是過手的中間資料處理器,也可以正確處理並轉拋資料,而不用認識所有的欄位資料。

資料標籤

由於 TLV 元素是由資料標籤來識別資料,因此在制定以 TLV 為基礎的資料格式時, 便需要為每一個資料欄位定義唯一的資料標籤,並維護之。 因此這些定義通常會成為一種資料標籤對應表,以前述的聊天程式為例則如:
TagFormatDescription
10132-bits int., B.E.Sender ID
10216-bits int., B.E.Message type
103stringChat message
10432-bits int., B.E.message send time
105stringSender name
10616-bits int., B.E.Response code
107stringResponse message
而此範例中的各種網路命令可能就會變成像這樣:
CommandMessage typeMandatory fieldsOptional fields
Command response1101, 102, 106107
Send chat message2101, 102, 103, 104105
Request firend add3101, 102, 104, 105

資料標籤的定義與管理

雖然許多的特性都章顯 TLV 格式無比強大的擴展彈性,但不代表在我們可以無壓力的隨意定義以 TLV 為基礎的格式, 並且不負責任的說「反正以後可以再改」。 TLV 格式的彈性仍有其限制,最明顯的就是「每一個資料欄位或種類都需要一個唯一的標籤」。 一個標籤被定義並發佈後就固定下來了,一直到世界末日都不能再變更,除非你願意捨棄前後兼容的特性。 因此,賦與每一個新增的資料類型一個適當的標籤就成為一項不可輕忽的工作。 一般來說,定義一個新的資料標籤所需注意之事情,依重要性排序如下:
  1. 標籤號碼的唯一性
    新的標籤號碼不能與過往已定義的任何號碼重複,因此標籤號不能由各個開發人員隨意自訂, 而需由單一的機構、部門、或負責人統一為之,並送交適合的資料庫做管理追蹤。
  2. 勿一種類多號碼
    除了不同的資料種類不可同號外,也應盡可能避免同一種資料類型被定義多個號碼的情況。 若這種狀況發生,浪費號碼空間事小,因為一般的號碼空間都很足夠;但造成後續開發者之疑惑或誤用則事大。 一種類多號碼的情況易發生於老專案新修改、或新舊開發人員交替的時候, 在新需求想要定義新類型,確未查清從前已有相同作用或極其類似的標籤定義時,一類多號就發生了! 要避免此種現象,就必須落實資料標籤的追蹤與管理機制,資料庫不是只用來查詢號碼不重複就沒事了!
  3. 標籤號碼所屬的區間
    這個限制只有在標籤為變動長度時才有意義。 在使用變動長度資料標籤的 TLV 格式中,不同的標籤號碼最終所需的資料空間可能不同, 新的資料標籤座落於何號碼範圍會影響該 TLV 元素所需佔用的資料空間大小。 一般通常佔用空間愈少的標籤號碼範圍愈有限,如此,妥善思考新標籤的號碼範圍分配就成為不能輕視的工作。
  4. 標籤號碼的順序
    有些人「喜歡」類型相近的標籤定義在一段連續的號碼區上、甚至要以某種順序排列, 這時就會需要多花功夫在號碼區間和保留範圍的安排上。

TLV 嵌套

TLV 資料的 type、length 都是在表示其酬載資料的型態、大小等屬性, 至於其酬載的資料本身(value)則是完全留白,由最終使用者自行定義處理。 既然一個 TLV 的酬載資料可以是任意型態,那麼當然也可以是其它的 TLV 群組, 也就是一個 TLV 元素本身可為 TLV 群組的容器,形成一種嵌套關係,示意如下:
TLV 的嵌套最終會讓資料元素形成一個樹狀結構,就好像平常常見的檔案系統一樣,這帶來了很多好處。 舉例說明,假設有一資料格式在不使用嵌套的情況下可能需要定義成這樣:
    |- Tag:100, 產品編號
    |- Tag:101, 製造機臺名稱
    |- Tag:102, 製造機臺編號
    |- Tag:103, 製造時間
    |- Tag:104, 檢驗者姓名
    |- Tag:105, 檢驗者編號
    |- Tag:106, 檢驗時間
    |- Tag:107, 出貨廠商名稱
    |- Tag:108, 出貨廠商編號
    `- Tag:109, 出貨時間
但如果使用了嵌套,則可能變成:
    - Tag:200, 產品資料
        |- Tag:100, 編號
        |- Tag:201, 機臺
        |   |- Tag:100, 編號
        |   |- Tag:101, 名稱
        |   `- Tag:102, 時間
        |- Tag:202, 檢驗
        |   |- Tag:100, 編號
        |   |- Tag:101, 名稱
        |   `- Tag:102, 時間
        `- Tag:203, 出貨廠商
            |- Tag:100, 編號
            |- Tag:101, 名稱
            `- Tag:102, 時間
總而言之,嵌套 TLV 的好處有:
  • 對於一個較大的資料包而言,成百上千的資料欄位可以不用擠在同一個群組下,而可以分門別類歸納至各自的子群組, 使得每一個資料層都是單純精簡的,有助於閱讀理解。
  • 資料的編碼解碼工作可以更容易且適當的分派給子程序,比較不容易出現一個龐大複雜的編碼或解碼程序。
  • 可以減少過於瑣碎的資料標籤定義需求。 由於資料經過了妥善的分配包裝,許多性質相同的資料型態可以使用一樣的標籤定義。

TLV 與 XML

到這裡,有些讀者可能會發現 TLV 用起來和 XML 十分相似,而事實上正是如此。 現存的網際網路資料交換格式裡,有不少使用了基於 XML (或 JSON 等類)的資料格式; 並且 TLV 格式做得到的 XML 也都做得到,甚至擁有更多對於節點屬性的支援。 那麼比起 XML,TLV 有什麼優勢呢?簡單來說就是低複雜性和高效能:
  • XML 是以文字為基礎的資料格式; 而 TLV 是以位元組資料為基礎的格式,有先天上的性能和資料大小優勢。
  • XML 格式編碼、解碼邏輯複雜,一般都使用第三方程式庫處理; 而 TLV 簡單純粹,自己實做編解碼機制很容易,且做出的編解器一般都超輕量。
因此比起 XML (或其他類似的格式),TLV 更適合講究效能的系統、或是嵌入式裝置的應用。

TLV 元素屬性的識別

此外,TLV 嵌套還有一個常見的議題:你怎麼知道一個 TLV 元素所酬載的資料是最終的用戶資料、還是更多的 TLV 元素? 以資料產生者和終端使用者來說,這不成問題,因為它們一定認得自己所需要的資料; 但對於通用型的 TLV 編解器、除錯用的資料窺探器等等應用上則會造成很大的困擾。 為了解析子元素而要在這些東西上實做所有已定義的標籤編解碼機制,需要消耗大量的開發資源、也不切實際; 而若直接給使用者看長長一串的十六進位碼則更失去了原有的意義。
對於辨識 TLV 元素屬性的問題,可以從資料標籤制定規則下手。 大部分實用的 TLV 格式都會要求資料標籤要符合某種規則,以方便通用編解器可以在分析資料標籤時就能判斷該元素是 TLV 容器還是終端資料; 甚至有些 TLV 格式還能區分資料元素更詳細的資料型態,是字串、整數、浮點數、還是時間…等等。 當然,這些機制都是選擇性的要求,如果有使用者懶惰的將所有標籤都註冊為 customised,那麼這也是一種選擇…

分析、比較、與總結

對於 TLV 的介紹說明以大致完成,雖然前面說了一大堆 TLV 的好處,但並非想把 TLV 捧上天。 各種格式都有各自的特色和擅長,獨尊其中任何一種都不是智慧的表現。 接下來我們就以分析前面所提過的三種資料格式(固定欄位、TLV、及 XML)來做為結束。 三種格式比較明顯的優缺點比較如下:
  • 固定欄位格式
    • 優點
      • 單純,編解碼機制極易實現。
      • 快速,因為資料排列與在記憶體中的呈獻可能相同或近似,因此處理速度極快。
    • 缺點
      • 在兼容的要求下擴展性低。
      • 在兼容的要求下調整彈性極低。
      • 在兼容的要求下,經過多次擴展後容易產生垃圾欄位或模糊欄位。
    • 推薦使用時機
      • 程式內部的資料交換。
      • 程式為了記錄某些狀態,只供自己使用、沒有交換需求、 並且在程式版本更新時會一併重設的檔案。
      • 某些極為單純、或極講究效率、並且可能萬年不變的資料格式,比如說 IP 封包標頭。
  • TLV 格式
    • 優點
      • 擴展性極高。
      • 調整彈性極高。
      • 沒有垃圾資料欄位。
      • 相較於 XML 格式,編解碼機制簡單易實現。
      • 相較於 XML 格式,資料編解速度快。
      • 相較於 XML 格式,資料佔用空間小。
    • 缺點
      • 相較於固定欄位格式,編解碼機制實做較費工。
      • 相較於固定欄位格式,資料編解需消耗較多的時間空間等資源。
      • 相較於 XML 格式,資料不易由人眼直接閱讀, 尤其是在沒有對照表工具的輔助下,數字型態的資料標籤不易理解。
    • 推薦使用時機
      • 大部份的資料交換需求皆推薦使用 TLV 格式,特別是在嵌入式裝置上。
  • XML 格式
    • 優點
      • 擴展性極高。
      • 調整彈性極高。
      • 沒有垃圾資料欄位。
      • 以文字為基礎的資料格式易於由人眼直接閱讀,對理解、除錯、或學習等需求很有幫助。
    • 缺點
      • 編解碼機制複雜,不易實做。
      • 編解碼速度慢。
      • 資料佔用空間大。
    • 推薦使用時機
      • 在運算資源豐富的環境上,對於要求人眼可以不透過解析工具而能直接閱讀資料的狀況下,推薦使用。

站樁氣功

感恩師佛

感恩諸佛菩薩護法
-------------------------
不知何故

最近身體很虛弱

下盤很虛

以前總是生龍活虎的神采飛揚

可是

最近腫的不像話

神氣都不見了

決定要好好鍛鍊自己的下盤

偶然看見 "站樁"

好奇心使然

查了一下

果然是個好東西

所謂

萬丈高樓平地起

練內功首要站樁

就像是密教外法一樣

四加行 > 金剛心菩薩法 > 上師相應法 > 本尊法

之後

才開始二灌之法...

地基不穩如何制空

身體虛弱

雙腳是關鍵

氣從湧泉來

沉入下丹田

站樁練下盤固守

昨日

練了站樁15分鐘

汗如雨下

我就每天練

不相信下盤練不穩固

老天爺賜給我力量吧

阿彌陀佛















魯班尺標字說明

感恩師佛

感恩諸佛菩薩
-------------------

魯班尺標字說明:

1、財:吉,指錢財、才能。
A、財德:指在財、德善、功德方面有表現。
B、寶庫:比喻可得或儲藏珍貴物品。
C、六合:合和美滿。六合爲天地四方。
D、迎福:迎接福。福爲幸福、利益。

2、病:代表凶。指傷災病患 及不利等。
A、退財:損財、破財之意。
B、公事:多指因公家的事如貪污受賄及案件官司等。
C、牢執:指牢獄之災。
D、孤寡:指有孤獨寡居的行爲。

3、離:代表凶,指六親離散分開。
A、長庫:古有監獄之說。
B、劫財:破耗及耗損財。
C、官鬼:指有官煞引起之事。
D、失脫:物品失落、人離散之意。

4、義:代表吉。指符合正義及道德規範,或有募捐行善等行爲。
A、添丁:古時生男孩叫添丁。
B、益利:增加了財資利祿。
C、貴子:日後能顯貴的子嗣。
D、大吉:吉祥吉利。

5、官:代表吉,指有官運。
A、順科:順利通過考試而獲中。
B、橫財:意外之財。
C、進益:收益進益。
D、富貴:有財有勢。

6、劫:代表凶,意指遭搶奪、脅迫。
A、死別:即永別。
B、退口:指有孝服之事。
C、離鄉:背井離鄉。
D、財失:財物損失或丟失。

7、害:代表凶,禍患之意。
A、災至:災殃禍患到。
B、死絕:死得乾乾淨淨。
C、病臨:疾病來臨。
D、口舌:爭執爭吵。

8、本:代表吉,事物的本位或本體。
A、財至:即財到。
B、登科:考試被錄取。
C、進寶:招財進寶。
D、興旺:興盛旺盛。

(丁蘭尺)陰宅
丁蘭尺爲時下風水師必備之工具。主要用於建造墳墓或奉置祖先牌位時,據以測量,並定吉凶。尺長39釐米,分十格,每一格又分四小格;其十格,各印有代表吉凶之文字,分別是
丁:福星 及第 財旺 登科
害:口舌 病臨 死絕 災至
旺:天德 喜事 進寶 納福
苦:失脫 官鬼 劫財 無嗣
義:大吉 財旺 益利 天庫
官:富貴 進寶 橫財 順科
死:離鄉 死別 退丁 失財
興:登科 貴子 添丁 興旺
失:孤寡 牢執 公事 退財
財:迎福 六合 進寶 財德。

虹光大成就-密教灌頂(一)