AJAX 小檔案

AJAX 就是 asynchronous Javascript + XML 的縮寫. 其中有時候會牽涉到 DOM (Document Object Model), 因為無論是 XML 或是 HTML, 都會需要一個文件的介面.

Javascript 的歷史悠久, 十幾年前就相當風行, 應該無庸贅述. XML 也行之有年, 為什麼會和 asynchronous Java script 扯在一起呢? 大家可以想像, 如果只是一個靜態的 XML, 可以做的事情畢竟是有限的. 反之, 如果可以和使用者互動, 依據使用者的指令來產生動態的 XML 介面, Javascript 正好可以做這件事. 但此處的 Java 為何會強調 asynchronous 呢? 它主要是指在 client 端和 server 端的 XML 可以是不一樣的, client 端看到的 XML, 並不是 server 端所 generate 出來的, 而是依據 Javascript 所動態生成的. 它最直接的好處就是節省了 server 的計算量以及網路頻寬. 從 client 端透過 SOAP 和 server 端做必要的溝通, 可以使得網路流量只剩 5% (參考 Wiki).

現在很多網路的應用都使用了 AJAX 的技術, 以至於各位所看到的網路頁面, 真正是獨一無二的, 因為連 server 上的那一份都和我們所維護的這個版本不同. 一旦我們想回到上一頁, 重新整理, 或是 IE 突然當掉…, 那個珍貴的畫面就再也回不來了. 比方說我寫 Blog 就會偶爾遇到這款代誌. 後來有很多人寫一些撇步來解決回到上一頁的問題, 不過問題總是比較多, 有利就有弊. 如果肯犧牲 client 端硬碟空間的話, 我想大概甚麼問題都可以解決.

AJAX 一個先天上的難題在於 client 端的狀況百百種, 不一定會使用哪一種瀏覽器, 外掛也不一定會全部都開得好好的, 比方說 Javascript 被關掉了, 很多東西就不對了. 在真實的狀況下, 網路應用可能大部分的功\能都留在 server 上, 把 client 端只當作一個顯示的介面. 這樣可以減少 client 端相容性的問題, 但是 client 端連邏輯判斷的能力都沒有的話, 可以做出來的功\能也就沒甚麼看頭了 (thin client 的 case).

另外值得一提的是, AJAX 的 server 要應付 multi-thread, muti-user, 如果兩個 user 用同一個帳號存取同一個郵箱, server 勢必要做 error handling. 凡此種種都要靠開發套件來幫忙簡化問題, 不然只靠苦工做一套出來 demo 還簡單, 要能夠全面商品話就困難了.

以上是一點點了解, 以後再更正與補充之.

我女兒今天晚餐鬧的笑話

我的女兒, 今天說了一句很白癡的話, 我老婆還特別把它寫下來以免忘記.

事情是這樣的, 我女兒很喜歡吃蝦. 只要餐\桌上有蝦, 她就會狂吃, 還會偷挾別人碗裡的…

結果我老婆今晚做的蝦仁炒麵, 一人一盤, 卻不見女兒動筷子吃蝦.

老婆說: 奇怪, 妳今天怎麼一隻蝦都沒有吃?

女兒說: 蝦子的殼都軟掉了, 好口惡心~~~

老婆和我: ……

“今天吃的是蝦仁耶, 那來的殼!"

女兒: 對厚…, (平常吃的都有殼 )

我唯一可以感到安慰的是: 還好她不是每天吃蝦仁, 然後看到有殼的蝦說: 這是什麼怪蟲…

Lasik 雷射手術記事 – 術前檢查

很多人因為忽略了術前檢查, 不應該手術的人也去手術了. 結果造成一些後遺症. 我研究半天之後, 決定去先去檢查看看. 要是我不適合, 那我也就可以死了這條心. 首先我就去找同事推薦的那一家, 它據說在中興百貨附近, 而且網路上有一篇好評. 不過, 我一時沒找到. 接著我就想去大醫院, 因為網友多數還是推薦大醫院, 或者說早知道去大醫院.

由於我有在馬階被驗錯度數的記錄, 所以我的目標就改為同樣用 217z 的國泰. 至於新竹醫院是用 VISX, 但它是公立醫院, 買儀器不知道大不大方? 不知道它進化到第幾代? 所以就沒考慮. 我找了一天, 就提早下班, 拜託老婆載我去醫院檢查. 因為檢查需要散瞳, 我怕我開不了車回來, 所以這種事一定要拜託老婆囉!

在去國泰醫院的路上, 發現那邊很不好停車, 所以臨時決定去大學眼科檢查. 等我們到了大學眼科, 因為已經八點多了, 大學眼科叫我下次請早. 為了不想白跑一趟, 我們就轉往附近的陳志宏眼科檢查. 老實說陳志宏醫師真的蠻敬業的, 護士幫我做了一小時的各種檢查之後, 陳醫師又用幫我仔細地檢查了視網膜, 他發現我的視網膜邊緣較薄, 有一小塊掉漆 — 掉色素, 所以我會有一點飛蚊症. 至於其他的手術指標都是合格的, 特別是角膜厚度 570~580 um. 天啊! 難道是我臉皮厚? 一般人可是 450~550 um 耶! 也許吧! 畢竟臉皮厚的人都是比較不自覺的! 他的價錢是 3 萬 2.

接著我又在第二個禮拜去大學眼科做第二次術前檢查. 為何隔一週呢? 因為陳醫師的散瞳劑實在太強效了. 害我怕光了一天, 我查到散瞳劑有兩種, 效果強的話, 要一週才會完全失效 (也許我是錯的). 總之, 我去大學又檢查了一次. 大學眼科的檢查項目相對較多, 小姐也很客氣. 不過大學的陳醫師就比另一位陳志宏醫師放水多了, 眼底檢查用的時間約別人的 1/5. 當然他也說我可以做, 因為我角膜特別厚, 可以把度數全部打掉. 他的價錢是 3 萬 3, 做前導波 4 萬 8. 若是指名給總院長林醫師開就各多 1 萬左右.

這個林丕容總院長真的很有名, 我嫂嫂也是給他開好的. 錢和眼睛比起來不算什麼. 不過林醫師也 43 歲了, 萬一做角膜瓣的時候有個閃失…..怎麼辦咧. 老闆又不見得比徒弟厲害. 看看本部門就屬我最肉腳就知道了, 所以相信新人應該也沒錯. 再說去台北也有點麻煩.

OK! 現在我有兩個選擇了. 一邊看來人品比較可靠, 但是沒有前導波儀器, 也不相信前導波會有效的陳志宏醫師 + VISX. 另一邊是看起來商業氣息濃厚, 櫃台小姐說得天花亂墜的的大學眼科 + NIDEK. 到底我還要找第三家嗎? 我看到網路上有人檢查了四家還是五家以求安心. 我也很想這樣, 但是每次被散瞳很難過耶! 考慮良久, 還是聽了老婆的話. 她說: 如果不是這項技術這麼成熟, 怎麼會街頭巷尾的醫生都在做呢? 大學眼科也開了幾個月了. 如果出事, 早就上電視了. 她叫我不要再 survey 了, 就交給醫師吧! 何況 “你運氣一向比別人好.” 呃! 也對啦!

好吧! 我最後就選擇了技術似乎先進的 NIDEK, 即使它沒通過 FDA. 畢竟 NIDEK 是雷射方面的大廠. 幫我開刀的張醫師也有一篇 BBS 說他很親切 (不是門診的陳醫師). 雖然我連他長什麼樣子都不知道? 既然我賭運不凡, 就梭了吧!

[註] 本篇大約寫於 2005 年 1 月, 所以資訊老舊, 請留意.

TCL 小心得

今天為了改一個 TCL 檔, 用了很多新的東西. 因為從來沒有從 TCL 的基本學起, 所以還是摸索了一下. 簡單整理今天遇到的困擾:

1. 最常出現的 bug:  把 if { …. } 寫成 if ( …. ), 常常一眼看不出來.

2. 對 list 的觀念不清. Parsing 到有花括號 { 的檔案, 用 lsearch, lreplace 都會出問題. 首先將 list 做 split

      set newlist [split $line]  

   這樣 line 裡面的 tab, {, 都會變成 list, 這個時候 newlist 就可以被 lsearch, lreplace 了

3. 但是從 split 過的 newlist 裡面找到的位置, 並不代表它在 line 裡面的位置. 不做 split 好像又不能 parse 有花括號的檔案. 所以我用了一個蠢方法. 第一道先 lsearch $newlist, 等到確定有我要的字串, 再改用 lsearch $line.

4. 十進位數字轉十六進位數字

   set hexspace [format %x $space]  

   但 TCL 並不會自動幫我們加 0x~ 以資區別. 所以我還是手動把它加上去.

   set space “0x"
   append space $hexspace

5. lrange 格式

   lrange $line 1 3  表示把第一個到第三個 element 都做成一個 list

   lreplace 類似 lrange 但多出一到多個 element, 取到代第一個到第三個

   若 lreplace first last …. 的 first < last 它就變成 insert 功\能

6. /t 表示 tab,  但 puts $File “tabc" 並不會印出 tab, puts $File t"abc" 才會

7. 該用 append 不要混淆成 lappend, 兩者不同

  append “a" “b" —> “ab"

  lappend “a" “b" —> “a {b}"

8 需要數學計算時用 expr, 如; set a [expr c * b], 這表示 a = c * b

大概就是這樣了. 有用的網址如下:

http://tmml.sourceforge.net/doc/tcl/

http://tmml.sourceforge.net/doc/tcl/keyword-index.html#KW-index 

http://www.dev.idv.tw:8080/mediawiki/index.php/Tcl%E7%9A%84%E8%AE%8A%E6%95%B8%E4%BB%8B%E7%B4%B9 TCL 的變數介紹

反正書到用時方恨少, 只要程式寫得出來就不想買書了,寫不出來的時候就會想 “下班先去買書"….

有趣的履歷表

校園徵才的季節到了, 也收到很多履歷表. 看履歷表是件很沒有長進, 卻又不得不做的事. 因此順便把有趣一點的片斷記下來和大家分享.

————————————————-

理想職務名稱:工程師
職務工作內容:做自己想要做的事

—————————————–

一行的自傳

【 自 傳 】
我是剛從學校畢業而沒有任何工作經驗的菜鳥,但是我對光電領域充滿了興趣及衝勁,希望能在工作上好好的發揮…我不是很聰明,但是我肯努力…

<– 很誠實但沒有吸引力
————————————————————

實驗室的有句名言最能代表這個意境, “蟑螂們宣稱自己具有打不死的精神, 但是不進步, 他們會死."

———————————————–

有趣的論文題目: (中央資工)

對談式的線上情緒關懷代理人

————————————————

有趣的論文題目: (台科大電機)

使用 PIC 18F452 製作機器足球員

<– 這顆 controller 只有 2KRAM, 1KROM,

32KB flash, 10MHz/10 MIPS, 不知可以做到什麼程度?

——————————————————-

二、興趣與嗜好

1靜態模態: 在國中時期就已接觸,興趣一直持續至今。平常利用時間製作飛機類及車輛類靜態模型。

2鐵道模型: 在大學階段接觸,其特色除了火車模型本身十分細緻外,其多列車控制系統及軌道、電力的配置與真實的系統相比可以說是大同小異。但其價錢十分昂貴,平常大多利用時間上網蒐集一些國內外新資訊及新技術。

3遙控模型(RC):平時除閱讀國內外一些相關的雜誌外,也上網去國內外各個公司網站、個人網站、雜誌評筆的網站找資料,觀看最新動態、最新產品、最新技術。

4B.B槍:對二次大戰木製槍拖的槍械非常有興趣,大多以收藏BB槍為主,並未參與時下流行的生存遊戲活動。

5泡茶品茗:家庭環境因素,從小培養的休閒興趣。

6品嚐酒類飲料:個人對酒類不管是紹興酒、高梁酒、紅酒、白酒、威士忌、白蘭地等皆略有研究。

7足球:為個人最喜愛的休閒運動。

<– 興趣真廣泛

———————————–

對於工作的態度也將一如過去一般而不捨。

<– 這句我看了兩三遍才看懂.

—————————————

有趣的論文題目: (清大電機)

關於腦電波的訊號傳輸 <– 夠難了!

————————————–

終於看完全部 100 多份了! Yeh!

————————————–