Go 冒泡排序

冒泡排序算法是一種比較排序算法,它通過不斷地比較相邻元素的大小,將相對大的元素向右移動,相對小的元素向左移動,就像氣泡在水中一樣。

以下是在Golang中實現冒泡排序的代碼:

package main

import "fmt"

func bubbleSort(arr []int) {
    n := len(arr)
    for i := 0; i < n-1; i++ {
        for j := 0; j < n-i-1; j++ {
            if arr[j] > arr[j+1] {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
}

func main() {
    arr := []int{9, 8, 7, 6, 5, 4, 3, 2, 1}
    bubbleSort(arr)
    fmt.Println(arr)
}

在上述代碼中,bubbleSort函數接收一個整數切片作為參數。函數使用兩重循環來對整數切片進行排序。外層循環控制比較的次數,內層循環實現每一步的比較和交換。在內層循環中,我們比較相邻的元素,如果前一個元素大於後一個元素,就將它們交換位置。通過多輪的比較和交換,最終得到一個有序的整數切片。

Python 工廠模式

在 Python 中,可以使用工廠函數或工廠類來實現工廠模式。工廠函數是一個接受一組參數並返回一個對象的函數,而工廠類是一個包含了一個或多個抽象方法或抽象屬性的抽象基類。通過使用工廠模式,可以將對象的創建過程封裝起來,以便在需要時可以方便地更改對象的創建方式。

以下是一個 Python 工廠模式的範例:

class CarFactory:
    def create_car(self, car_type):
        if car_type == 'sport':
            return SportCar()
        elif car_type == 'suv':
            return SUV()
        else:
            raise ValueError('Invalid car type')

class SportCar:
    def __init__(self):
        self.color = 'red'
        self.engine = 'v8'

class SUV:
    def __init__(self):
        self.color = 'white'
        self.engine = 'v6'

在上面的代碼中,CarFactory是一個工廠類,它提供了一個名為create_car的 方法,該方法根據傳入的car_type參數返回一個相應的汽車對象。在這里,我們定義了兩個子類別:SportCar和SUV,它們分別表示運動型汽車和SUV型汽車。

在主程序中,我們可以這樣使用上述工廠類:

factory = CarFactory()
sport_car = factory.create_car('sport')
print(sport_car.color, sport_car.engine) # 輸出:red v8

suv = factory.create_car('suv')
print(suv.color, suv.engine) # 輸出:white v6

在這里,我們首先創建了一個CarFactory的實例,然後使用它來創建一個運動型汽車和一個SUV型汽車的對象。

虛擬主機的備份

環顧國內許多主機商以及一般客戶,對於備份都不是很重視,所以才會有前一陣子戰x公司的客戶在網路上發言說他們的主機突然掛掉,並且主機商竟然沒有備份的事實。
請各位想想看,您花了幾萬甚至幾十萬做的網站,卻放在一個沒有備份的主機上,而您自己也不注重備份,然後突然有一天人家跟你說:抱歉,您的網站我們找不回來了,就算他賠你一年的租金或是免費送你半年使用,能彌補您的損失嗎?
所以,重點來了,您應該要怎樣呢?

  1. 慎選主機服務商,大不一定就好,有名氣不代表服務水準,請務必確認他有備份,哪怕只有一份備份也好。
  2. 您自己也該備份,不要只期望別人幫你備份,您自己偶而也應該要備份一下。如果您的主機是使用cpanel 管理介面的,cpanel都有提供您自己可以手動備份的工具,您只要點選一下就可以下載,至少一個月記得做一次就好!

我們的主機不只有一份的備份,並且我們也鼓勵客戶多做備份,現在硬碟都很大,我想你應該有空間可以放這些備份才對。
另外,我們也將提供客戶可以自行恢復備份,以及更多的備份功能,讓您的網站不管發生什麼大條代誌都不擔心。

虛擬化的八大效益

企業將主機設備虛擬化後有哪些效益呢? 我們認為有以下八大效益:

  1. 提昇設備使用率
  2. 降低硬體採購成本
  3. 舊機器也可繼續使用
  4. 提高系統的可用性(HA)
  5. 彈性的模擬測試環境:隨時可以虛擬出環境來做測試,對軟體業者最需要。
  6. 簡化實體設備管理:虛擬化之後,很多的管理可以自動化,或是數位化,遠端化。
  7. 節能環保(電力,空間,空調):少了添置一堆的設備自然不需要這麼多電力,少了一堆的cpu當然空調也可以節省
  8. 彈性調配系統資源:可以隨時根據個別虛擬機的需要做出調整

VPS用戶該有的知識

根據我們的了解以美國,台灣與中國的用戶做比較,一般來說,中國的vps用戶最具備使用vps的基本知識,再來是美國,最差則是台灣,有許多的台灣用戶其實不太清楚vps是什麼,只大略的以為vps是虛擬主機的升級版,租了VPS之後以為你該幫他安裝好所有的東西,他只要將網站內容上傳即可!
閱讀全文 VPS用戶該有的知識

雲端主機租用,小心隱藏性費用

有一些廠商標榜雲端主機,一天多少錢,規格看似很便宜,但是實際一算,貴的驚人!  Why ?
因為主機最重要的就是聯外的頻寬跟流量,結果這些業者的套餐卻不包括流量跟頻寬,說的好聽是使用多少算多少,但這就是一個隱藏的費用,要等你實際在該平台上開發應用好之後,實際使用的時候才會知道到底還要付多少款項。
有的廠商的報價是類似主機擺放一樣,你要多大的頻寬,就按照 1M 兩三千來算,所以,如果你要 5M(現在誰不至少要個 5M的啊?) 那一個月就要超過一萬塊錢了!
這樣的雲端主機,其實很不利於一般公司企業租用,因為你承辦的人員根本不知道這個主機租用的費用到底該抓多少,這個月有可能要一萬,下個月突然變成三萬怎麼辦?

虛擬機技術 OpenVZ VS. Xen 比較差異分析

目前兩大主要的應用在商轉接段的虛擬機技術(不是提供給一般個人最為桌面系統的虛擬機)主要有兩個,一個是 OpenVZ, 另一個就是 Xen , 這兩個技術也是幾乎所有 Hosting service 所提供的兩種規格。
OpenVZ 的好處是他就像是一個貨櫃箱(集裝箱),可以直接從甲伺服器調出,放置到乙伺服器上,馬上就可以正常運作,意思就是,當甲伺服器有狀況時,可以快速的將原本在該伺服器上的各個 VPS 快速佈署到一個新的或是正在服役的其他伺服器上去,甚至可以做到 On-line migration 以便將 down time 減低到最小!
但是 OpenVZ 也有眾多限制,譬如,他不能夠在其上安裝windows作業系統,畢竟,還是有很多人對 Linux 是陌生的,這一點對於需要使用到 Windows 2003 or 2008 Server 的朋友來說,就完全無法選擇了。
並且, OpenVZ 無法完全的將vps跟vps之間做到完全不受干擾,一個負載過重的vps 還是會干擾到主系統從而影響到其他的vps的。
Xen 的架構又分為兩種,其中 Xen HVM 就可以在一個 Linux 的伺服器上來安裝 Windows 作業系統,因為 Xen 的作法是真的完全的讓各個虛擬機之間做到獨立,切的乾乾淨淨的,每一個 VPS 就跟真的專屬主機一樣的獨立,好處也就是彼此之間戶不干擾,給你多少資源就是多少資源,你無法超用別人也用不到你這一塊。

捨專屬主機不租改用vps,Why?

由於虛擬專屬主機所具備的特性,使得一些使用者改採vps來代替 Dedicated Server。
當您好不容易config好一部主機,在上面做了這樣那樣的設定,系統漸漸符合您的要求,並穩定的運行著,但是好景不長,隔一段時間之後,因為硬體或其他問題,您需要更換到另一部主機時,煩惱又來了,當初做了哪些客製化的設定?所有的元件又要再次安裝,這樣又要花很多時間吧?有沒有可能不要重複的做這樣的事情?
VPS 虛擬專屬主機就有這樣的好處,它是一個獨立主機的形式呈現在你面前,你可以當做這是你的專屬主機來做各種設定,主機的規格也可以隨時擴充,最重要的就是,當必須要移動到另外一個軀殼時,它像是一個貨櫃一樣,提起該貨櫃,轉運到他處,放置好貨櫃,接上水電,貨櫃裡的東西繼續保持原有狀態!
所以,使用vps的好處就是可以快速轉移硬體,不必搞一堆設定,確實很方便!

VPS快速佈署,快速轉移

未來的主機租用服務,或是很多的公司的主機將採用虛擬專屬主機 VPS這是無庸置疑的,為何呢?
以往,一台主機要設置起來,我們知道需要以下的幾個流程:

  1. 準備硬體
  2. 建置作業系統
  3. 測試燒機
  4. 安裝各種套件,配置專屬IP,測試連線。
  5. 上傳程式,資料庫,網頁等。

如果要轉移到新的硬體,那麼,一樣的流程再跑一次。
如果平常狀態的話,那就慢慢的處理吧,但是如果是緊急狀況時呢? 如果你必須要在幾個小時之內,甚至更短的時間內完成這樣的工作,可能嗎? 尤其是網頁程式資料庫等這些東西,如果新的伺服器有不同的版本,轉移之後的網站我看一般是不能確保馬上可以運作的。
如果這時你採用的是虛擬專屬主機,或是說雖然你是使用獨立的一台實體主機,但是你在一開始就先建立好以vps的架構來運作的話,好處會是怎樣?

  1. 只要新的主機有支援同樣的虛擬機技術或是vps管理軟體,那麼可以整個 VPS帶過去就好!
  2. 在新主機啟動好虛擬機,舊的主機備份好,轉移檔案過去新伺服器,設定新的虛擬專屬主機使用此備份來還原,好了,你的工作完成了,所有東西都跟以前一樣,你要改動的只是 IP 位置。

總之,建議有一定的重要程度或是動態運作的電子商務網站使用vps虛擬專屬主機來管理與運作,由於他是虛擬化的一個伺服器,你會有很多靈活的運用可以實現。唯一你要注意的只是,租用規格稍微好一點的虛擬實體主機。

Windows Azure 雲端運算

微軟明年1月1日推雲端運算系統Windows Azure。
中華電信與微軟雲端運算策略聯盟雙方簽署合作備忘錄攜手數位生活新契機景。
微軟表示,將向簽約六個月以上的開發商和經銷商提供15%到30%的折扣,微軟尚未決定長期費率以及對終端用戶的收費方案。
在以量計價方面,微軟的使用收費標準是每小時運算收費12美分、每存儲1GB容量收費15美分、每1萬次存儲處理收費10美分。
自Google領頭吹響雲端運算的號角之後,雲端運算成為兩年來竄紅速度最快的IT名詞。對企業而言雲端服務的最大好處是降低了網路應用的建置門檻。
美國市調機構Yankee Group認為,不論是採用哪一種雲端運算技術,從服務特質來看,雲端服務是一種可以依使用者需求來提供服務的虛擬化資訊服務,有些業者的產品專注於1種服務,但也有業者屬於多類特質的服務。
Yankee Group依據雲端服務的性質和市場特徵,將雲端服務區分成四大類,包括提供儲存空間的雲端服務(Storage as a Services)、提供基礎架構的雲端服務(Infrastructure as a Services)、平臺即服務(Platform as a Services)和常見的軟體即服務(Software as a Services)。