台灣在 2007/11/02 調過一次油價, 這時候 92 無鉛每公升 30.0 元
然後一路凍到 2008/05/28 才調整, 這時候 92 無鉛每公升 33.9 元, 漲幅 13%
http://www.cpc.com.tw/big5_BD/tmtd/ListPrice/ShowHisToryPrice.asp?pno=53
2007/11/02 這天 OPEC 報價是 87.47 美金 /桶
2008/05/28 這天 OPEC 報價是 123.05 美金 /桶, 漲幅 40.7%
http://www.opec.org/home/basketDayArchives.aspx
2008年7月10日 星期四
2008年7月9日 星期三
Activision Blizzard
今天 (July 9) Activision 的股東投票結束。有 92% 股份說 yes,贊
成被 Vivendi 併購
新合併的 Activision Blizzard 公司,將由 Vivendi 持有 52% 的股份
成被 Vivendi 併購
新合併的 Activision Blizzard 公司,將由 Vivendi 持有 52% 的股份
2008年7月5日 星期六
政府護盤小常識......
政府基金 (又稱四大基金, 指的是郵儲、退撫、勞保、勞退) 跟國安基金是不一樣的東西
前者在尚未被提領使用前, 本來就應該做理財運用, 股市就是其中一個不錯的理財標的. 事實上四大基金本來就一直有一定比例在股市裡, 平常也常進進出出. 據說目前四大基金還有七千億左右的額度可以投入股市 (也許現在是作為提領的預備金, 或是暫時放在定存或其他投資標的)
四大基金的操作不需要對大眾公開, 證交所也不用揭露四大基金每日的買賣超狀況
國安基金, 顧名思義就是發生足以影響國家安全的時候, 才會動用來救股市的基金. 這不是一筆常備的資金, 需要用的時候是政府拿官股抵押向銀行借錢, 或是直接挪用四大基金準備支出的部份 (偷偷印鈔票也是一種方式). 目前估計能運用的額度大約是五千億元而已. 是否動用國安基金需經委員會討論決議, 結論會對社會大眾公開
從 520 到現在, 國安基金「沒有」進場過. 昨天 (7/4) 的委員會議, 決議目前還是不會進場
前者在尚未被提領使用前, 本來就應該做理財運用, 股市就是其中一個不錯的理財標的. 事實上四大基金本來就一直有一定比例在股市裡, 平常也常進進出出. 據說目前四大基金還有七千億左右的額度可以投入股市 (也許現在是作為提領的預備金, 或是暫時放在定存或其他投資標的)
四大基金的操作不需要對大眾公開, 證交所也不用揭露四大基金每日的買賣超狀況
國安基金, 顧名思義就是發生足以影響國家安全的時候, 才會動用來救股市的基金. 這不是一筆常備的資金, 需要用的時候是政府拿官股抵押向銀行借錢, 或是直接挪用四大基金準備支出的部份 (偷偷印鈔票也是一種方式). 目前估計能運用的額度大約是五千億元而已. 是否動用國安基金需經委員會討論決議, 結論會對社會大眾公開
從 520 到現在, 國安基金「沒有」進場過. 昨天 (7/4) 的委員會議, 決議目前還是不會進場
2008年7月4日 星期五
VC.net 的 security CRT
從 VC.net 2005 開始 (包括 2008, 不包括 2003), 微軟覺得 C 語言標準函式庫 (CRT, C RunTime Library) 裡面有些函數, 主要是處理字串的部份, 實在是太不安全了
所以微軟就用他們習慣的方式, 也就是無視標準, 直接另外作了一份安全的實作. 這份新的實作, 理所當然跟標準實作不相容
以最為大家熟悉的問題函式 strcpy() 來說, 微軟提供了安全版本的 strcpy_s(), 後面附加了 '_s' 表示這是安全版本. 其他的函式也是用同樣的方式處理命名
strcpy() 的標準宣告是
char *strcpy(
char *strDestination,
const char *strSource
);
將一個字串從一個地方拷貝到另一個地方. 這個函式的問題在於, 他沒有檢查目標空間是否容納得下來源字串. 因此不小心的程設師可能會寫出有問題的程式, 更嚴重的是有心的駭客可以利用這個函式攻擊
微軟提供的安全版本宣告是
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
多了一個參數用來輸入目標空間的大小, 因此可以檢查會不會出問題. 有問題的話會從修改過的傳回值傳回錯誤, 讓程設師處理. 此時複製動作當然就不會發生
也許有經驗的程設師知道標準裡面還有另一個函式叫 strncpy()
char *strncpy(
char *strDest,
const char *strSource,
size_t count
);
這個函式其實並不算完全安全, 首先 count 是讓你輸入最多想要拷貝幾個字符, 有可能一不小心輸入大於目標空間的數量. 其次在於輸入字串太長, 需要被截掉的時候, 這個函式並不會幫你補上 '\0', 所以會讓目標變成一個沒有結尾的字串. 再來就是他處理的方式不是 "中斷並回報錯誤", 而是 "自行採取第二方案而且不告訴你". 總而言之這並不能當做一個安全的替代方案
順便一提, 微軟也提供了 strncpy_s() 的安全版函式
最後要講的才是本篇重點, 從 VC.net 2005 開始 (包括 2008, 不包括 2003), 只要你的專案用到了這類 "不安全" 的函式, 編譯的時候微軟就會很雞婆的提醒你, 而且是一再提醒你煩到不行. 這時候有幾種對應方式
(1) 裝死當做沒看到. 這方式沒什麼不好, 我猜一直以來大部分人都是這麼做的. 反正頂多就是 warning 跳一堆, output 變很長. 偶爾要找 error 變很麻煩不好找而已. 沒什麼大不了的
(2) 把這個 warning 關掉. 比前者稍微好一點點, 至少眼不見為淨. 不是在編譯選項裡面多加一項, 就是在萬用 include 檔裡面多加一行. 也不算太麻煩
(3) 花時間精力, 把這些問題函式通通修改成微軟的安全版本. 關於這點, 其實我不太贊成 (爆). 固然程式的安全很重要 (你知道連 printf 都有安全版的 printf_s, 你能想像得出 printf 有什麼潛在的安全漏洞? 而事實上就是有, 微軟工程師幫你解決了這問題, 只要你換用 printf_s), 不過很遺憾的 '_s' 的版本並不是標準. 也就是說你的程式這樣一改完 (姑且不論到底花了多久), 就變成只能在 vc.net
上面執行. 拿去 linux/ mac 通通會出問題, 甚至拿去 vc6 都不行. 所以其實不好
(4) 借用 c++ 神奇的模版重載 (template overload) 來處理問題. 也是多開一個選項 (#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1). 讓模版來推算新增的參數需要填什麼, 也因此程式碼不需要作修改. 看起來這是非常完美的方案, 又安全又能優雅的解決問題. 不過可惜的是模版推導還是有其極限, 還是有部分情況無法套用, 此時還是只能 1,2,3 選一種來解決. 此外如果你是開發純 C 專案, 當然也沒辦法用這個
所以微軟就用他們習慣的方式, 也就是無視標準, 直接另外作了一份安全的實作. 這份新的實作, 理所當然跟標準實作不相容
以最為大家熟悉的問題函式 strcpy() 來說, 微軟提供了安全版本的 strcpy_s(), 後面附加了 '_s' 表示這是安全版本. 其他的函式也是用同樣的方式處理命名
strcpy() 的標準宣告是
char *strcpy(
char *strDestination,
const char *strSource
);
將一個字串從一個地方拷貝到另一個地方. 這個函式的問題在於, 他沒有檢查目標空間是否容納得下來源字串. 因此不小心的程設師可能會寫出有問題的程式, 更嚴重的是有心的駭客可以利用這個函式攻擊
微軟提供的安全版本宣告是
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
多了一個參數用來輸入目標空間的大小, 因此可以檢查會不會出問題. 有問題的話會從修改過的傳回值傳回錯誤, 讓程設師處理. 此時複製動作當然就不會發生
也許有經驗的程設師知道標準裡面還有另一個函式叫 strncpy()
char *strncpy(
char *strDest,
const char *strSource,
size_t count
);
這個函式其實並不算完全安全, 首先 count 是讓你輸入最多想要拷貝幾個字符, 有可能一不小心輸入大於目標空間的數量. 其次在於輸入字串太長, 需要被截掉的時候, 這個函式並不會幫你補上 '\0', 所以會讓目標變成一個沒有結尾的字串. 再來就是他處理的方式不是 "中斷並回報錯誤", 而是 "自行採取第二方案而且不告訴你". 總而言之這並不能當做一個安全的替代方案
順便一提, 微軟也提供了 strncpy_s() 的安全版函式
最後要講的才是本篇重點, 從 VC.net 2005 開始 (包括 2008, 不包括 2003), 只要你的專案用到了這類 "不安全" 的函式, 編譯的時候微軟就會很雞婆的提醒你, 而且是一再提醒你煩到不行. 這時候有幾種對應方式
(1) 裝死當做沒看到. 這方式沒什麼不好, 我猜一直以來大部分人都是這麼做的. 反正頂多就是 warning 跳一堆, output 變很長. 偶爾要找 error 變很麻煩不好找而已. 沒什麼大不了的
(2) 把這個 warning 關掉. 比前者稍微好一點點, 至少眼不見為淨. 不是在編譯選項裡面多加一項, 就是在萬用 include 檔裡面多加一行. 也不算太麻煩
(3) 花時間精力, 把這些問題函式通通修改成微軟的安全版本. 關於這點, 其實我不太贊成 (爆). 固然程式的安全很重要 (你知道連 printf 都有安全版的 printf_s, 你能想像得出 printf 有什麼潛在的安全漏洞? 而事實上就是有, 微軟工程師幫你解決了這問題, 只要你換用 printf_s), 不過很遺憾的 '_s' 的版本並不是標準. 也就是說你的程式這樣一改完 (姑且不論到底花了多久), 就變成只能在 vc.net
上面執行. 拿去 linux/ mac 通通會出問題, 甚至拿去 vc6 都不行. 所以其實不好
(4) 借用 c++ 神奇的模版重載 (template overload) 來處理問題. 也是多開一個選項 (#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1). 讓模版來推算新增的參數需要填什麼, 也因此程式碼不需要作修改. 看起來這是非常完美的方案, 又安全又能優雅的解決問題. 不過可惜的是模版推導還是有其極限, 還是有部分情況無法套用, 此時還是只能 1,2,3 選一種來解決. 此外如果你是開發純 C 專案, 當然也沒辦法用這個
訂閱:
文章 (Atom)