October 9, 2008

近期心得

我想我是個很理想化,但又不夠聰明的人。有許多的機會在那兒等著我去掌握,但我常任其流去,徒留遺憾。

離職後的這幾個月,我開始了我個人的系統計畫。在過去煩悶地上班、下班無意義地遊樂的生活中,常常在思考「為什麼現在在用、在開發的系統這麼不人性?這麼沒有彈性?」當然,這是指過去上班時公司主要在用的那套系統。

為了將所有資料解構,就必須先知道資料的共通點。這是 system 'node' 的出發點:掌握資料的共通點,解析為不同種類的 node,再將所有的 node 如堆積木般地組合、堆疊起來,最後成為一個完整的系統。這種概念來自 Unix:小功能的組合,以完成大型功能。

然而,在網站系統(實際上,我相信在其他領域亦同,尤其是硬體)的設計上,這樣的系統通常會被視為「瑣碎」且難以整理。因此由幾種 node 可整合成一種 node group,再將此 node group 的設定方式以人性化方式打包,便能成為一個便利的互動介面。雖然這樣的互動介面,也間接犧牲了某些 node 的特性,但 node group 與 node group 彼此間又能以同樣方式互動,也產生了專屬於 node group 的屬性。此時將 node group 也視為一個 node,此 node 與其他同級的 node 再組合成更大、功能性更專一的 node group...像細胞一層層地群聚組合,最後組為器官、器官之上的系統,系統構成的生物體這樣一層層建構上來的,就是我的 system 'node'。

有這樣的構想,加上已不用打卡上班,給自己兩三個禮拜重新整理房間與心情後,與美術設計朋友們開始合作,每天到他家報到,著手規畫、設計這套系統。

構想有了底,開始撰寫系統時,也給自己訂下幾個系統開發原則與走向。然而,這樣的走向,相當於將我這三年來工作的程式設計經驗通通拋到腦後。模板、完全 CSS 取向,以及各種 node 的解構分析等等,三年來在那公司經手寫過的程式,沒有一樣有達到這些水平(大概只有那個用 VB 6.0 開發,內容混亂至極的電話值機系統客服端能相比。)為了讓美術設計的朋友未來能銜接這套系統的美術設計,在剛開始合作的期間,硬逼他開始接觸 HTML & CSS,用 Dreamweaver CS3 把他的公司網站給寫出來了。一個程式設計師要求美術設計師別再用業界舊方法設計版面,改以 CSS 進行設計,的確讓他吃足了苦頭,因為已經習慣的舊觀念相當難打破。他能打破這些觀念,在我看來是擁有十足的勇氣,而他也真的做出成績了。

但此時,輪到我開始卡住了。

在舊公司上班時,已經相當習慣使用當時系統的函式庫來節省時間,流程概念也被定死了。因此,在沒有舊公司函式庫支援的情況下,相當於要重新學習,重新建立觀念,以及最重要的:有自己的一套寫作方式以及函式庫。當這些一應俱缺時,「要敲下什麼鍵作為完成想法的開始」竟然成為一道高牆,阻隔在「我」與「想法」之間。「這樣寫是對的嗎?會不會寫到後面發現問題太多要重修?」「有沒有更簡便的寫法?」等等雜念常常浮現,令人心煩意亂,無法專心。

開發卡住,代表著另外一層意義:外來的壓力紛湧而至。房租、電費、網路費等等使得錢包快速變輕(前陣子還弄丟了一個錢包,)每個關心我的人都在問系統開發進度,家人也擔心我沒賺錢吃不好營養不良。在這期間,兩個案子無疾而終,也令我陷入更深層的憂慮中。

但我得坦承一點:在看過海角七號後,我重拾對自己的信心。電影中的每個人物都有自己的故事,但他們都有自己的理想,而且掌握住機會,燃燒自己的熱血,投入自己喜愛的事物中。雖然是小人物,雖然都有自己的煩惱與過去,但努力、把握當下向前行,總有一天能看見引頸期盼的彩虹。

回過頭來檢視自己的現況:其實現在初期系統幾個關鍵性的 node 已經完成,目前進度已經到了開始整合 node 成為 node system 的階段。在案件處理上,幾次與朋友促膝長談的結論,我也調整我對接案的金額、心態與應對方式。

我不會放棄我對 system 'node' 的開發,也不會因為案件不順利而喪氣。女友的支持,美術設計界朋友們給于的協助,以及家人的期待,銘感五內。

家人曾幫我算過命,說我三十歲時會遇到貴人。

我真的遇到了,而且不止一人。

三十歲的奮鬥之路,在你們的陪伴下,我會抬頭挺胸,繼續朝著理想、朝著我人生的彩虹彼方走去。

September 30, 2005

語錄(1)

「美工人員為了畫面美觀而造出的慘烈 html 語法,是壓死網頁程式設計師的最後一根稻草。」

~Jamesz

以上,致所有有心走網頁美工排版的美工朋友。

請你們在用強大的 DreamWeaver 做完美麗的版面後,關掉 DreamWeaver,開啟記事本,將那些要交給網頁程式設計師放程式碼的網頁內 html 碼縮個排吧!你們的一點細心,是讓我們這種最容易過勞死、肝病死、心血管疾病死掉的資訊人能活久一點的救贖…

September 28, 2005

javascript 中檢查輸入值是否為空

資料來源:CodeToad.com : Javascript Form Validate Empty Field function

example:

function IsEmpty(aTextField) {
   if ((aTextField.value.length==0) ||
   (aTextField.value==null)) {
      return true;
   }
   else { return false; }
}

檢查兩項:value 的長度與內容是否為 null。只要滿足其中一個條件便可認定為無值。

在同一頁下方,有人提出更強力的檢查:


function isEmpty($mytext) {
var re = /^\s{1,}$/g; //match any white space including space, tab, form-feed, etc.
if ((mytext.value.length==0) || (mytext.value==null) || ((mytext.value.search(re)) > -1)) {
return true;
} else {
return false;
}
}

不過,前端用 javascript 檢查,後端一樣要用程式檢查,以防 cracker 與 javascript 未能檢查到(或關閉 javascript)空值。光是靠瀏覽器的 javascript 檢查是不夠的…

September 12, 2005

再度被 IE 打敗

好不容易把可以無限階層的選單項目寫出來了(啊,這是 PHP 去 database 抓資料做下拉式選單啦),然後想說用 javascript + CSS 去控制下拉式選項可以選擇的項目。最後寫出來了,在 Firefox(Deer Park alpha2)跑起來完全沒問題,我很滿意。可是一到 IE …為什麼所有的項目都跑出來了!?

簡單地說,我在 <option> 中寫了「style="display :block" 」,準備拿來用 javascript 進行 block ←→ none 的切換來控制可選擇的項目,但試了很久就是無用。最後終於在網路上找到答案:IE 的現行版本(4,5,5.5,6)沒一個有支援 <select> 與 <option> 的 CSS 語法處理,sh*t!

我要再罵一次腦殘的 M$ 員工!對 CSS 的支援這麼差,是要我們這種寫程式跟寫網頁的程設(美工)去撞牆嗎?混蛋~~~!然後那個口口聲聲說要出的 IE7 竟然不能在 Windows XP 以前的 Windows 上跑,你們當每個人都有那個閒錢去買一套 WinXP 回家殘害自己的電腦嗎?混蛋!

要不是為了 case,為了什麼都不懂的客戶,誰要用這種既不安全又爛到家的瀏覽器啊?sh*t!

罵完了,繼續趕 case.....

September 3, 2005

我不會寫程式

說不會寫也不對,因為我會寫。

然而,在公司寫程式,用公司內系統函式庫寫久了,真正自己動手寫函式時反而覺得綁手綁腳。因為自己的環境清一色都是 PHP5(公司系統仍用 PHP4),我開始以 OOP 撰寫程式,一開始寫時沒想太多,都是用以前 PHP4 時的物件導向概念來寫,但中途翻書一看,發現 define constructor & destructor 的方式不同,回過頭來一改,又將手上的程式翻改一大半。然後在寫 SQL 語法時,不確定資料庫中日期範圍的查詢方式如何,又花了不少時間在翻文件(英文)跟測試上...

也許我真的不會寫程式吧。也可能只是在轉型的過程中接連遭遇困難,一時間難以適應而已。要是跳不過這些火山,我自學程設的白日夢大概也可以醒了...不行,這不是夢,這是我的生活。生活的動力不可放棄呀!

PS. 為什麼會生這篇出來呢?因為我又遇到困難了。用寫作轉移(逃避)問題,真是糟呀 :(

November 21, 2004

網頁嵌入多媒體物件的標準作法

本文是在 Sayya 資訊站幾個個人板中的資料抽取而出,僅紀錄我會忘的部份。

如果要讓所有現代的瀏覽器可讀 (Internet Explorer、Firefox、Mozilla、Safari、
Opera),應使用標準語法: <object type="video/x-ms-wmv" data="資料來源">。

這裡有範例

使用類似 <object classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> 的語法,會讓非 IE 瀏覽器(如 Mozilla、Safari 等)無法辨認。

March 20, 2004

XHTML 1.0 網頁設計需知

本篇是翻譯自 Casey Kochmer 的「USING XHTML IN JSP, ASP AND PHP WEB SITES」一文。因該文原網址已遺失,我只貼上我之前看完後稍加整理的部份。

原則:

  1. HTML 標籤統一用小寫,千萬別動到大寫英文字母。
    ex. 錯誤的示範:
    <P>,<TABLE>
    (印象中某 M 牌出品的「前頭頁」會犯這種錯誤)
    ex. 正確的示範:
    <html>,<p>,<div>
    (印象中另一個 M 牌出品的「織夢者」會自動用這個正確用法)
  2. 別亂擺 HTML 標籤。有的瀏覽器還是可以看到正確內容,但在 XHTML 中可是會出問題的。
    ex. 錯誤的示範:
    <form action="test.htm">
    <table>
    <tr><td>hi
    </form></td></tr>
    </table>
    很明顯地,</form> 放錯地方了,但有的瀏覽器還是排除萬難秀出了表單。通常只有手賤的網頁設計者才會犯這種錯誤。
    ex. 正確的示範:
    <form action="test.htm">
      <table>
        <tr><td>hi</td></tr>
      </table>
    </form>
    很明顯地,這次都放對了地方,也能確定所有的圖形介面瀏覽器都讀得到正確的表單。用網頁編輯器的,或是細心一點的網頁設計師都辦得到。
  3. 所有屬於該標籤的屬性,其指定值一定要加雙引號。
    ex. 錯誤的示範:
    <form action=test.htm>
    action 這個屬性,其指定值 test.htm 應當用雙引號括起來。
    ex. 正確的示範:
    <form action="test.htm">
    看!被雙引號括起來的 test.htm 是符合 XHTML 規定的指定值了,很棒吧!
  4. 所有的標籤都是封閉性的。
    ex. 錯誤的示範:
    <p>這是一段示範
    <br>一段錯誤的示範
    <p>標籤門戶大開,不合 XHTML 規格;<br> 雖然看起來合法,但我們還是需要他自閉(?)來滿足 XHTML 規格。
    ex. 正確的示範:
    <p>這是一段示範<br />一段正確的示範</p>
    標籤要有頭有尾,這是一定要的原則。至於像 <br> 啦,<input> 這種本來就是單獨存在的標籤呢?當然你可以再加個 </br> 或 </input> 把內容給關起來,只是有人研究過單獨用 <br /> 跟 <input />會讓網頁處理速度快一點(吧?)
  5. 在一個標籤中,同樣的招式不能對聖鬥士使用兩……同樣的屬性不能出現兩次。

寫法:

  1. 第一行一定要是這個標籤:<!DOCTYPE>!(註)
    這個標籤將告訴瀏覽器這個網頁是如何描述 XHTML 規格。有下列三種:
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">
      若要寫一個「純」XHTML 的網頁,請用這個。
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
      若要寫個能與大部份 HTML 4.01 相容(就是一般常見的舊網頁標準)的網頁,請用這個……大概也只會用這個了吧 XD
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">
      若要寫一個有框頁的網頁,請用這個。
  2. 第二行一定要用 <html> 這個標籤,並在裡面加上 xmlns 這個屬性。
    例子:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="utf-8" lang="utf-8">
    上面的 xmlns 是指 XML 文件(以後有空再去了解吧)使用的腳本(大概是這樣解釋的吧…有錯再來改)是 http://www.w3.org/1999/xhtml(別亂改), 而這個 XML 文件(好啦,XHTML 是 XML 的一種)用的語言是萬國碼(utf-8)。
  3. 在 XHTML 中一定要加入 <title> 這個標籤。
    例子:
    <html>
      <head>
        <title>網頁標題</title>
      </head>
    <body>
         
         
         
  4. <form>標籤一定要有一個 action 屬性,指定接收資料的網頁。
    例子:
    <form action="test.html"></form>
  5. 關於網頁上與樣式∕排版有關的標籤,如 <font>、<center> 等等都不該再使用,改以 CSS 語法設定。
  6. 所有文字內容都要包在標籤內。
    例子:
    <p>我被包圍啦</p>
    如上例,「我被包圍啦」被 <p> 與 </p> 包圍,就符合 XHTML 的規格。
  7. 所有行內標籤內都不能含有區塊標籤。
    例子:
    <a href="http://www.w3.org">
      <table>
        <tr>
          <td>這是個完全錯誤的例子</td>    </tr>
      </table>
    </a>
    超鏈結標籤<a>是個行內標籤,不能將區塊標籤<table>給包起來。
  8. 所有的 <img> 標籤都要有個 alt 屬性,作為圖檔的說明。例子:
    <img src="http://www.istudio.idv.tw/pic/tux-small.gif"
    alt="Tux,電腦界的救星,拯救長年被 M$ 帝國壓榨的可憐電腦使用者" />
    這樣一來,使用文字瀏覽器或圖讀不出來時,就會出現打給 alt 屬性的內容,最起碼可以讓人知道這張是在這裡是要秀什麼的。
  9. 所有的 <style> 標籤都要有 type 屬性。
    例子:
    <style type="text/css">
      body {background-color:yellow;}
    </style>
    這樣使用 CSS 語法,可以讓整個背景變成黃色,只要不用底圖的話。
  10. 以前的 HTML 語法允許屬性的指定值單獨存在,現在不行了。要使用這個指定值,就用同名的指定值當作屬性。
    例子:
    <input type="checkbox" value="公雞" checked>公雞
    在以前(HTML 4.01 規格)中,這樣做時會出現一個已經勾選的 check box(勾選框),但在 XHTML 中我們要改成這樣:
    <input type="checkbox" value="公雞" checked="checked" />公雞
  11. 使用 <script> 標籤時最好將 script 內容另外以檔案呼叫進來。例子:
    <script type="text/javascript" language="Javascript" 
    src="javascript.js"></script>
    這個例子中,是將 javascript.js 這段 javascript 抓進網頁中。當然,這樣子並非完全符合 XHTML 規格,但你不會想知道合乎規則的寫法的 XD

以上兩大項目,給大家參考,也給我自己速查 :-)

註:其實第一行應該是 XML 文件宣告。
例子:

<?xml version="1.0" encoding="Big5"?>

「version="1.0"」表示這是依循 XML 1.0 規格,「encoding="Big5"」表示這份文件的文字編碼為大五碼(正體中文)。

March 19, 2004

Moziila 1.7beta

Mozilla 1.7beta 的新功能不少 :-)

不過我很懶,所以只說瀏覽器的部份:

  • 檔案大小變小、執行速度更快
  • 看過把滑鼠右鍵功能表鎖住的網頁吧?現在可以在設定中關掉這段 javascript,恢復右鍵的功能
  • 列出本地端檔案列表時,可以依檔案關聯性顯示代表的 icon
  • 密碼管理員可以顯示記憶下來的密碼,不過必需要以「主密碼」(Master Password)
  • 現在可以在喜歡的圖上使用「設為桌布」的功能了!
  • Linux GTK2 版本的介面可以套用 Gnome 的佈景主題
  • Cookie 管理功能重製
  • 日期管理更精確。(In fact, I don't know what this feature does :P )

不過,最讓我興奮的是下面的 Under the Hood:CSS3 的 opacity 功能正式納入支援了!這麼一來,網頁中就可以使用透明區塊,網頁設計魔術又有得玩了 :-)

等到 1.7 正式 release、FireFox 也正式支援 opacity 後,就來設計更有趣的版面。

March 10, 2004

CSS Menu on Mozilla Firefox works!

過去曾經說過,CSS Menu 在 Firebird 中似乎仍然無法正常使用。但剛剛用 Firefox (Debian GNU/Linux offical package) 測了一下 Eric A.MeyerPure CSS Menus,發現上面的鏈結已經可以正常使用了!

這麼一來,我就可以把我的版面再改得簡潔一點。Mozilla Team 太棒啦

中文版的 Mozilla Firefox 請到 PiaipMozilla 正體中文化官方網站下載。

February 24, 2004

DevEdge 裡的好東西

DevEdge 發現 Multibar,可直接在 Sidebar 中開啟該鏈結的 bookmark 查詢相關語法,包括 XSLT 1.0、CSS 2.1 與 Javascript 1.5!

這個 bookmark 只能在 Mozilla、Firefox 與 Netscape 7.x 中使用。還在用 IE?快換掉吧! :-)

Creative Commons License 本站所有創作皆遵循創意公用授權條款,Jamesz 保留部份權利。
Powered by Movable Type 4.12
Valid CSS! Valid XHTML1.0! noIE! 本站不支援網路分級制度!