PHPUnit Basics Part1
PHPUnit Basics Part2
PHPUnit Basics Part3
PHPUnit Basics Part4
2010年10月18日 星期一
2010年10月4日 星期一
execute php.exe in PHP script
$script = $argv[1]
$params = implode(' ', array_slice($argv, 2));
$cmd = "{$script} {$params} > /dev/null &";
$output = array();
$return = 0;
exec("php {$cmd}", $output, $return);
exit((int)$return);
$params = implode(' ', array_slice($argv, 2));
$cmd = "{$script} {$params} > /dev/null &";
$output = array();
$return = 0;
exec("php {$cmd}", $output, $return);
exit((int)$return);
2010年10月3日 星期日
洋媳婦的教育方法...令中國婆婆大開眼界~
洋媳婦的教育方法...令中國婆婆大開眼界~
兒子去美國留學,畢業後定居美國。還給我找了個洋媳婦蘇珊。如今,小孫子托比已經3歲了。今年夏天,兒子為我申請了探親簽證。在美國待了三個月,洋媳婦蘇珊教育孩子的方法,令我這個中國婆婆大開眼界。
不吃飯就餓著
每天早上,托比醒來後,蘇珊把早餐往餐桌上一放,就自顧自地忙去了。托比會自己爬上凳子,喝牛奶,吃麵包片。吃飽後,他回自己的房間,在衣櫃裡找衣服、鞋子,再自己穿上。畢竟托比只有3歲,還搞不清楚子的正反面,分不清鞋子的左右腳。有一次托比又把褲子穿反了,我趕緊上前想幫他換,卻被蘇珊制止了。她說,如果他覺得不舒服,會自己脫下來,重新穿好;如果他沒覺得有什麼不舒服,那就隨他的便。那一整天,托比反穿著褲子跑來跑去,蘇姍像沒看見一樣。
又一會而,托比出去和鄰居家的小朋友玩,沒多久,氣喘吁吁地跑回家,對蘇珊說:「媽媽,露西說我的褲子穿反了,真的嗎?」露西是鄰居家的小姑娘,今年5 歲。蘇姍笑著說: 「是的,你要不要換回來?」托比點點頭,自己脫下褲子,仔細看了看,重新穿上了。從那以後,托比再也沒穿反過褲子。
我不禁想起,我的外孫女五六歲時不會用筷子,上小學時不會繫鞋帶。如今在上寄宿制初中的她,每個週末都要帶回家一大堆髒衣服呢。
一天中午,托比鬧情緒,不肯吃飯。蘇珊說了他幾句,憤怒地小托比一把將盤子推到了地上,盤子裡的食物灑了一地。蘇姍看著托比,認真地說:「看來你確實不想吃飯!記住,從現在到明天早上,你什麼都不能吃。」托比點點頭,堅定地回答:「Yes!」我在心裡暗笑,這母子倆,還都挺倔 !
下午,蘇珊和我商量,晚上由我做中國菜。我心領神會,托 比告別愛吃中國菜,一定是蘇珊覺得托比中午沒好好吃飯,想讓他晚上多吃點兒。
那天晚上我施展廚藝,做了托比最愛吃的糖醋裡脊、油悶大蝦,還用意大利麵做了中國式的涼麵。托比最喜歡吃那種涼麵,小小的人可以吃滿滿一大盤。
開始吃晚飯了,托比歡天喜地地爬上凳子。蘇珊卻走過來,拿走了他的盤子和刀叉,說:「我們已經約好了,今天你不能吃飯,你自己也答應了的。」托比看著面容嚴肅的媽媽,「哇」地一聲在哭起來,邊哭邊說:「媽媽,我餓,我要吃飯。」「不行,說過的話要算數。」蘇珊毫不心軟。
我心疼了,想替托比求情,說點好話,卻見兒子對我使眼色。想起我剛到美國時,兒子就跟我說,在美國,父母教育孩子時,別人千萬不要插手,即使是長輩也不例外。無奈,我! 只好保持沉默。
那頓飯,從始至終,可憐的小托比一直坐在玩具車裡,眼巴! 巴地看著我們三個大人狼吞虎嚥。我這才明白蘇珊讓我做中餐的真正用意。我相信,下一次,托比想發脾氣扔飯碗時,一定會想起自己餓著肚子看爸爸媽媽和奶奶享用美食的經歷。餓著肚子的滋味不好受,況且還是面對自己最喜愛的食物。
臨睡前,我和蘇珊一起去向托比道晚安。托比小心翼翼地問: 「媽媽,我很餓,現在我能吃中國面嗎?」蘇珊微笑著搖搖頭,堅決地說:「不!」托比嘆了口氣,又問:「那等我睡完覺睜開眼睛時,可以吃嗎?」「當然可以。」蘇珊溫柔地回答。托比甜甜地笑了。
大部分情況下,托比吃飯都很積極,他不想因為「罷吃」而錯過食物,再受餓肚子的苦。每當看到托比埋頭大口大口地! 吃飯,嘴上臉上粘的都是食物時,我就想起外孫女。她像托比這麼大時,為了哄她吃飯,幾個大人端著飯碗跟在她屁股後面跑,她還不買賬,還要談條件:吃完這碗買一個玩具,再吃一碗買一個玩具……
以其人之道,還治其人這身
有一天,我們帶托比去公園玩。很快,托比就和兩個女孩兒玩起了廚房遊戲。塑料小鍋、小鏟子、小盤子、小碗擺了一地。忽然,淘氣的托比拿起小鍋,使勁在一個女孩兒頭上敲了一下,女孩兒愣了一下,放聲大哭。另一個女孩兒年紀更小一些,見些情形,也被嚇得大哭起來。大概托比沒想到會有這麼嚴重的後果,站在一旁,愣住了。
蘇珊走上前,開清了事情的來龍去脈後,她一聲不吭,拿起小鍋,使勁敲到托比的頭上,托比沒防備,一下子跌坐在草地上,哇哇大哭起來。蘇珊問托比:「疼嗎?下次還這樣嗎?」 托比一邊哭,一邊拚命搖頭。? 說他以後再也不會這麼做了。
托比的舅舅送了他一輛淺藍色的小自行車,托比非常喜歡, 當成寶貝,不許別人碰。鄰居小姑娘露西是托比的好朋友,央求托比好幾次,要騎他的小車,托比都沒答應。
一次,幾個孩子一起玩時,露西趁托比不注意,偷偷騎上小車,揚長而去。托比發現後,氣憤地跑來向蘇珊告狀。蘇珊正和幾個孩子的母親一起聊天喝咖啡,便微笑著說:「你們的事情自己解決,媽媽可管不了。」托比無奈地走了。
過了一小會兒,露西騎著小車回來了。托比看到露西,一把將她推倒在地,搶過了小車。露西坐在地上大哭起來。蘇珊抱起露西,安撫了她一會兒。很快,露西就和別的小朋友興高采烈地玩了起來。
托比自己騎了會車,覺得有些無聊,看到那幾個孩子玩得那麼高興,他想加入,又覺得有些不好意思。他蹭到蘇珊身邊,嘟囔道:「媽媽,我想跟露西他們一起玩。」蘇珊不動聲色地說:「那你自己去找他們啦!」「媽媽,你陪我一起去。 」 托比懇求道。 「那可不行,剛才是你把露西弄哭的,現在你又想和大家玩,就得自己去解決問題。」
托比騎著小車慢慢靠近露西,快到她身邊時,又掉頭回來。來回好幾次,不知道從什麼時候開始,托比和露西又笑逐顏開,鬧成了一團。
管教孩子是父母的事
蘇珊的父母住在加利福尼亞州,聽說我來了,兩人開車來探望我們。家裡來了客人,托比很興奮,跑上跑下地亂竄。他把玩沙子用的小桶裝滿了水,提著小桶在屋裡四處轉悠。蘇珊警告了她好幾次,不要把水灑到地板上,托比置若罔聞。最後,托比還是把水桶弄倒了,水灑了一地。興奮的小托比不覺得自己做錯了事,還得意地光著腳丫踩水玩,把褲子全弄濕了。我連忙找出拖把準備拖地。蘇珊從我手中搶過拖把交給托比,對他說:「把地拖幹,把濕衣服脫下來,自己洗乾淨。」托比不願意,又哭又鬧的,蘇珊二話不說,直接把他拉到貯藏室,關了禁閉。聽到托比在裡面發出驚天動地的哭喊,我心疼壞了,想進去把他抱出來。托比的外婆卻攔住我,說: 「這是蘇珊的事。」
過了一會兒,托比不哭了,他在貯藏室裡大聲喊:「媽媽,我錯了。」蘇珊站在門外,問:「那你知道該怎麼做了嗎?」 「我知道。 」蘇珊打開門,托比從貯藏室走出來,臉上還掛著兩行淚珠。他拿起有他兩個高的拖把吃力地把地上的水拖乾淨。然後,他脫下褲子,拎在手上,光著屁股走進洗手間,稀里嘩啦地洗起衣服來。
托比的外公外婆看著表情驚異的我,意味深長地笑了。這件事讓我感觸頗深。在很多中國家庭,父母管教孩子時,常常會引起「世界大戰」,往往是外婆外公護,爺爺奶奶攔! ! 夫妻吵架,雞飛狗跳。
後來,我和托比的外公外婆聊天時,提到這件事,托比的外公說了一段話,讓我印象深刻。他說,孩子是父母的孩子,首先要尊重父母對孩子的教育方式。孩子雖然小,卻是天生的外交家,當他看到家庭成員之間出現分歧時,他會很聰明地鑽空子。這不僅對改善他的行為毫無益處,反而會導致問題越來越嚴重,甚至帶來更多別的問題。而且,家庭成員之間發生衝突,不和諧的家庭氛圍會帶給孩子更多的不安全感,對孩子的心理髮展產生不利影響。所以,無論是父輩與祖輩在教育孩子的問題上發生分歧,還是夫妻兩人的教育觀念有差異,都不能在孩子麵前發生衝突。
托比的外公外婆在家裡住了一週,準備回加利福尼亞了。臨走前兩天,托比的外公鄭重地問女兒:「托比想要一輛玩具挖掘機,我可以買給他嗎?」蘇珊想了想,說:「你們這次來,已經送給他一雙旱冰鞋作為禮物了,到聖誕節時,再買玩具挖掘機當禮物送給他吧!」
我不知道托比的外公是怎麼告訴小傢伙的,後來我帶托比去超市,他指著玩具挖掘機說:「外公說,聖誕節時,給我買這個當禮物。」語氣裡滿是欣喜和期待。
雖然蘇珊對托比如此嚴格,托比卻對媽媽愛得不得了。他在外面玩時,會採集一些好看的小花或者他認為漂亮的葉子,鄭重其事地送給媽媽;別人送給他禮物,他會叫媽媽和他一起拆開;有什麼好吃的,也總要留一半給媽媽。
想到很多中國孩子對父母的漠視與冷淡,我不得不佩服我的洋媳婦。在我看來,在教育孩子的問題上,美國媽媽有很多值得中國媽媽學習的地方。
摘自:http://www.facebook.com/note.php?note_id=136147763071005&id=100000071367945
兒子去美國留學,畢業後定居美國。還給我找了個洋媳婦蘇珊。如今,小孫子托比已經3歲了。今年夏天,兒子為我申請了探親簽證。在美國待了三個月,洋媳婦蘇珊教育孩子的方法,令我這個中國婆婆大開眼界。
不吃飯就餓著
每天早上,托比醒來後,蘇珊把早餐往餐桌上一放,就自顧自地忙去了。托比會自己爬上凳子,喝牛奶,吃麵包片。吃飽後,他回自己的房間,在衣櫃裡找衣服、鞋子,再自己穿上。畢竟托比只有3歲,還搞不清楚子的正反面,分不清鞋子的左右腳。有一次托比又把褲子穿反了,我趕緊上前想幫他換,卻被蘇珊制止了。她說,如果他覺得不舒服,會自己脫下來,重新穿好;如果他沒覺得有什麼不舒服,那就隨他的便。那一整天,托比反穿著褲子跑來跑去,蘇姍像沒看見一樣。
又一會而,托比出去和鄰居家的小朋友玩,沒多久,氣喘吁吁地跑回家,對蘇珊說:「媽媽,露西說我的褲子穿反了,真的嗎?」露西是鄰居家的小姑娘,今年5 歲。蘇姍笑著說: 「是的,你要不要換回來?」托比點點頭,自己脫下褲子,仔細看了看,重新穿上了。從那以後,托比再也沒穿反過褲子。
我不禁想起,我的外孫女五六歲時不會用筷子,上小學時不會繫鞋帶。如今在上寄宿制初中的她,每個週末都要帶回家一大堆髒衣服呢。
一天中午,托比鬧情緒,不肯吃飯。蘇珊說了他幾句,憤怒地小托比一把將盤子推到了地上,盤子裡的食物灑了一地。蘇姍看著托比,認真地說:「看來你確實不想吃飯!記住,從現在到明天早上,你什麼都不能吃。」托比點點頭,堅定地回答:「Yes!」我在心裡暗笑,這母子倆,還都挺倔 !
下午,蘇珊和我商量,晚上由我做中國菜。我心領神會,托 比告別愛吃中國菜,一定是蘇珊覺得托比中午沒好好吃飯,想讓他晚上多吃點兒。
那天晚上我施展廚藝,做了托比最愛吃的糖醋裡脊、油悶大蝦,還用意大利麵做了中國式的涼麵。托比最喜歡吃那種涼麵,小小的人可以吃滿滿一大盤。
開始吃晚飯了,托比歡天喜地地爬上凳子。蘇珊卻走過來,拿走了他的盤子和刀叉,說:「我們已經約好了,今天你不能吃飯,你自己也答應了的。」托比看著面容嚴肅的媽媽,「哇」地一聲在哭起來,邊哭邊說:「媽媽,我餓,我要吃飯。」「不行,說過的話要算數。」蘇珊毫不心軟。
我心疼了,想替托比求情,說點好話,卻見兒子對我使眼色。想起我剛到美國時,兒子就跟我說,在美國,父母教育孩子時,別人千萬不要插手,即使是長輩也不例外。無奈,我! 只好保持沉默。
那頓飯,從始至終,可憐的小托比一直坐在玩具車裡,眼巴! 巴地看著我們三個大人狼吞虎嚥。我這才明白蘇珊讓我做中餐的真正用意。我相信,下一次,托比想發脾氣扔飯碗時,一定會想起自己餓著肚子看爸爸媽媽和奶奶享用美食的經歷。餓著肚子的滋味不好受,況且還是面對自己最喜愛的食物。
臨睡前,我和蘇珊一起去向托比道晚安。托比小心翼翼地問: 「媽媽,我很餓,現在我能吃中國面嗎?」蘇珊微笑著搖搖頭,堅決地說:「不!」托比嘆了口氣,又問:「那等我睡完覺睜開眼睛時,可以吃嗎?」「當然可以。」蘇珊溫柔地回答。托比甜甜地笑了。
大部分情況下,托比吃飯都很積極,他不想因為「罷吃」而錯過食物,再受餓肚子的苦。每當看到托比埋頭大口大口地! 吃飯,嘴上臉上粘的都是食物時,我就想起外孫女。她像托比這麼大時,為了哄她吃飯,幾個大人端著飯碗跟在她屁股後面跑,她還不買賬,還要談條件:吃完這碗買一個玩具,再吃一碗買一個玩具……
以其人之道,還治其人這身
有一天,我們帶托比去公園玩。很快,托比就和兩個女孩兒玩起了廚房遊戲。塑料小鍋、小鏟子、小盤子、小碗擺了一地。忽然,淘氣的托比拿起小鍋,使勁在一個女孩兒頭上敲了一下,女孩兒愣了一下,放聲大哭。另一個女孩兒年紀更小一些,見些情形,也被嚇得大哭起來。大概托比沒想到會有這麼嚴重的後果,站在一旁,愣住了。
蘇珊走上前,開清了事情的來龍去脈後,她一聲不吭,拿起小鍋,使勁敲到托比的頭上,托比沒防備,一下子跌坐在草地上,哇哇大哭起來。蘇珊問托比:「疼嗎?下次還這樣嗎?」 托比一邊哭,一邊拚命搖頭。? 說他以後再也不會這麼做了。
托比的舅舅送了他一輛淺藍色的小自行車,托比非常喜歡, 當成寶貝,不許別人碰。鄰居小姑娘露西是托比的好朋友,央求托比好幾次,要騎他的小車,托比都沒答應。
一次,幾個孩子一起玩時,露西趁托比不注意,偷偷騎上小車,揚長而去。托比發現後,氣憤地跑來向蘇珊告狀。蘇珊正和幾個孩子的母親一起聊天喝咖啡,便微笑著說:「你們的事情自己解決,媽媽可管不了。」托比無奈地走了。
過了一小會兒,露西騎著小車回來了。托比看到露西,一把將她推倒在地,搶過了小車。露西坐在地上大哭起來。蘇珊抱起露西,安撫了她一會兒。很快,露西就和別的小朋友興高采烈地玩了起來。
托比自己騎了會車,覺得有些無聊,看到那幾個孩子玩得那麼高興,他想加入,又覺得有些不好意思。他蹭到蘇珊身邊,嘟囔道:「媽媽,我想跟露西他們一起玩。」蘇珊不動聲色地說:「那你自己去找他們啦!」「媽媽,你陪我一起去。 」 托比懇求道。 「那可不行,剛才是你把露西弄哭的,現在你又想和大家玩,就得自己去解決問題。」
托比騎著小車慢慢靠近露西,快到她身邊時,又掉頭回來。來回好幾次,不知道從什麼時候開始,托比和露西又笑逐顏開,鬧成了一團。
管教孩子是父母的事
蘇珊的父母住在加利福尼亞州,聽說我來了,兩人開車來探望我們。家裡來了客人,托比很興奮,跑上跑下地亂竄。他把玩沙子用的小桶裝滿了水,提著小桶在屋裡四處轉悠。蘇珊警告了她好幾次,不要把水灑到地板上,托比置若罔聞。最後,托比還是把水桶弄倒了,水灑了一地。興奮的小托比不覺得自己做錯了事,還得意地光著腳丫踩水玩,把褲子全弄濕了。我連忙找出拖把準備拖地。蘇珊從我手中搶過拖把交給托比,對他說:「把地拖幹,把濕衣服脫下來,自己洗乾淨。」托比不願意,又哭又鬧的,蘇珊二話不說,直接把他拉到貯藏室,關了禁閉。聽到托比在裡面發出驚天動地的哭喊,我心疼壞了,想進去把他抱出來。托比的外婆卻攔住我,說: 「這是蘇珊的事。」
過了一會兒,托比不哭了,他在貯藏室裡大聲喊:「媽媽,我錯了。」蘇珊站在門外,問:「那你知道該怎麼做了嗎?」 「我知道。 」蘇珊打開門,托比從貯藏室走出來,臉上還掛著兩行淚珠。他拿起有他兩個高的拖把吃力地把地上的水拖乾淨。然後,他脫下褲子,拎在手上,光著屁股走進洗手間,稀里嘩啦地洗起衣服來。
托比的外公外婆看著表情驚異的我,意味深長地笑了。這件事讓我感觸頗深。在很多中國家庭,父母管教孩子時,常常會引起「世界大戰」,往往是外婆外公護,爺爺奶奶攔! ! 夫妻吵架,雞飛狗跳。
後來,我和托比的外公外婆聊天時,提到這件事,托比的外公說了一段話,讓我印象深刻。他說,孩子是父母的孩子,首先要尊重父母對孩子的教育方式。孩子雖然小,卻是天生的外交家,當他看到家庭成員之間出現分歧時,他會很聰明地鑽空子。這不僅對改善他的行為毫無益處,反而會導致問題越來越嚴重,甚至帶來更多別的問題。而且,家庭成員之間發生衝突,不和諧的家庭氛圍會帶給孩子更多的不安全感,對孩子的心理髮展產生不利影響。所以,無論是父輩與祖輩在教育孩子的問題上發生分歧,還是夫妻兩人的教育觀念有差異,都不能在孩子麵前發生衝突。
托比的外公外婆在家裡住了一週,準備回加利福尼亞了。臨走前兩天,托比的外公鄭重地問女兒:「托比想要一輛玩具挖掘機,我可以買給他嗎?」蘇珊想了想,說:「你們這次來,已經送給他一雙旱冰鞋作為禮物了,到聖誕節時,再買玩具挖掘機當禮物送給他吧!」
我不知道托比的外公是怎麼告訴小傢伙的,後來我帶托比去超市,他指著玩具挖掘機說:「外公說,聖誕節時,給我買這個當禮物。」語氣裡滿是欣喜和期待。
雖然蘇珊對托比如此嚴格,托比卻對媽媽愛得不得了。他在外面玩時,會採集一些好看的小花或者他認為漂亮的葉子,鄭重其事地送給媽媽;別人送給他禮物,他會叫媽媽和他一起拆開;有什麼好吃的,也總要留一半給媽媽。
想到很多中國孩子對父母的漠視與冷淡,我不得不佩服我的洋媳婦。在我看來,在教育孩子的問題上,美國媽媽有很多值得中國媽媽學習的地方。
摘自:http://www.facebook.com/note.php?note_id=136147763071005&id=100000071367945
2010年9月29日 星期三
User Heat-「訪問者關注網頁的哪個段落」和「哪些區域被點擊」的系統
這個工具是調查「訪問者關注網頁的哪個段落」和「哪些區域被點擊」的系統,並且在系統上共享調查結果。
只要在網站上設置這工具後,就能免費查詢其他訪客如何閱覽您的網頁,透過熱影像圖來將結果可視化。 結果圖像會覆蓋於您的網頁顯示。 這個結果也公開於您網站的其他訪客。
官方網站:http://userheat.com/
只要在網站上設置這工具後,就能免費查詢其他訪客如何閱覽您的網頁,透過熱影像圖來將結果可視化。 結果圖像會覆蓋於您的網頁顯示。 這個結果也公開於您網站的其他訪客。
官方網站:http://userheat.com/
2010年9月23日 星期四
[Tool]線上預覽javascript framework作用 - jsFiddle
之前常常到黑暗執行緒大大的網站吸收新知,有時候看到一些很神奇的jQuery功能,
就會跑去黑大的Mini jQuery Lab試驗看看sample code,動手改改看sample code。
既不用下載東西,也不用擔心環境。
後來,在某個Group裡,發現有人推薦了一個網站,叫做 jsFiddle,
一開始還以為是像Fiddler之類工具,用來trace javascript的。
結果才發現,根本就是黑大的Mini jQuery Lab擴充版。
jsFiddle裡面提供了高達10種javascript framework的lab,且各個framework也提供了相當多版本供測試使用。
裡面的framework包括了:
Mootools
Mootools Core 1.1.2
Mootools Core 1.2.3
Mootools Core 1.2.4
Mootools Core 1.3 (nightly)
jQuery
jQuery 1.2.6
jQuery 1.3.2
jQuery 1.4 (nightly)
jQuery 1.4.2
Prototype
Prototype 1.6.1.0
YUI
YUI 2.7.0
YUI 2.8.0r4
YUI 3 (min)
Glow
Glow Core 1.7.0
Vanilla
Vanilla JS
Dojo
Dojo 1.3
Dojo 1.4
Processing.js
Processing.js 0.6
ExtJS
ExtJS Core 3.0.0
ExtJS Core 3.1.0
RaphaelJS
RaphaelJS 1.3.1
可選擇的項目請見下圖:
選好你要測試的framework後,就可以開始將HTML、CSS以及要測試的javascript寫上去,
TidyUp可以幫忙排版,點了Run之後,就可以看到執行的結果。
而Save as new,jsFiddle則會提供一個網址,例如:http://jsfiddle.net/gtyvv/
並且會提供一個Embed on your page的
就會跑去黑大的Mini jQuery Lab試驗看看sample code,動手改改看sample code。
既不用下載東西,也不用擔心環境。
後來,在某個Group裡,發現有人推薦了一個網站,叫做 jsFiddle,
一開始還以為是像Fiddler之類工具,用來trace javascript的。
結果才發現,根本就是黑大的Mini jQuery Lab擴充版。
jsFiddle裡面提供了高達10種javascript framework的lab,且各個framework也提供了相當多版本供測試使用。
裡面的framework包括了:
Mootools
Mootools Core 1.1.2
Mootools Core 1.2.3
Mootools Core 1.2.4
Mootools Core 1.3 (nightly)
jQuery
jQuery 1.2.6
jQuery 1.3.2
jQuery 1.4 (nightly)
jQuery 1.4.2
Prototype
Prototype 1.6.1.0
YUI
YUI 2.7.0
YUI 2.8.0r4
YUI 3 (min)
Glow
Glow Core 1.7.0
Vanilla
Vanilla JS
Dojo
Dojo 1.3
Dojo 1.4
Processing.js
Processing.js 0.6
ExtJS
ExtJS Core 3.0.0
ExtJS Core 3.1.0
RaphaelJS
RaphaelJS 1.3.1
可選擇的項目請見下圖:
選好你要測試的framework後,就可以開始將HTML、CSS以及要測試的javascript寫上去,
TidyUp可以幫忙排版,點了Run之後,就可以看到執行的結果。
而Save as new,jsFiddle則會提供一個網址,例如:http://jsfiddle.net/gtyvv/
並且會提供一個Embed on your page的
2010年9月16日 星期四
Yet Another JavaScript Testing Framework
Did you notice that there are a lot of JavaScript testing frameworks out there? Why has the JavaScript community not consolidated on a single JavaScript framework the way Java has on JUnit. My feeling is that all of these frameworks are good at something but none solve the complete package. Here is what I want out of JavaScript unit-test framework:
I want to edit my JavaScript code in my favorite IDE, and when I hit Ctrl-S, I want all of the tests to execute across all browsers and return the results immediately.
I don’t know of any JavaScript framework out there which will let me do what I want. In order to achieve my goal I need a JavaScript framework with these three features:
Command Line Control
Most JavaScript test runners consist of JavaScript application which runs completely in the browser. What this means in practice is that I have to go to the browser and refresh the page to get my results. But browsers need an HTML file to display, which means that I have to write HTML file which loads all of my production code and my tests before I can run my tests. Now since browsers are sandboxes, the JavaScript tests runner can only report the result of the test run inside the browser window for human consumption only. This implies that 1) I cannot trigger running of the tests by hitting Ctrl-S in my IDE, I have to Alt-tab to Browser, hit refresh and Alt-tab back to the IDE and 2) I cannot display my test result in my IDE, the results are in the browser in human readable form only.
On my continuous build machine I need to be able to run the same tests and somehow get the failures out of the browser and on to the status page. Most JavaScript test runners have a very poor story here, which makes integrating them into a continuous build very difficult.
What we need, is the ability to control test execution from command line so that I can trigger it from my IDE, or my continuous build machine. And I need test failures to be reported on the command line (not inside the browser where they are unreachable) so that I can display them in IDE or in continuous build status page.
Parallel Execution
Since most JavaScript test runners run fully in the browser I can only run my test on one browser at a time during my development process. In practice this means that you don’t find out about failures in other browser until you have checked in the code to your continuous build machine (if you were able to set it up) and your code executes on all browsers. By that point you have completely forgotten about what you have written and debugging becomes a pain. When I run my test I want to run them on all browser platforms in parallel.
Instant Feedback in IDE
After I hit Ctrl-S on my IDE, my patience for test results is about two seconds before I start to get annoyed. What this means in practice is that you can not wait until the browser launches and runs the tests. The browser needs to be already running. Hitting refresh on your browser manually is very expensive since the browser needs to reload all of the JavaScript code an re-parse it. If you have one HTML file for each TestCase and you have hundred of these TestCases, The browser may be busy for several minutes until it reloads and re-parses the same exact production code once for each TestCase. There is no way you can fit that into the patience of average developer after hitting Ctrl-S.
Introducing JsTestDriver
Jeremie Lenfant-engelmann and I have set out to build a JavaScript test runner which solves exactly these issues so that Ctrl-S causes all of my JavaScript tests to execute in under a second on all browsers. Here is how Jeremie has made this seemingly impossible dream a reality. On startup JsTestDriver captures any number of browsers from any number of platforms and turns them into slaves. As slave the browser has your production code loaded along with all of your test code. As you edit your code and hit Ctrl-S the JsTestDriver reloads only the files which you have modified into the captured browsers slaves, this greatly reduces the amount of network traffic and amount of JavaScript re-parsing which the browser has to do and therefore greatly improves the test execution time. The JsTestDriver than runs all of your test in parallel on all captured browsers. Because JavaScript APIs are non-blocking it is almost impossible for your tests to run slow, since there is nothing to block on, no network traffic and no re-parsing of the JavaScript code. As a result JsTestDriver can easily run hundreds of TestCases per second. Once the tests execute the results are sent over the network to the command which executed the tests either on the command line ready to be show in you IDE or in your continuous build.
摘自:http://misko.hevery.com/2009/05/22/yet-another-javascript-testing-framework/
I want to edit my JavaScript code in my favorite IDE, and when I hit Ctrl-S, I want all of the tests to execute across all browsers and return the results immediately.
I don’t know of any JavaScript framework out there which will let me do what I want. In order to achieve my goal I need a JavaScript framework with these three features:
Command Line Control
Most JavaScript test runners consist of JavaScript application which runs completely in the browser. What this means in practice is that I have to go to the browser and refresh the page to get my results. But browsers need an HTML file to display, which means that I have to write HTML file which loads all of my production code and my tests before I can run my tests. Now since browsers are sandboxes, the JavaScript tests runner can only report the result of the test run inside the browser window for human consumption only. This implies that 1) I cannot trigger running of the tests by hitting Ctrl-S in my IDE, I have to Alt-tab to Browser, hit refresh and Alt-tab back to the IDE and 2) I cannot display my test result in my IDE, the results are in the browser in human readable form only.
On my continuous build machine I need to be able to run the same tests and somehow get the failures out of the browser and on to the status page. Most JavaScript test runners have a very poor story here, which makes integrating them into a continuous build very difficult.
What we need, is the ability to control test execution from command line so that I can trigger it from my IDE, or my continuous build machine. And I need test failures to be reported on the command line (not inside the browser where they are unreachable) so that I can display them in IDE or in continuous build status page.
Parallel Execution
Since most JavaScript test runners run fully in the browser I can only run my test on one browser at a time during my development process. In practice this means that you don’t find out about failures in other browser until you have checked in the code to your continuous build machine (if you were able to set it up) and your code executes on all browsers. By that point you have completely forgotten about what you have written and debugging becomes a pain. When I run my test I want to run them on all browser platforms in parallel.
Instant Feedback in IDE
After I hit Ctrl-S on my IDE, my patience for test results is about two seconds before I start to get annoyed. What this means in practice is that you can not wait until the browser launches and runs the tests. The browser needs to be already running. Hitting refresh on your browser manually is very expensive since the browser needs to reload all of the JavaScript code an re-parse it. If you have one HTML file for each TestCase and you have hundred of these TestCases, The browser may be busy for several minutes until it reloads and re-parses the same exact production code once for each TestCase. There is no way you can fit that into the patience of average developer after hitting Ctrl-S.
Introducing JsTestDriver
Jeremie Lenfant-engelmann and I have set out to build a JavaScript test runner which solves exactly these issues so that Ctrl-S causes all of my JavaScript tests to execute in under a second on all browsers. Here is how Jeremie has made this seemingly impossible dream a reality. On startup JsTestDriver captures any number of browsers from any number of platforms and turns them into slaves. As slave the browser has your production code loaded along with all of your test code. As you edit your code and hit Ctrl-S the JsTestDriver reloads only the files which you have modified into the captured browsers slaves, this greatly reduces the amount of network traffic and amount of JavaScript re-parsing which the browser has to do and therefore greatly improves the test execution time. The JsTestDriver than runs all of your test in parallel on all captured browsers. Because JavaScript APIs are non-blocking it is almost impossible for your tests to run slow, since there is nothing to block on, no network traffic and no re-parsing of the JavaScript code. As a result JsTestDriver can easily run hundreds of TestCases per second. Once the tests execute the results are sent over the network to the command which executed the tests either on the command line ready to be show in you IDE or in your continuous build.
摘自:http://misko.hevery.com/2009/05/22/yet-another-javascript-testing-framework/
2010年9月13日 星期一
[小技巧] Mac OS X 內建輸入法碼查找及自建功能
今天小弟無意中發現MAC OS X 於中文輸入狀態下可使用快捷鍵開啟輸入法碼查詢框, 此查詢框可讓使用者即時查詢4種中文輸入法的代碼,包括倉頡、速成、拼音與注音,方法如下:
1.中文輸入狀態下,點選文字框然後同時按下[shift] + [option] + [L] 鍵
2.系統會彈出以下框框,使用者可輸入最多兩個字作查詢
3. 如下圖
另外在同一狀態下同時按下[shift] + [option] + [P] 鍵
即可彈出自創輸入法的教學板面 如下圖:
最後一個設定是小弟自轉用Mac 以後久違已久,一直以為Mac OS 欠逢的功能,就是中文詞語聯想;即輸入一字自動彈出聯想詞。其實使用者於同一狀態下只要同時按下[shift] + [option] + [U] 鍵,再在彈出的設定上勾選show associated words即可,而且功能強大,包括可透過Dictionaries Tab 勾選聯想字來源。
MAC!COOL~
摘自:http://www.macuknow.com/node/6038
1.中文輸入狀態下,點選文字框然後同時按下[shift] + [option] + [L] 鍵
2.系統會彈出以下框框,使用者可輸入最多兩個字作查詢
3. 如下圖
另外在同一狀態下同時按下[shift] + [option] + [P] 鍵
即可彈出自創輸入法的教學板面 如下圖:
最後一個設定是小弟自轉用Mac 以後久違已久,一直以為Mac OS 欠逢的功能,就是中文詞語聯想;即輸入一字自動彈出聯想詞。其實使用者於同一狀態下只要同時按下[shift] + [option] + [U] 鍵,再在彈出的設定上勾選show associated words即可,而且功能強大,包括可透過Dictionaries Tab 勾選聯想字來源。
MAC!COOL~
摘自:http://www.macuknow.com/node/6038
訂閱:
文章 (Atom)