跳到主要內容

文章

目前顯示的是 四月, 2009的文章

人狗殊途

文章開始前,先來張照片...



話說起來,嘟嘟也來到家裏快一年了,在這個不長不短的時間,有時候常常覺得,很奇怪到底誰才是主人啊。為什麼每次我都要幫嘟嘟擦尿、擦大便、裝飼料,明明就是我主人,可是我卻覺得我像個奴才似的。

這個學期也開始每天都待在家中寫程式,陪著嘟嘟的時間也比較多了些,可是卻沒有感覺嘟嘟你也比較乖一點耶。為什麼電影、廣告上的狗狗都很可愛、很乖,可是你特別不一樣呢?

嘟嘟,你可以換個地方躺一下嗎?「挖a咖.......麻去了......」

當我移動雙腳之後的嘟嘟是....↓

嘟嘟你就給我精神一點,睡在我的胖肚肚上還這樣子,你都不知道我腳麻掉了嗎?

快點給我下來!><"

唉!!!!!!!!~(微微的覺得人不如狗啊)


jQuery清空表單資料

沒想到jQuery居然沒有支援reset這一個方法
因此爬文爬了一下,找一下正規w3c的用法

發現可以用這樣子的語法來實現。


$("form").each(function(){
this.reset();
});


蠻方便也很簡單。

Javascript開新視窗Tips

開發網站介面的時候,常常會遇到空間不足的問題。瀏覽器大小就這樣,要放進網頁的資訊卻那麼多,該怎麼辦呢?

如果只是單純顯示資料,用AJAX呼叫回傳,顯示在select tag或div裡面就可以了。這樣介面簡潔,操作也不複雜。可是,如果需要更多互動的話,用AJAX,開發人員辛苦之外,介面太複雜維護不易,用戶用起來也不見得舒服。

這時候,開個小視窗另外操作,必要時也可以回傳結果到母網頁,對開發人員和用戶來說,應該都可以是權宜的好辦法。

window.open很常用也很簡單,本篇分基本型、完整型、遙控型三方面介紹,接下來就直接進範例嚕:
1.基本型
window.open ('page.html');

這是給只是想丟資料出來的人用的,或是想要強制另外開視窗。不過,真是這樣的話,用Yahoo!會更好。當然有時也會,需要用程式來判斷網頁方向也說不定。簡而言之,這個是方便記憶用的。

2.完整型
window.open ('page.html', '_blank', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no');

應該大部分會用到的是這行吧!先給目標URL,其次是開啟的目標,等同a tag的target屬性。第三個參數,就是給被開啟的瀏覽器設定,設定參數在上面的範例應該都有了,如果有缺漏請跟我說喔^__^。

3.遙控型
var new_window=window.open( ... );
if( new_window.opener == null ){ new_window.opener=window; }

這裡展示的是開啟新視窗之後,還想要繼續對新開的視窗做操作時,我們就可以用一個變數接收window.open()的回傳,如此就可以追蹤新開的視窗。新視窗也可以透過window.opener,將特定的資訊回傳給母視窗。

例如:在新視窗裡用:
window.opener.document.getElementById('obj').innerHTML="XXX";
或者
window.opener.location = 'h…

正規表示法::不貪多演算

不論在哪種語言,正規表示法(regular Expression,簡稱RE)預設上都會盡可能的擷取更多的資料範圍,一般稱為貪心演算法。當然本篇不是在研究演算法本身,只是作為常用RE的筆記。

但是一般實務上,通常並不需要貪心演算,許多情況下,貪心演算甚至會礙事。所以,當我們在抓取資料的時候,必須要告訴電腦:老實點,別太貪心!這在RE裡面是怎麼表示呢?就是在次數表示符(quantifier)後面,加註一個『?』,例如:

『.*』代表抓取任意字元、任意次數、貪心演算
『.*?』代表抓取任意字元、任意次數、不貪心演算
『.+』代表抓取任意字元、一次以上、貪心演算
『.+?』代表抓取任意字元、一次以上、不貪心演算

在quantifier 後面加註問號,並不會改變他的意義,改變的只有他的『貪婪程度』。

其他例子:
\d*? :任意數字、任意次數、不貪心演算
\w*? :任意文字、任意次數、不貪心演算
\D*? :任意非數字、任意次數、不貪心演算
\W*? :任意非文字、任意次數、不貪心演算

其他正規表示式的參考資料

1. 比對 「一個字元」 的符號:
[...] ... 當中任何一個字元
[^...] 除了 ... 之外的任何一個字元
. 任何一個字元

2. 「定位」 功能的 anchor:
^... 以 ... 開頭的字串
...$ 以 ... 結尾的字串
\b 文數字/非文數字 的邊界。

3. 計數用, 表達 「重複出現多少次」 的 quantifier:
{5} 重複 5 次
* {3,7} 重複 3 到 7 次
? 可有可無 (0 次或 1 次)
* 重複出現任意次, 包含 0 次
+ 重複出現任意次, 至少 1 次

常用符號:
\d 等同 [0-9],代表『任意數字』
\D 等同 [^0-9],代表『任意非數字』
\w 等同 [a-zA-Z0-9_],代表『任意文字』
\W 等同 [^a-zA-Z0-9_],代表『任意非文字』
\s 等同 [ \t\n],代表『任意空白字元』
\S 等同 [^ \t\n],代表『任意非空白字元』

轉錄:
http://deer.nublog.cc/article.php?u=DeeR&i=20080225

Is it ME?

測驗連結



挑戰型(權威自信,敢作敢為)
您經常是精力充沛、情感強烈、專橫霸道、叛逆、保護者、獨斷獨行、一不作二不休的人。您工作賣力,玩樂也賣力。

您擁有一定的個人倫理,涵蓋了整合、真理和正義,透過這個個人倫理,您以正反對立的角度觀看世界。

您雖然重視公平,卻不太樂意聽到其他人的觀點。
優點:

您對朋友和所愛的人會極端保護和支持,您會因為他們受到不公平對待,不夠強壯到足以為自己爭鬥的人而努力抗爭。
缺點:

不尊重他人的權利和需求,為了自己而脅迫他人。
愛情:

您深刻重視感情,但由於您獨斷獨行,而且有對控制的需要,可能會出現建立關係的困難。

在親密關係中,爭吵對您來說是主要的,這是安全保持連繫的一種刺激方式。
您是能鼓舞對方,有趣的伴侶,而且會永不厭倦地保護對方,支持伴侶自我實現。

「我知道她的聰明、能幹,而且我愛這樣,但是踏入這個充滿危險威脅的世界,她跟著我走是重要的,這樣我才知道她是安全的。這看起來像是控制,然而卻是對她的保護。」
安定方位:付出型

在安定的狀態下您會變得順從、願意付出、容易受人影響,讚成和自己有關的事物。
壓力方位:思考型

當面對感情的壓力或情緒對抗時,您會變得沮喪、怠惰、不溝通,而且無法決定自己在思考的事情,並加以實行。
建意:

學習接受沉悶和恐懼

認知並歡迎您的脆弱及無力

改善自己責備他人的傾向
最渴望:控制掌握一切,當家作主

最恐懼:屈服於人

最難達到的美德:純真 (Innocence)

最難克服的執念:縱慾 (Lust)







Google神秘伺服器大公開(轉)

轉錄至 ZDNet



沒有想到Google裡面的電腦硬體會是這麼的陽春,雖然說早就已經知道他們是用蠻低廉的價格來自制硬體和軟體,不過居然跟我的電腦其實差沒有多少,還真是令人驚訝。

而且還省略使用UPS的硬體,採用自行設計的儲存型電池,但是我還是對這個電池有一點點質疑,難到時間到了不用更換嗎?

一個貨櫃裡面就是滿滿的SERVER,和我們的DATA,這些貨櫃裡面裝設的,不只是硬體,內部的資料才是驚人的可怕啊!1160個SERVER,真是有點給他誇張,不過套句鄉民的意見,"google,不意外!"


Javascript 和 Flash之間的戰爭....

這一篇真的就只能用中文來寫出我的感想了,話說最近看到一篇ZDnet的報導,裡面指出Javascript和Flash之間的一場戰爭,裡面包含了瀏覽器之間的戰爭,還有Javascrip、Flash、slivelight,其中Flash和Slivelight其實是屬於同樣的產品。

雖然說微軟一直想要在軟體界稱王,確實他也做到了,不過現在是web的時代,目前看來好像還沒有一點頭緒誰才是真正的領先者,也許google勝出的味道多了一些,畢竟他是真正讓使用者感覺到web新體驗的角色,而其中google的很多產品威脅到了一般軟體的存在,也漸漸改變大家對於web的觀感。

不就是瀏覽器的戰爭和web之間的搶食,那跟javascript、flash、sliverlight有何關係呢?其實對於使用者來說這三個扮演的角色都是讓使用者可以感受到web威力的人,很多人都在說web2.0,但具體的來說web2.0這種東西並不存在,讓這些實現的關鍵主要是頻寬的提升,電腦硬體架構快速,儲存容量增加,價格也越來越低廉,種種因素導致這些老技術重新被提及。

在五六年前,如果你的網頁使用XMLhttpRequest可能會被罵死,因為網頁可能因為傳輸量過大的關係,導致整個瀏覽器Crash,但是現在如果你不使用這種技術,讓使用者一直更新頁面,那該死的就是VD(vitraul disgner),Flash和sliverlight也是一樣,頻寬不足,光下載個軟體都要等這麼久了,更何況多個plug-in,還要等待影音的loading,這真是天大的笑話。

而我個人覺得雖然javascript在維護和撰寫上其實跟flash相較起來,是困難了許多。但是plug終究是plug並不是每個user都願意install,或者是想要去學習如何安裝plug,要叫user為了一個新的服務去學習(安裝)一種東西,那他寧可使用舊有的方式。

再者javascript是屬於開放式的程式,任何有心的人想要去學習都不是一件困難事。有很多公司也開始朝著簡化javascript在努力中,例如:Yahoo, google, jQuery, prototype......,因為他們的整合與努力,讓front-side的程式撰寫者有多些選擇,省下許多時間解決瑣碎的問題,尤其這些都是open可以經由群體的力量讓javascript漸入佳境。

另外漸進式的網路模式其實還是…

Trying open MSI U90

Originally, I planed to add a DDR ram in my MSI U90. I went to TK3c buying a 2GB DDR ram, and fast get home. The first problem was how take apart U90, I was trying open it carefully, I was afraid to broken it.

Finally, I did. And put Ram in U90, Second fire up the note. Oh no ,nothing appear. What was happend? Try again. the same result. OK, I took apart Ram, open it. Unbelievable, It work. I want to figure out what is going on. I think maybe there is a ram in the note.

So I open the case , fan, wireless of the note. But I did not find the ram. Oh my god, Where is the Ram? Show me. Finally, I found it. Guest what. Ram was fixed next to the plug slot. I did not find it as the first time opening note.

I mash all the desk, and there were many screws. It is a big mistake. But I still can not add Ram in my note. How can I do now?

建立XMLHttpRequest pool

在ajax應用中,通常一個面要同時發送多個請求,如果只有一個XMLHttpRequest物件,前面的請求還未完成,後面的就會把前面的覆蓋掉,如果每次都創建一個新的XMLHttpRequest物件,也會造成浪費。解決的辦法就是創建一個XMLHttpRequset的物件集區,如果池裡有空閒的物件,則使用此物件,否則將創建一個新的物件。
下麵是我最近寫的一個簡單的類:

/**
* XMLHttpRequest Object Pool
*
* @author legend <legendsky@hotmail.com>
* @link http://www.ugia.cn/?p=8
* @Copyright www.ugia.cn
*/

var XMLHttp = {
_objPool: [],

_getInstance: function ()
{
for (var i = 0; i < this._objPool.length; i ++)
{
if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == )
{
return this._objPool[i];
}
}

// IE中不支援push方法
this._objPool[this._objPool.length] = this._createObj();

return this._objPool[this._objPool.length - ];
},

_createObj: function ()
{
if (window.XMLHttpRequest)
{
var objXMLHttp = new XMLHttpRequest();

}
else
{
var MSXML = [’MSXML.XMLHTTP..0’, ’MSXML.XMLHTTP..0’, ’MSXML.XML…

安裝獨立的 IE7 正式中文版(免安裝)

轉錄于:安裝獨立的 IE7 正式中文版

因為編寫網頁的關係,可是很多時候瀏覽器版本不同,造成需要切換來切換去,看看自己設計的版面和程式,在所有的瀏覽器能否使用,因此IE6 IE7這兩個兄弟的共存變得很重要。

還好網路上有搜尋到這篇,讓我的IE可以同時兼容,真是太感激了XD


以下是轉載的內容

讓我為各位解說一下如何安裝獨立版的 IE7:

   1.第一步當然是先把 IE 7 for XP SP2 中文版下載回來,檔案名稱為 IE7-WindowsXP-x86-cht.exe ,這裡我將它放到 D:Software 下 (你可以自行決定儲放的位置) 。

   2.進到 DOS 命令列視窗,用以下指令把 IE7-WindowsXP-x86-cht.exe 解開至 D:\SoftwareIE7 :(「DOS 命令列視窗」就是"開始/附屬應用程式/命令提示字元"。或是直接用"開始/執行"亦可。)

  IE7-WindowsXP-x86-cht.exe /x

   3.再下載 IE7 standalone 的 zip 檔,並將它解開,裡面會有一個 IE7s.exe 和一個 LICENSE.rtf 。 (注意,我們只需要 zip 檔,不要下載到安裝檔了。)

   4.把上一步驟的 IE7s.exe 放到 D:SoftwareIE7 裡。

   5.把整個 D:\Software 的 IE7 資料夾搬到...隨便你放哪...我是擺在 C:Program Files 下。

   6.幫 C:\Program\FilesIE7\IE7s.exe 建立一個捷徑,然後把這個捷徑移到桌面上。


媽啊!我幫Google換衣服啦

有一天我打開我的Gmail發現一件事情,媽啊!我的Google mail怎麼不一樣了XD

揪~竟,是怎麼回事,讓我們繼續看下去

原來都是這個網站搞的鬼


那到底是怎麼發生的呢?

首先您必須要具備幾個條件
೧. 使用Firefox3.0以上版本
೨. 具有Google account

再來跳轉到這個網站按此



按下install允許安裝Firefox的plug-in,重新啟動Firefox,以上的動作就完成了。

接下來再進去Gmail瞧一下,哇!不一樣勒!



下載這個plug-in會發現Google mail, reader, calendar 外觀都會改變,如果不想要這樣的格式,也是OK的啦。看看你的Firefox右下角有一個圖示,按下去將你要的服務取消掉就可以嚕。

CSS 切割多餘字元在 DIV內

很多時候都會遇到想要只顯示一行
但是無奈字串就是會給你斷行繼續顯示

要切割字元一定要用JS嗎?

不用
用這個CSS語法即可搞定

white-space:nowrap;
overflow:hidden;

/*底下這行IE專用,可顯示...的文字*/

text-overflow:ellipsis;

不過前提是要設定寬度width,超過寬度就會以...顯示


遠端server不能更改ini的辦法

有很多時候我們要測試一些東西,但是因為無法控制系統
所以導致很多除錯的資訊無法輸出

可以嘗試一下這個語法

ini_set()

範例:
//顯示錯誤訊息

ini_set('display_errors', 1);

只有 Changeable 欄位為 PHP_INI_USER 或 PHP_INI_ALL 才可以接受 ini_set() 設定。

參考網址:
http://tw.php.net/ini_set