星期三, 五月 02, 2012

在Linux環境中讓Apache使用NTLM認證

簡單地說,就是我不想再用Windows Server開發,但是又需要NTLM/AD整合認證,所以只好DIY自力更生。

Ubuntu 12.04還是用Apache 2.2,所以就以Apache 2.2為主。

星期二, 五月 01, 2012

Ubuntu 12.04的ruby

不知為何,Ubuntu 12.04只有ruby 1.8和ruby 1.9.1,這樣很難相信它是一個最新的套件。
結果後來才發現它有ruby-rvm的套件,所以我就
sudo apt-get install ruby-rvm

升級至Ubuntu Server 12.04

這次在XenServer裡把Ubuntu Server 10.04 LTS升級到Ubuntu Server 12.04 LTS的過程很怪異,以前在Desktop用的sudo apt-get dist-upgrade無效。

搜尋後發現Server必須要用
sudo do-release-upgrade -d
有些說明檔寫do-release-upgrade是不夠的。

我在XenServer裡升級,有些無效的repository必須先手動移除,不知為何我必須移掉台灣的Ubuntu site才行。原本用ssh連線會有問題,所以直接在console作業。

升級完後再起不能,原本想說是不是XenServer不支援,沒想到不知哪裡來的靈感,把vm的boot parameter移掉就好了,就是原本的:
-- quiet console=hvc0
這次算是是有神助呀,等等得去拜乖乖大神!原來是升級用的kernel版本有問題,開進去之後再sudo apt-get install linux-image-3.2.0-24 linux-headers-3.2.0-24 ,重開前記得把boot parameter,就一切正常! (之後再 sudo apt-get remove 'linux-image-2.6.*' )

星期五, 四月 27, 2012

求出n取k組合的列表 Objective-C 版

這是本灌水系列最後一篇,到此已練功完成。
如果有其他語言需要解答,我找到這裡有各種不同的程式語言版本(缺Objective-C XD);此站看來是學生作業的好幫手呀。

星期三, 四月 25, 2012

測試Windows Server 2012 beta Hyper-V Cluster

Windows Server 8 beta在2012年2月就可以下載,我現在才有空試,主要是測試Hyper-V 3.0的強大功能。因為現在有消息指出會更名為Windows Server 2012,所以我也把標題改為Server 2012 beta。
Server Core介面很可惜沒有Cluster的選項

星期一, 四月 23, 2012

測試Hyper-V Server 2008 R2 SP1

這次測試和上回的硬體一樣,只是把Windows Server 2008 R2 SP1 Enterprise改成Hyper-V Server 2008 R2 SP1,主要是測試免費版是否有收費版本的功能

安裝時Hyper-V Server比較簡單,也不用啟動,裝好就是Server Core。然後...登入後自動會啟動 sconfig.cmd ,一樣照著選單設定遠端管理、網路設定和容錯叢集等,就可以利用具有管理介面的其他電腦遠端管理。

接著我就同樣建立一個failover cluster,在cluster上建立虛擬機器,用Hyper-V管理員同樣都很正常。

根據Weithenn的文章,Hyper-V Server幾乎有Enterprise版Server Core的所有功能,最大的差別就是不能新增角色和不具備"Application Failover"的功能。

這樣好像沒寫什麼有用的資訊...Orz

好吧,開始放炮,以下的資訊純粹是嘴炮。

Hyper-V cluster預設不會啟用叢集共用磁碟區,必須手動啟用,一點都不直覺;啟動叢集共用磁碟區後又要手動新增存放裝置,預設也不會把共用磁碟放進來。

VMWare與XenServer都有獨特的協調機制,在cluster下可以自由調度VM放在另一台電腦主機,平時可以將VM平均放於cluster內的所有電腦,好處是不只有CPU的資源分享,網路速度也很重要。這兩個產品也有iSCSI的寫入cache,所以會覺得VM在iSCSI上執行速度比Hyper-V快。

我對產品並無特別品牌喜好,但是微軟絕不是省油的燈,所以接下來要測Windows Server 8 beta的Hyper-V,敬請期待。

星期四, 四月 19, 2012

求出n取k組合的列表 JavaScript 版,同場加映 CoffeeScript版

廢話就不說了,現在的JavaScript比起十幾年前真是好寫多了,語法這幾年來也沒有大改版,所以我這兩年花點時間學了一下現代的JavaScript語法,但程度仍然低落。

星期三, 四月 18, 2012

讓 NetBeans 預設使用 UTF-8 編碼

我在這篇就提過現在NetBeans已經沒有進階選項,無法預設使用UTF-8編碼。

當時的做法是每個Project都去手動改 Tools->Options->Advanced Options->Editing->Java Sources->Default EncodingUTF-8。但這樣編譯時會錯,因此還得改Project的Properties->Build->Compiling->Additional Compiler Options加上 -encoding UTF-8

這樣實在太麻煩了,應該是改 netbeans.conf,Mac在是 /Applications/NetBeans/NetBeans 版本.app/Contents/Resources/NetBeans/etc 下,找到 netbeans_default_options 在最後加上  -J-Dfile.encoding=UTF-8 就可以了。

星期二, 四月 17, 2012

求出n取k組合的列表 Python 版

這版本寫完,我就要認真的開始寫我的作業。所以這篇草草帶過:

求出n取k組合的列表 Fortran 版

這次換個簡單一點的語言:Fortran 95
我很驚訝GFortran 4.7仍然預設是Fortran 77,所以副檔名若是.f或.for會錯, 要存成.f90或.f95才行。

星期一, 四月 16, 2012

在獅子Mac OSX Lion裝GCC

在2009年我曾經在Linux上頭編譯GCC,因為GCC的授權在4.2.1版之後由GPL v2改為GPL v3,Apple就不再更新GCC。幾年下來造成編譯器版本過舊,蘋果自己也開始打造自己的clang:基於LLVM的compiler;所以現在OS X上有clang和llvm-gcc兩個編譯器,都是LLVM compiler。

但目前來說,GCC相容性仍然是比較好,而且支援很多新的語言特性。像是Ruby的RVM目前就不支援 LLVM 編譯1.9.3之前的版本,只能用GCC。但很不幸地,目前Mac上很方便的套件工具 Homebrew 並不能直接安裝 GCC ,要用別的方式,詳見 
brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gcc.rb

星期日, 四月 15, 2012

求出n取k組合的列表 Lisp版

廢話就不多說了,這次改寫Lisp版本的求組合列表,由於太久沒寫,著實吃了不少苦頭。由於Lisp版本眾,我本來想用Emacs開發,可是我把Emacs的hotkey全忘光了,只記得c-x c-e,後來就改用GNU CLispGCL),以Homebrew安裝的2.49版為主。

星期五, 四月 13, 2012

求出n取k組合的列表 Ruby版

為增加篇幅,今天來到functional programming,也是以求出組合為例。
有了functional的能力,加上Ruby的syntax sugar,同樣功能的code變得真少,相信真正會寫Ruby的人可以寫更少。

星期四, 四月 12, 2012

測試Server 2008 R2 SP1 Hyper-V Cluster

我之前測試Hyper-V Server的內容似乎沒有記下來,這次重新測試Server 2008 R2 SP1 Hyper-V Cluster,發現趙驚人的書實在是鉅細靡遺,但還是把自己容易疏忽的地方寫下來,未來要架設時才有跡可尋,不致於重蹈覆轍。

趙驚人在研討會多次重申,Hyper-V要效能好,就要灌Server Core,胡士亮在V-Day也這麼說。所以這次我的目標是要達到企業級的虛擬化,灌Server Core,而且要做Cluster達成HA。題外話,趙驚人真不愧是留美碩士,英文發音超標準,國內很少講者有他的水準。

星期日, 四月 08, 2012

求出n取k組合的列表 C++版

同樣是求出n取k組合的列表,今天要寫C++版本。

C++可以寫得很優雅,也可以像我一樣寫得像C。(我承認,真的太多年沒寫C++ XDDD)

星期六, 四月 07, 2012

求出n取k組合的列表 Java 版

求出n取k組合的列表 CSharp版中是用CSharp寫,用Java則幾乎相同,只是Java的ArrayList可以是Container,指定型別看起來爽一點。

星期五, 四月 06, 2012

求出n取k組合的列表 CSharp版

同事要找出n中取k的所有組合列表,他想出了一個很簡單的表示法。例如說3取1會有3個,就表示為
001、010、100
這的確是再簡單不過,非常清楚也利於程式使用。他使用的方法是寫一個int, 用for迴圈,從1到2的n次方-1的數字跑一遍,再把每個數字的位元做比對。

但是問題來了,數字小時這樣沒什麼問題,但是他的樣本n超過int的長度,只好改用long,而且光是long就跑很久,最近遇到的問題還超過long〈超過64個〉。

星期五, 三月 30, 2012

再探Xen Cloud Platform

為了徹底測試Xen Cloud Platform(以下簡稱XCP)是否具備Live Migration及HA的功能,鳥毅耗費鉅資把兩台相同規格的PC裝上12GB RAM及兩張Gigabit NIC。

先灌好兩台,分別叫做xcp1與xcp2,接著利用XenCenter 6.0連上XCP,再設定網路連線到iSCSI,把Windows VM放在iSCSI Storage上。

再來得建立ServerPool,把Windows VM 從xcp1 Live Migrate到xcp2,結果非常順利,和XenServer 6沒什麼差別;由此可知確實己經實作免費版的功能。

最後測試HA,利用XenCenter點在ServerPool上會看到HA的分頁,也可以設定,但是按下確定時會有錯誤訊息,表示此功能尚待實作。

Xen Cloud Platform己經具備XenServer大部份的功能,若要做到企業級HA,則得再等一陣子了。

星期四, 二月 23, 2012

讓Windows Live Messenger 不顯示廣告

收到朋友轉寄的Email,出處不可考,內容是如何讓Windows Live Messenger 不顯示廣告。
原文用0.0.0.0的IP,這樣會delay,所以我改為127.0.0.1,再補充UAC部份

=====================

  1. 用記事本打開 C:\WINDOWS\system32\drivers\etc 目錄裡的 hosts (若是Windows Vista以上有UAC,必須以管理員身份執行記事本或其他文字編輯器)
  2. 將以下內容加到 hosts 檔最後面

    127.0.0.1 rad.msn.com
    127.0.0.1 rad.live.com
  3. 打開 MSN,在選單上選擇『工具』->『選項 』 -> 『 訊息 』 ,若看不到選單,按一下Alt就會出現。在第二段的 [對話] 項目中, 取消 『 在對話視窗中顯示展開的頁尾 』 的勾選, 再按 『 確定 』 。
這方法不用Patch軟體,升級後依然有效。