睽違二十五年後,再度來到花蓮,一下火車就感受到驕陽的熱度,趕緊把夾克塞回行李箱。
我是在1987年隨防炮部隊移防,駐防原防炮學校,其實是接受"整"訓啦, 呵呵,當過兵的都知道那是怎麼一回事啦。當年移防剛好輪到我值星官,要顧好槍炮武器,又要指揮部隊,擔心兵員安全,真是累垮我啦 ... 呵呵。
對花蓮印象早已模糊,只記得放假時常去市區的萬歲書坊買書,阿兵哥則常遊說我跟他們去看電影(限),呵呵。
2013年1月31日 星期四
2013年1月30日 星期三
2013年1月29日 星期二
台灣人不怕死
現在的台灣人怕找不到工作, 怕 22K, 怕勞保破產, 也怕利息被抽 2 趴的健保補充費. 但其實並非我們一無是處, 至少, 至少我們不怕死.
證據就是我們對核四沒啥看法, 政府如果硬要運轉, 也還好啦, 政府不是掛保證嗎? 至少台電不會以廢核的代價為藉口來調漲電價. 如果反核四成功, 也不錯, 這樣就不會提心吊膽了. 反正核四又不是蓋在我家, 核廢料也不是倒在我們家後院, 要怎樣都可以啦. 這就是不怕死精神. 有這種精神的話, 還怕什麼勞保會不會破產?
其實我就是這樣模稜兩可的人. 雖然我是傾向反核, 但是卻不太清楚反核的真正原因是什麼. 直到上個月在商業周刊看了連續幾期何飛鵬先生關於反核的專欄, 這才真正明白, 反核不是什麼環保問題, 而是要不要命的問題.
我就不申論其中原委了, 我想引述今天在 Smart 雜誌上看到郝廣才先生的 "要錢? 要命" 最後一段, 比較能傳達我的體會 : "我們可以氣死, 恨死, 幹死, 但不可以找死! 不能一錯再錯! 核四越早停工, 未來浪費的錢越少, 核災可是絕對公平, 台灣這麼小, 任何一座核電廠出事, 不管富人, 窮人, 大官, 小民, 正妹, 宅男, 正宮, 小三, ... 沒有一個人, 沒有一寸土逃得掉! 到時錢有什麼用, 問題不是錢, 是命! 是孩子的命, 親人的命, 你的命, 我的命, 全台灣人的命!"
說得痛快呀! 但官員聽得進去嗎? 台灣人有感嗎? 如果對反核四的態度能夠像對反廢死那樣堅決的話, 核四早就停工了, 也就不會拖到現在捧在手裡怕碎, 丟了又可惜那樣騎虎難下了. 每年要丟幾百億進去這個危險的無底洞, 幾百億是多少中產階級薪水所貢獻啊~~~民脂民膏喔.
政府像這樣拿人民的錢亂搞的還不只核四, 中科四期也是一樣, 已經搞不起來了, 每天還要丟幾千萬進去, 沒有一個大官有擔當願意喊停, 你說我為啥要納稅?
核四大事記 (摘錄自 Wiki) :
證據就是我們對核四沒啥看法, 政府如果硬要運轉, 也還好啦, 政府不是掛保證嗎? 至少台電不會以廢核的代價為藉口來調漲電價. 如果反核四成功, 也不錯, 這樣就不會提心吊膽了. 反正核四又不是蓋在我家, 核廢料也不是倒在我們家後院, 要怎樣都可以啦. 這就是不怕死精神. 有這種精神的話, 還怕什麼勞保會不會破產?
其實我就是這樣模稜兩可的人. 雖然我是傾向反核, 但是卻不太清楚反核的真正原因是什麼. 直到上個月在商業周刊看了連續幾期何飛鵬先生關於反核的專欄, 這才真正明白, 反核不是什麼環保問題, 而是要不要命的問題.
我就不申論其中原委了, 我想引述今天在 Smart 雜誌上看到郝廣才先生的 "要錢? 要命" 最後一段, 比較能傳達我的體會 : "我們可以氣死, 恨死, 幹死, 但不可以找死! 不能一錯再錯! 核四越早停工, 未來浪費的錢越少, 核災可是絕對公平, 台灣這麼小, 任何一座核電廠出事, 不管富人, 窮人, 大官, 小民, 正妹, 宅男, 正宮, 小三, ... 沒有一個人, 沒有一寸土逃得掉! 到時錢有什麼用, 問題不是錢, 是命! 是孩子的命, 親人的命, 你的命, 我的命, 全台灣人的命!"
說得痛快呀! 但官員聽得進去嗎? 台灣人有感嗎? 如果對反核四的態度能夠像對反廢死那樣堅決的話, 核四早就停工了, 也就不會拖到現在捧在手裡怕碎, 丟了又可惜那樣騎虎難下了. 每年要丟幾百億進去這個危險的無底洞, 幾百億是多少中產階級薪水所貢獻啊~~~民脂民膏喔.
政府像這樣拿人民的錢亂搞的還不只核四, 中科四期也是一樣, 已經搞不起來了, 每天還要丟幾千萬進去, 沒有一個大官有擔當願意喊停, 你說我為啥要納稅?
核四大事記 (摘錄自 Wiki) :
- 1996 年立法院決議廢止所有核電廠興建計畫. 行政院覆議成功繼續施行.
- 1999 年動工.
- 2000 年陳水扁當選總統, 實踐反核諾言, 由行政院長張俊雄宣布核四停建.
- 2001 年大法官釋憲, 核四停建決策違憲, 張俊雄與王金平簽署協議書宣佈核四復工.
- 2003~2012 年不斷爆發施工不良, 圖利廠商, 擅自變更設計, 以不符規格次級品濫竽充數, 承辦官員接受賄賂遭監院彈劾 ,..... 這就是政府掛保證?
- 2013 年經濟部長施顏祥表示核四未來追加預算必然超過三千億.
標籤:
評論
反應: |
存取網頁元素的三個方法
在 DOM 物件模型中, 我們可以透過 document 物件的三個方法來取得網頁元素 :
- document.getElmentById("myID")
此方法傳回 ID 屬性值為 myID 的元素物件, 由於 ID 在整份文件中必須唯一, 因此傳回的是單一物件 (因此 Element 是單數, 不是 Elements). - document.getElementsByName("myNAME")
此方法傳回 NAME 屬性質為 myNAME 的元素物件陣列, 因為 NAME 在整份文件中可以有多個, 因此傳回的是物件的集合, 可以用陣列索引來取得集合中的各元素物件. 注意, 這裡用的是 Elements 而非 Element. - document.getElementsByTagName("myTAG")
此方法傳回標籤為 myTAG 的元素物件陣列, 因為同樣的標籤在整份文件中可以有多個, 因此傳回的是物件的集合, 可以用陣列索引來取得集合中的各元素物件. 注意, 這裡用的是 Elements 而非 Element. 例如 :
var objs=document.getElementsByTagName("a"); //取得所有超連結 a 元素陣列
for (var i in objs) { //拜訪元素
alert(objs[i].href); //顯示連結位址
}
標籤:
Javascript
反應: |
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() 函數
其實, 我們也可以模仿 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() 函數
標籤:
Javascript
,
jQuery
反應: |
今天尾牙
晚上在真寶舉辦尾牙,呵呵,終於脫離二樓餐廳那個寒酸地方啦. 好多同事抽中一萬元, 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.
No servers were able to reach your site. This means that your site is most likely NOT accessible from within mainland China.
Expected value of DNS A records:
74.125.228.74
74.125.228.75
74.125.228.76
blogspot.l.google.com.
Location | Lookup Result | Status |
Beijing | 74.125.128.132 blogspot-china.l.google.com. blogspot.l.google.com. | |
Shenzen | 74.125.128.132 blogspot-china.l.google.com. blogspot.l.google.com. | |
Inner Mongolia | 74.125.128.132 blogspot-china.l.google.com. blogspot.l.google.com. | |
Heilongjiang Province | 74.125.128.132 blogspot-china.l.google.com. blogspot.l.google.com. | |
Yunnan Province | 74.125.128.132 blogspot-china.l.google.com. blogspot.l.google.com. |
No servers were able to reach your site. This means that your site is most likely NOT accessible from within mainland China.
標籤:
好站
反應: |
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);
}
今天心血來潮, 突然想到, 在 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);
}
標籤:
Javascript
,
WSH
反應: |
2013年1月23日 星期三
PHP 學習筆記 (一) 變數
最近在整理 PHP 筆記, 免得每天上下班都要帶厚厚的電腦書, 只要記在 Google, 哪裡都能查詢.
變數
變數
- 變數命名規則 :
PHP 是弱型別語言, 變數不用事先指定資料型態, 是在執行時才決定型態的, PHP 解析器會依指定之內容來設定這變數的資料型態. PHP 同時也是動態語言, 變數可以隨時重新指定為另一種資料型態之值. 但唯一的例外是, $this 是一個特別變數, 用來表示 PHP 物件本身, 不可重新指定其值. 注意, 要避免在內部範圍 (例如迴圈或函數內) 使用與外部範圍同樣的名稱, 以免存取錯誤. - 變數必須以 $ 開頭, 後接任何數目的英數字或底線組合, 名稱中不能含有 $, 故 $va$r 為不合法.
- $ 後第一個字元不可以是數字, 必須是英文字母或底線 _, 第二字元以後才可以用數字, 最好只用英數字與底線, 不可用 $, @ 等特殊符號. 故 $var@1 不合法, 但 ${1}, ${"變數"} 是合法變數名稱.
- 變數有分大小寫, 故 $var 與 $Var 乃不同變數.
- 不可以使用 PHP 保留字, 內建變數, 內建函數, 或內建物件名稱當變數名稱.
- 參照指派 (assign by reference) 取得變數之記憶體位址:
所謂參照指派是用參照運算子 & 於變數 $var 前 (即 &$var), 這樣就會取得該變數之儲存位址, 對此變數賦值同時也會改變 $var 之值, 因為它們都指向相同位址. 例如 :
$var1="Peter";
$var2=&$var1; //使用參照運算子 & 取得 $var1 之位址, 並將此位址指派給 $var2 (使得 $var1 與 $var2 指向相同位址)
$var2="John"; //賦值 $var2 ($var1 也會同步被改)
echo $var1; //輸出 "John"
echo $var2; //輸出 "John" - 可變變數 (variable variables) :
PHP 的可變變數可以動態地設定變數名稱, 它是以另外一個變數的值來作為它的變數名稱. 它是在一個字串變數名稱 $var 前面再加一個 $, 即 $$var, 表示以 $var 之值作為其名稱的一個變數, 例如 :
$x="hello";
$$x="world"; //此指令等同於 $hello="world"
echo "$x $$x"; //輸出 hello $hello (雙引號的變數解析功能只能用一次)
echo "$x ${$x}"; //輸出 hello world
echo "$x ${$x}"; //輸出 hello world - 變數的有效範圍 (scope) :
PHP 的變數依其有效範圍可以分成 3 種 :變數種類 說明 範例 區域變數 (local variable) 區域變數是在函式內宣告的變數 (包括函式的參數), 只能在函式內部使用, 在函式外無法存取. 當呼叫函式時, 區域變數會被建立, 函式執行完畢即被釋放, 即區域變數的值不會被保留. function myFunc() {
$a=2; //宣告區域變數
echo "函式內 a=$a";
}
myFunc(); //顯示 "函式內 a=2"
echo "函式外 a=$a"; //顯示 "函式外 a=" (無法存取)全域變數 (global variable) 全域變數是在函式外面宣告的變數, 在整個 PHP 檔案中都可以使用, 但是它不像 Javascript 一樣自動穿透到函式內部, PHP 全域變數有效範圍只限於主程式中, 不會影響到函式內同名的區域變數, 欲在函式內部存取全域變數時必須在變數前面加上 global 關鍵字. 在函式內存取全域變數的第二個方法是使用 PHP 特別定義的陣列 $GLOBAL["全域變數名"] :
$a=2;
function myFunc() {
echo "函式內 a=".$GLOBAL["a"];
}$a=2; //宣告全域變數
function myFunc() {
global $a=3; //宣告 $a 為全域變數
echo "函式內 a=$a";
}
myFunc(); //顯示 "函式內 a=2"
echo "函式外 a=$a"; //顯示 "函式外 a=2"靜態變數 (static variable) 靜態變數只能在函式內用 static 關鍵字宣告, 使宣告於函式內之變數在呼叫結束後, 仍然存在於記憶體, 不會被釋放, 下一次在呼叫此函數時, 會重新被存取到. 只要函式被呼叫一次, 函式內的靜態變數就會一直存在, 但是它與全域變數不同的是, 於函式外部是無法存取得到靜態變數的. 注意, 靜態變數不能與複合運算子同時使用 :
static $msg += 1; //syntax error
應該分開來 :
static $msg;
$msg += 1;function myFunc() {
static $msg; //宣告靜態變數
$msg += 1;
echo $msg;
}
myFunc(); //顯示 1
myFunc(); //顯示 2
echo "函式外 msg=$msg"; //顯示 "函式外 msg=" - 變數的預設值 :
每一種資料型態都有預設值, 整數與浮點數預設值為 0, 字串預設值為空字串, 布林值的預設值為 FALSE, 陣列預設值為空陣列. 例如 : echo "x=$x"; //輸出 x= (變數 $x 之前尚未賦值, 因為用於字串中, 預設值為空字串) echo $y += 10; //輸出 10 (變數 $y 之前尚未賦值, 因為用於算式中, 預設值為 0) - 檢查變數是否為空的函數 : empty($var)
可以使用 empty($var) 函數檢查變數是否為空變數. 空變數有六種 : 空字串 "", 0, 字串 "0", NULL, FALSE, 以及空陣列. 對於空變數 empty 會傳回 TRUE.
標籤:
PHP
反應: |
讀取 ACCESS 資料表欄位名稱
在 ASP+Javascript+ACCESS 的小型互動網頁環境中, 常常需要讀取某資料表的欄位名稱 (例如要作為表格的標頭), 總不能打開資料庫一一去抄出來吧! 以下程式碼利用掃描資料庫的 Schema 欄位, 就可以將全部欄位名稱讀出來, 放到陣列裡面.
var conn=Server.CreateObject("ADODB.Connection"); //建立 ADODB 物件
var str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("./db/MyDB.mdb"; //連線字串
conn.Open(str); //開啟資料庫連線
var schema=conn.OpenSchema(4); //取得 Schema 物件
var fieldnames=new Array(); //存放欄位名稱
while (!schema.EOF) {
if (schema.Fields("TABLE_NAME").Value=="users") { //比對資料表名稱
fieldnames.push(schema.Fields("Column_Name").Value); //放入陣列
}
schema.MoveNext();
}
schema=null;
Response.Write(fieldnames.join()); //顯示欄位名稱
conn.Close(); //關閉連線
conn=null;
標籤:
ASP
反應: |
最常用的 SQL 指令
SQL 語法是我每天 WEB 開發工作中離不開的東西, 因此把這些最常用指令摘要如下, 以備忘記時查考 (記性越來越不好囉), 其實用來用去就是底下這些個, 沒啥大學問啦 :
- SELECT
SELECT * FROM users WHERE gender='F' AND age < 40 ORDER BY name DESC, age ASC
SELECT name AS 姓名, age AS 年齡 FROM users (使用欄位別名)
SELECT * FROM users WHERE (name LIKE 'T%' OR name LIKE '%R') AND gender='M' (組合條件 : % 代表字串, _ 代表一個字元, # 代表 0-9 數字)
SELECT * FROM users WHERE NOT name LIKE '%介%' (否定條件)
SELECT * FROM users WHERE age BETWEEN 20 AND 60 (數值範圍)
SELECT * FROM users WHERE birthday BETWEEN #1966/1/1# AND #2012/1/23# (日期範圍)
SELECT * FROM users WHERE age IN (20,30,40,50) (列舉)
SELECT * FROM users WHERE city IN ('台北','桃園','高雄') (列舉)
SELECT TOP 50 * FROM users (選取前 50 筆)
SELECT TOP 20 PERCENT name,age FROM users (選取前 20%)
注意, MySQL 沒有 TOP 與 PERCENT 語法, TOP 必須改用 LIMIT :
SELECT * FROM users WHERE gender='F' ORDER BY age LIMIT 10
SELECT * FROM users ORDER BY age LIMIT 3,10 (從第 3 筆開始抓 10 筆)
而 PERCENT 必須用兩步驟模擬, 首先求出全部列數, 再乘以百分比得到筆數 :
$SQL="SELECT COUNT(*) FROM users";
$RS=run_sql($SQL); //執行 SQL 操作
$percent=20; //列出前百分比紀錄
if (is_array($RS)) {
$total=$RS[0][0]; //總筆數
$limit=round($percent*$total/100); //將百分比換算成筆數
$SQL="SELECT * FROM users LIMIT ".$limit;
$RS=run_sql($SQL);
...
}
SELECT DISTINCT occupation FROM users (群組 : 把相同值的合為一筆)
SELECT occupation FROM users GROUP BY occupation (群組 : 功能同上)
SELECT COUNT(*) FROM users (計算總筆數)
SELECT COUNT(age) FROM users (計算指定欄位有值之總筆數) - INSERT
INSERT INTO users(name,age,gender) VALUES('武大郎',25,'M') - UPDATE
UPDATE users SET country='台灣' (更新全部記錄)
UPDATE users SET gender='F' WHERE name='崔鶯鶯' (更新一欄)
UPDATE users SET age=23,gender='F' WHERE name='崔鶯鶯' (更新多欄) - DELETE
DELETE * FROM users (刪除全部紀錄)
DELETE * FROM users WHERE age > 30 (條件刪除)
注意, ACCESS 才需要 *, 而 MySQL 不可用 * :
DELETE FROM users (刪除全部紀錄)
DELETE FROM users WHERE age > 30 (條件刪除)
標籤:
SQL
反應: |
2013年1月22日 星期二
關於 blogger 時間錯誤問題
找到這篇文章談到 blogger 時間不正確問題, 但說的是無名匯入 (原來可以匯入ㄚ) 時時間錯誤問題, 不是我在意的發布時間不正確問題.
~~~~兇手找到了, 原來是我自己時區沒設啦! 要在後台的 "設定/語言與格式" 中, 設定時區為 "GMT+8 台北", 這樣發佈時才會打上正確的台灣時間. 還有, 發布前別忘了輸入右邊的標籤, 以利分類.
~~~~兇手找到了, 原來是我自己時區沒設啦! 要在後台的 "設定/語言與格式" 中, 設定時區為 "GMT+8 台北", 這樣發佈時才會打上正確的台灣時間. 還有, 發布前別忘了輸入右邊的標籤, 以利分類.
標籤:
生活
反應: |
程式越學越多
最近工作重心放在ALU新機器的資料庫管理系統設計,基本上已完成資料擷取,剖析,以及ASP網頁呈現等主體程式撰寫,加上繪製了一張精美的資料庫結構圖,頗具美感,深感滿意,今天還回過頭幫舊GB系統重畫一張架構圖,更新後整個介面就一致了,漂亮啊.
我現在工作上最常用的就是我的老朋友 Javascript了,不但用來寫ASP,也用來寫WSH, 超好用,當年認真學果然功不唐捐啊.
另外為了寫軟體機器人 (主要是為了寫股票分析自動化程式), 還學了 PHP (寫後台) 與 Python (寫 GAE) 以及 jQuery, Autoit, 這就是我目前編程時主要使用的語言,我想這樣就夠了,不要再學新的了,腦力有限啊.
我現在工作上最常用的就是我的老朋友 Javascript了,不但用來寫ASP,也用來寫WSH, 超好用,當年認真學果然功不唐捐啊.
另外為了寫軟體機器人 (主要是為了寫股票分析自動化程式), 還學了 PHP (寫後台) 與 Python (寫 GAE) 以及 jQuery, Autoit, 這就是我目前編程時主要使用的語言,我想這樣就夠了,不要再學新的了,腦力有限啊.
標籤:
工作
反應: |
小狐狸事務所搬家了
因為手機是 Android 的, 用 Google 的 blogger app 隨時可以寫網誌, 所以決定搬家到 blogger 去囉 !
新家 : http://yhhuang1966.blogspot.tw/
新家 : http://yhhuang1966.blogspot.tw/
標籤:
其他
反應: |
暫別了 ! ExtJS
週二去文化中心還書時看到一本 ExtJS 開發的書, 我知道那是一個 Javascript 框架, 於是好奇地借回來, 看看跟 jQuery 有何不同. 看了兩三天, 先說結論 : 博大精深, 入門難, 但基礎打好後將如倒吃甘蔗. 它最吸引人的是標準化的各式元件, 像資料表格, 繪圖等等, 總之學通之後就不用花時間在網頁美工上, 而能專注於商業邏輯. 但是, 它借鏡 Java 的架構, 以類似 Java 的物件導向來開發, 所以, 對已有 Java/C#/C++ 基礎的人會比較容易入手, 但是新的玩意總還是有許多新的東西要熟悉, 學習曲線還蠻陡的哩, 所以即使考過 SCJP, 我別再妄想無痛入門啦. 本來想換 ExtJS 來開發, 我看還是暫緩, 繼續把 jQuery 搞熟再說吧! 因為還有更重要的事要做--PHP 專案.
只有專注與聚焦才能幹出一些事來.
只有專注與聚焦才能幹出一些事來.
標籤:
ExtJS
反應: |
小狐狸事務所搬家了
小狐狸事務所搬家了
自從換了 HTC Desire S 手機後, 我的日常生活與 Google 已經 "攬著著" 無法分開了, 所以就把無名小站的部落格搬過來啦! 這樣就可以跟 Google 服務完全整合, 不必記一大堆帳號密碼. 可惜的是 blogger 好像沒有辦法匯入無名的備份檔, 所以資料也搬不過來, 殘念 ~~~.
無名小站的小狐狸事務所 : http://www.wretch.cc/blog/yhhuang1966
無名小站的小狐狸事務所 : http://www.wretch.cc/blog/yhhuang1966
標籤:
生活
反應: |
訂閱:
文章
(
Atom
)