Strategy Pattern 定義一系列的演算法,ㄧ個個封裝起來,根據使用要求不同而採用不同的演算法。最基本且直觀的方式就是採用程式語言本身提供的多型來完成。一個簡單的範例就是假設有一個壓縮軟體,其提供各種不同的壓縮演算法,在這個範例中,壓縮程式本身只會有一個對應的壓縮函式呼叫,我們將不同的演算法都採取不同的實現,這樣可以避免在壓縮的函式中,要大量的透過 if/else 的方式來判斷要怎麼執行
Shell Script 筆記
記錄一些之前寫 Shell Script 作業的心得與筆記
Floodlight Core RestAPI - part1
本文基於 SDN Controller Floodlight 的原始碼進行了一次簡單的分析,藉由分析這些原始碼更可以瞭解每個開放出來的 Restful API 該怎麼使用。相對於文件的更新速度,程式碼本身的迭代速度更為敏捷,因此常常會發生文件跟不上實際運行功能的案例。藉由學習閱讀原始碼,我們可以更快也更清楚的掌握當前這些開源軟體的發展狀態,甚至也能夠貢獻社群幫忙補齊文件。
Adapter Pattern
Adapter Pattern這個模式是用來讓兩個已經存在但是不相容的介面能夠相容的一種方式。如果資源允許且有辦法,通常都可以直接修改這些已經存在的介面原始碼,擴充讓他能夠支援全新的功能,然而在部分的情況下,其實舊有的介面並不能這樣重新修改。因此這時候可以採用 Adapter Pattern 的方式重新打造一個接口,上承新接口,下承舊接口,藉由這個方式讓舊有的城市不用修改也能夠正常運作。
Facade Pattern
本文來介紹 Facade Pateern, Facade Pattern這個模式是用來為一個已經存在的介面定義一個新的介面,這個新介面可能會擁有下列特性。1. 更高層次的抽象化 2.更容易使用. 3. 功能是本來系統的子集合。透過簡單的範例跟大家介紹 Facade Pattern 的使用情境以及如何使用
Floodlight Dijkstra
這篇文章用來介紹在 Fllodlight 中是如何去完成下列事情, 1)不使用 Spanning Tree Protocol 的方式也能夠正確的在有迴圈的網路拓樸中來傳輸封包,2) 針對任意兩個點對點的網路節點,能夠找到一條最短的路徑用來傳輸封。 這些事情在該控制器中,其實是透過計算一個 Tree 的方式來完成所謂的 Broadcast Tree, 藉此避免廣播風暴的問題,同時透過 Djikstra 的演算法來在拓樸中找到一個最短路徑來傳輸封包。
ZFS 筆記
之前機器因為ZFS空間滿了,因為平常有再作snapshot的緣故,導致東西都刪除不了
因為刪除的時候都會有一些metadata的寫入,導致整個zfs動彈不得,這時候就花了很多時間再研就怎麼處理
這邊稍微記錄一下ZFS相關得操作。
ZPOOL的來源可以是device也可以是files,這邊就用兩個檔案當作來源。
Install the FTP server on FreeBSD
這邊要跟大家分享的是自架 FTP Server 的一些設定與心得,以往在 Windows 時可以很快速的使用 FilwZilla 來架設 FTP Server, 然而在 FreeBSD 的系統中,我們有哪些相關的選擇可以使用? 本篇文章會採用 Pure-Ftpd 作為一個 FTP Server 並且記錄 FTP 常見的相關用法要如何透過 Pure-Ftpd 來設定
Vim & Nerdtree
最近重新整理vim的設定檔,意外的發現
http://yoursachet.com/
這個網站滿好用的,可以根據你的需求來自動打造vim設定檔,對於不想動腦去研究設定檔而言的人來說是滿好用的工具
用滑鼠輕鬆點點就可以產生堪用的VIM了!!