2013年1月31日 星期四

炎熱的花蓮

睽違二十五年後,再度來到花蓮,一下火車就感受到驕陽的熱度,趕緊把夾克塞回行李箱。
我是在1987年隨防炮部隊移防,駐防原防炮學校,其實是接受"整"訓啦, 呵呵,當過兵的都知道那是怎麼一回事啦。當年移防剛好輪到我值星官,要顧好槍炮武器,又要指揮部隊,擔心兵員安全,真是累垮我啦 ... 呵呵。
對花蓮印象早已模糊,只記得放假時常去市區的萬歲書坊買書,阿兵哥則常遊說我跟他們去看電影(限),呵呵。

花蓮之旅

早上05:30起床,搭07:10自強號到花蓮兆豐農場玩,呵呵,小狐狸們盼望好久囉。
每次出去玩前一晚都說要早一點睡,但通常是弄到很晚才睡,並不是太興奮了,而是搞相機電池,清記憶卡,整理麗麗扣扣的旅行用品,... 要不然就是躺在床上,嘿,備用眼鏡忘了帶,又爬起來 ... 挖咧。

2013年1月30日 星期三

面談

今天上司逐一約見面談 (打考績啦), 幹部優先. 我昨天就已將資料回傳上司, 因此下午 14:00 第一個進去, 一看我進來就說, 我就知道是你. 呵呵, 我該不會是第一個回傳面談資料的吧. 費時 30 分鐘, 氣氛 OK. 隨後的人越來越快, 有的三分鐘, 有的五分鐘, 可見凡事不要跑第一. 分數會影響獎金一些些, 說不在意有點矯情, 但我不是把這擺第一位, 我比較關心專案, 程式寫不出來的問題比較頭大, 呵呵. 完美地搞定一個系統最開心!

2013年1月29日 星期二

台灣人不怕死

現在的台灣人怕找不到工作, 怕 22K, 怕勞保破產, 也怕利息被抽 2 趴的健保補充費. 但其實並非我們一無是處, 至少, 至少我們不怕死.
證據就是我們對核四沒啥看法, 政府如果硬要運轉, 也還好啦, 政府不是掛保證嗎? 至少台電不會以廢核的代價為藉口來調漲電價. 如果反核四成功, 也不錯, 這樣就不會提心吊膽了. 反正核四又不是蓋在我家, 核廢料也不是倒在我們家後院, 要怎樣都可以啦. 這就是不怕死精神. 有這種精神的話, 還怕什麼勞保會不會破產?
其實我就是這樣模稜兩可的人. 雖然我是傾向反核, 但是卻不太清楚反核的真正原因是什麼. 直到上個月在商業周刊看了連續幾期何飛鵬先生關於反核的專欄, 這才真正明白, 反核不是什麼環保問題, 而是要不要命的問題.
我就不申論其中原委了, 我想引述今天在 Smart 雜誌上看到郝廣才先生的 "要錢? 要命" 最後一段, 比較能傳達我的體會 : "我們可以氣死, 恨死, 幹死, 但不可以找死! 不能一錯再錯! 核四越早停工, 未來浪費的錢越少, 核災可是絕對公平,  台灣這麼小, 任何一座核電廠出事, 不管富人, 窮人, 大官, 小民, 正妹, 宅男, 正宮, 小三, ... 沒有一個人, 沒有一寸土逃得掉! 到時錢有什麼用, 問題不是錢, 是命! 是孩子的命, 親人的命, 你的命, 我的命, 全台灣人的命!"
說得痛快呀! 但官員聽得進去嗎? 台灣人有感嗎? 如果對反核四的態度能夠像對反廢死那樣堅決的話, 核四早就停工了, 也就不會拖到現在捧在手裡怕碎, 丟了又可惜那樣騎虎難下了. 每年要丟幾百億進去這個危險的無底洞, 幾百億是多少中產階級薪水所貢獻啊~~~民脂民膏喔.
政府像這樣拿人民的錢亂搞的還不只核四, 中科四期也是一樣, 已經搞不起來了, 每天還要丟幾千萬進去, 沒有一個大官有擔當願意喊停, 你說我為啥要納稅?
核四大事記 (摘錄自 Wiki) :
  1. 1996 年立法院決議廢止所有核電廠興建計畫. 行政院覆議成功繼續施行.
  2. 1999 年動工.
  3. 2000 年陳水扁當選總統, 實踐反核諾言, 由行政院長張俊雄宣布核四停建.
  4. 2001 年大法官釋憲, 核四停建決策違憲, 張俊雄與王金平簽署協議書宣佈核四復工.
  5. 2003~2012 年不斷爆發施工不良, 圖利廠商, 擅自變更設計, 以不符規格次級品濫竽充數, 承辦官員接受賄賂遭監院彈劾 ,..... 這就是政府掛保證?
  6. 2013 年經濟部長施顏祥表示核四未來追加預算必然超過三千億.

存取網頁元素的三個方法

在 DOM 物件模型中, 我們可以透過 document 物件的三個方法來取得網頁元素 :
  1. document.getElmentById("myID")
    此方法傳回 ID 屬性值為 myID 的元素物件, 由於 ID 在整份文件中必須唯一, 因此傳回的是單一物件 (因此 Element 是單數, 不是 Elements).
  2. document.getElementsByName("myNAME")
    此方法傳回 NAME 屬性質為 myNAME 的元素物件陣列, 因為 NAME 在整份文件中可以有多個, 因此傳回的是物件的集合, 可以用陣列索引來取得集合中的各元素物件. 注意, 這裡用的是 Elements 而非 Element.
  3. document.getElementsByTagName("myTAG")
    此方法傳回標籤為 myTAG 的元素物件陣列, 因為同樣的標籤在整份文件中可以有多個, 因此傳回的是物件的集合, 可以用陣列索引來取得集合中的各元素物件. 注意, 這裡用的是 Elements 而非 Element. 例如 :
    var objs=document.getElementsByTagName("a");  //取得所有超連結 a 元素陣列
    for (var i in objs) {  //拜訪元素
          alert(objs[i].href);  //顯示連結位址
          }

2013年1月28日 星期一

模仿 jQuery 的 $ 工廠函數

Javascript 框架如 jQuery, prototype 等最吸引人的就是方便好用的工廠函數, 例如在 jQuery 中, $("#myID") 便可以取得 ID 為 myID 的 jQuery 包裹物件. 如果不使用框架的話, 就要使用 document 物件的 getElementById() 方法來取得 DOM 物件, 乖乖地重複打那又臭又長的 document.getElementById("myID").
其實, 我們也可以模仿 jQuery, 製作簡單的 $ 工廠函數 :

function $(id) {return document.getElementById(id);}

只要在網頁程式中多加一行這函數, 那麼就可以節省打字時間, 減少打錯機會囉.
跳出前先儲存
<input id="save_before_quit" type="checkbox" />跳出前先儲存
...
var obj=$("save_before_quit");  //取得 checkbox 物件
if (obj.checked) {save_data();}  //如果勾選就呼叫 save_data() 函數

今天尾牙

晚上在真寶舉辦尾牙,呵呵,終於脫離二樓餐廳那個寒酸地方啦. 好多同事抽中一萬元, 6000 元等等大獎, 本人則是兩串蕉空手而回, 呵呵.
今天已經把指令產生器程式寫好囉, 明日測試一下應該就可以上線了.

測試 GFW 阻擋

今天在 Tsung's Blog 看到這篇 "查詢 Domain 有沒有被 中國 GFW 擋掉的服務", 實際測試我的部落格, 發現竟然被阻擋, 呵呵, Google 在彼邦不吃香阿.

Expected value of DNS A records: 
74.125.228.74
74.125.228.75
74.125.228.76
blogspot.l.google.com.


LocationLookup ResultStatus
Beijing74.125.128.132
blogspot-china.l.google.com.
blogspot.l.google.com.
fail
Shenzen74.125.128.132
blogspot-china.l.google.com.
blogspot.l.google.com.
fail
Inner Mongolia74.125.128.132
blogspot-china.l.google.com.
blogspot.l.google.com.
fail
Heilongjiang Province74.125.128.132
blogspot-china.l.google.com.
blogspot.l.google.com.
fail
Yunnan Province74.125.128.132
blogspot-china.l.google.com.
blogspot.l.google.com.
fail

No servers were able to reach your site. This means that your site is most likely NOT accessible from within mainland China.

2013年1月25日 星期五

拔花生

這是上周日 1/20 在鄉下老家菜園幫菁菁拍的,她中午不見人影,原來跟阿嬤去菜園拔花生,摘了整整一桶。

2013年1月24日 星期四

WSH 的使用者溝通

我用 WSH 這麼久了, 事實上只用到 WScript.Echo() 這個使用者溝通方法, 而且只是在測試抓蟲的時候才用上 (輸出內部變數之狀態), 程式寫完了就去除啦. 因為 WSH 通常被用來做一些自動化的工作, 執行所需的環境變數或預設值早已定好, 或者程式會自動決定, 不需要使用者輸入, 因此類似瀏覽器 Javascript 的 window.confirm() 與 window.prompt() 功能都沒用到. 注意喔, alert/confirm/prompt 只能用在網頁中, 不能用在 WSH 中. 雖然同樣是使用 Javascript, 但環境 (宿主) 不同, 那麼所提供的方法或物件也不同. 例如在網頁中是用 window.alert(), 但在 ASP 裡就要用 Response.Write().
今天心血來潮, 突然想到, 在 WSH 中要如何做到 window.prompt() 與 window.confirm() 呢? 查了一下 WSH 的書, 發現 WSH 沒有提供像 Echo 那樣的方法, 難道是很少用到的關係嗎? 後來在這個網頁 : "WSH 编程中的 alert/confirm/prompt" 找到解法.
prompt() 要用 Popup 來做 :
function confirm(msg) {
   var shell = new ActiveXObject("WScript.Shell");
   return shell.Popup(msg, 0, "確認是窗", 33) == 1;
   }
而 prompt 則要借用 VBscript 的 InputBox 來做 :
function prompt(msg) {
   var scriptCtrl = new ActiveXObject("ScriptControl");
   msg = escape(msg + "");
   scriptCtrl.Language = "VBScript";
   var vbsCode = 'InputBox(Unescape("' + msg + '"), "輸入視窗")';
   return scriptCtrl.Eval(vbsCode);
}