0%

Strategy Pattern 定義一系列的演算法,ㄧ個個封裝起來,根據使用要求不同而採用不同的演算法。最基本且直觀的方式就是採用程式語言本身提供的多型來完成。一個簡單的範例就是假設有一個壓縮軟體,其提供各種不同的壓縮演算法,在這個範例中,壓縮程式本身只會有一個對應的壓縮函式呼叫,我們將不同的演算法都採取不同的實現,這樣可以避免在壓縮的函式中,要大量的透過 if/else 的方式來判斷要怎麼執行

Read more »

本文基於 SDN Controller Floodlight 的原始碼進行了一次簡單的分析,藉由分析這些原始碼更可以瞭解每個開放出來的 Restful API 該怎麼使用。相對於文件的更新速度,程式碼本身的迭代速度更為敏捷,因此常常會發生文件跟不上實際運行功能的案例。藉由學習閱讀原始碼,我們可以更快也更清楚的掌握當前這些開源軟體的發展狀態,甚至也能夠貢獻社群幫忙補齊文件。

Read more »

Adapter Pattern這個模式是用來讓兩個已經存在但是不相容的介面能夠相容的一種方式。如果資源允許且有辦法,通常都可以直接修改這些已經存在的介面原始碼,擴充讓他能夠支援全新的功能,然而在部分的情況下,其實舊有的介面並不能這樣重新修改。因此這時候可以採用 Adapter Pattern 的方式重新打造一個接口,上承新接口,下承舊接口,藉由這個方式讓舊有的城市不用修改也能夠正常運作。

Read more »

本文來介紹 Facade Pateern, Facade Pattern這個模式是用來為一個已經存在的介面定義一個新的介面,這個新介面可能會擁有下列特性。1. 更高層次的抽象化 2.更容易使用. 3. 功能是本來系統的子集合。透過簡單的範例跟大家介紹 Facade Pattern 的使用情境以及如何使用

Read more »

這篇文章用來介紹在 Fllodlight 中是如何去完成下列事情, 1)不使用 Spanning Tree Protocol 的方式也能夠正確的在有迴圈的網路拓樸中來傳輸封包,2) 針對任意兩個點對點的網路節點,能夠找到一條最短的路徑用來傳輸封。 這些事情在該控制器中,其實是透過計算一個 Tree 的方式來完成所謂的 Broadcast Tree, 藉此避免廣播風暴的問題,同時透過 Djikstra 的演算法來在拓樸中找到一個最短路徑來傳輸封包。

Read more »

之前機器因為ZFS空間滿了,因為平常有再作snapshot的緣故,導致東西都刪除不了
因為刪除的時候都會有一些metadata的寫入,導致整個zfs動彈不得,這時候就花了很多時間再研就怎麼處理
這邊稍微記錄一下ZFS相關得操作。
ZPOOL的來源可以是device也可以是files,這邊就用兩個檔案當作來源。

Read more »