2011/12/26

資訊IT證照有沒有用?

答案是看狀況,我拿大老二來說明好了,今天你考了一張證照,分成有用的跟沒有用的,
沒有用的就像是4,5,6這種,有用的就是2。有老二本身就有加分了。
但如果你考出了一卡車的證照,組成4,5,6,7,8不過今天打出了一組順子,這樣子雜牌順子,也是有點用的。

不過今天打出了一組雜牌順子,本來你有3,4,5,6,7,你考了一張有用證照2,馬上升格為2,3,4,5,6。但是雜牌順子畢竟還是雜牌順子,如果對手有5,6,7,8,9順子還是同花順子,那勝負就很明顯了。

2011/12/25

我也來寫穿越劇 海角七億

1999年到2000年因金融海嘯時,在股市花光積蓄,還欠了一屁股卡債。
2002年三次輸入錯誤,無法登入股市網路下單帳號,因已經沒有資金而不以為意。
經過六年,到海邊大意被大浪捲走,醒來不知道在美國東岸。
拿著手機上的照片跟美國人對話。想說也好,反正回台灣也是欠卡債。
打工兩週後才知道,穿越到2000年。
有一點積蓄之後,我在美國租了間房子,也有了寬頻網路。
我試著用舊的密碼登入股市網路下單系統,可以上去,然後我把密碼改成另一組。
當然,我利用我的微薄的記憶,去操作台股期指。
2002年之後,由於密碼無法進入,所以也暫停了繼續操作台股期指。

由於沒有護照,經過了八年,我決定偷渡回台灣,
但在海上遇上船難,我被救起時,時間正是2008年墬海的隔天,
我懷疑是不是我做了一場夢?
兩週後,身體恢復,利用午休時間去申請了股市網路下單帳號,回家後打開帳號,
看到了7000000000,沒錯錢都在,原來我真的到回到2000年過。

不過這八年來,我的英文已經可以跟美國人直接交談了,
所以這個世界上,沒有甚麼不可能的事,加油。


apple iphone 4S 預約人數超過40萬人,電信3雄全台逾千個賣點同時開賣。

中華電信 (2412) 今天與電信公會簽署建築物內通信設備分級及分工合作備忘錄,共同推動大樓建築物內PBX(用戶交換機)及監控設備等的銷售、安裝及光纖與線路配置。

中華電信表示,秉持著打造數位雨林的前瞻願景,落實政府相關產業推動政策,在建設寬頻網路基礎環境作為產業發展活水沃土的同時,不忘每年有65%以上的網路設備由國內採購,與台灣產業共同成長。

為開創合作共贏模式,中華電信今天與台灣區電信工程工業同業公會(電信公會)簽署建築物內通信設備分級及分工合作備忘錄,共同推動大樓建築物內PBX(用戶交換機)及監控設備與服務的銷售、安裝及光纖與線路配置,迎接數位匯流時代。

中華電信說,與電信公會簽署合作備忘錄,主要內容包括建築物責任分界點內PBX及監控設備分工原則確認,透過清楚區塊分工,在符合客戶需求的前提下,給予有意願的會員廠商輔導訓練,並提供合格的策略廠商大樓屋內光纖佈設工程施作,擴大與會員合作範圍。

中華電信表示,備忘錄不僅提升合作效率及服務品質,滿足客戶需求,還創造更多的工作及合作機會,擴大會員參與中華電信國家電信建設,提升公會會員產業競爭力,共創三贏。


(中央社記者林沂鋒台北2011年12月22日電)iPhone4S開賣,中華電信 (2412) 預約超過20萬人,中華電信今天說,目前已消化超過1成的預約量,未來將積極推廣快速領機,希望農曆年前全數消化20萬人的預約量。

iPhone 4S上周開賣,預約人數超過40萬人,電信3雄全台逾千個賣點同時開賣。

中華電信說,iPhone 4S開賣後,以目前的通路與銷貨速度,每天賣出約4000到5000支,為避免消費者排隊浪費時間,中華電信都以電話通知消費者依序領機,銷售情況相當順利。

中華電信說,iPhone 4S開賣將滿1週,20萬支的預約量已經逐步消化,目前消化超過1成,有信心在農曆年前全數消化完畢。

中華電信表示,銷售iPhone 4S,每支手機都要有20到30分鐘的開通時間,讓銷售速度無法加快進行。對於有些消費者可以自行開通,中華電積極推廣5分鐘快速取貨,加速消化預約量。

2011/12/23

如何壓縮Hyper-V的vhd檔

我發現光光刪除Hyper-V虛擬機器中的檔案不能減少vhd檔案大小,
這也沒錯,因為光光看名稱dynamically expanding virtual hard disk,動態擴展,
並沒有動態減少,
而且考慮到Disk固有的外部破碎(external fragmentation),直接縮減vhd大小也顯然
很奇怪。
直覺就是需要先做defragmentation,然後使用工具或hyper-v的功能去壓縮她,所以我
估到了這篇,
http://blogs.technet.com/b/tonyso/archive/2008/10/09/hyper-v-how-to-shrink-a
-vhd-file.aspx

covarience與contravariance千言萬語不如一段程式碼

Covariance(共變性)與contravariance(逆變性)講了半天,有沒有霧茫茫的感覺。
看一段程式碼就明白囉,varience就是不定型別的變數,像VB就是varience,
而傳統的C/C++包含VC++等等都是variable,也就是在編譯時期就決定了資料型態,
Integer就是integer,char就是char。而varience就是在必要時期,例如run-time時才
決定了資料型態,
使用varience的language很多,例如javascript等等。
下面這是由別的地方擷取出來的C#範例。Delegate是很像function point的東東,要先
懂Delegate才能理解covarience與contravariance,
其實我就把他當成函數參考來看,很少人提到這個,所以我也不翻了,就Delegate
四個函數如下:
static object GetObject() { return null; } static void SetObject(object obj)
{ }

static string GetString() { return ""; } static void SetString(string str) {
}

static void Main()
{
// Covariance. A delegate specifies a return type as object,
// but I can assign a method that returns a string.
//英文寫得很清楚 ==> 共變性就是使用delegate時,這個delegate指定傳回一個物件
(或是說varience),但是在statement中卻指定了一個函數是傳回有型別的變數(這邊是
variable)
Func<object> del = GetString;

// Contravariance. A delegate specifies a parameter type as string,
// but I can assign a method that takes an object.
//英文寫得很清楚 ==> 逆變性就是使用delegate時,這個delegate指定傳入一個
variable (這邊是string),但是在statement中卻指定了一個函數是傳入varience(無
型別的變數)
Action<string> del2 = SetObject;

// But implicit conversion between generic delegates is not supported
until C# 4.0.
//不過在下面這個delegate(函數參考)直接的指定,在C#4.0前卻是不合法的。
Func<string> del3 = GetString;
Func<object> del4 = del3; // Compiler error here until C# 4.0.
}

在給一段msdn的程式碼就懂了...
class Mammals{}
class Dogs : Mammals{}
class Program
{
// Define the delegate.
public delegate Mammals HandlerMethod();
public static Mammals MammalsHandler()
{
return null;
}

public static Dogs DogsHandler()
{
return null;
}

static void Test()
{
HandlerMethod handlerMammals = MammalsHandler;

// Covariance enables this assignment.
HandlerMethod handlerDogs = DogsHandler;
}
}
//////////////////////////////////
//contravairence
// Event hander that accepts a parameter of the EventArgs type.
private void MultiHandler(object sender, System.EventArgs e)
{
label1.Text = System.DateTime.Now.ToString();
}

public Form1()
{
InitializeComponent();

// You can use a method that has an EventArgs parameter,
// although the event expects the KeyEventArgs parameter.
this.button1.KeyDown += this.MultiHandler;

// You can use the same method
// for an event that expects the MouseEventArgs parameter.
this.button1.MouseClick += this.MultiHandler;

}