2008年4月30日 星期三

Ways to hack server

How They Hack Your Website: Overview of Common Techniques
SQL Injection
Cross Site Scripting (XSS)
Authorization Bypass
Google Hacking
Password Cracking

粒子物理革命即將來臨

一旦我們用遠超出目前粒子加速器所及的能量,去檢驗準粒子物理模型,這模型就會開始出問題。所以無論大型強子對撞機有什麼發現,粒子物理必會進入新天地。
撰文╱奎格(Chris Quigg)
翻譯/高涌泉

重點提要
■大型強子對撞機(LHC)一旦開始探索未知的領域,一定會發現新穎又刺激的東西。
■粒子物理的標準模型需要一種稱為希格斯玻色子的粒子,或是其他扮演相同角色的替代粒子,而該粒子的質量則落在LHC所探索的能量範圍之內。希格斯粒子還會帶出深奧的問題,其答案也應該可以在相同能量範圍之內找到。
■這些現象環繞著對稱的問題。對稱是標準模型中交互作用的基礎,但是未必會永遠反應於模型的運作之上。了解對稱為何破缺,是主要的問題。

如果物理學家被迫要以一個字來說明建造大型強子對撞機(LHC)的理由,他們通常會回答「希格斯粒子」(Higgs particle)。希格斯粒子是大家關注的焦點,它是現今最成功的粒子理論中,剩下還沒有被找到的粒子。不過整個故事遠比這有趣得多。在粒子物理史上,新對撞機在能量上的躍升是前所未見的。我們不知道它會發現什麼,但是它所找到的東西以及所撞見的新問題,必將改變粒子物理的面貌,而且將影響相關的科學領域。

在這個新世界裡,我們希望能夠弄懂,將電磁交互作用與弱交互作用這兩種自然界中的力區分開來的,到底是什麼。這對於我們如何看待日常世界將有廣泛的影響。對於一些簡單又深奧的問題,我們將獲得更新的了解,像是為什麼有原子?為什麼有化學?為什麼能有穩定的結構?

尋找希格斯粒子是關鍵的一步,但它只是第一步而已。在這之外還存在著一些現象,它們或許可以澄清為何重力會遠比其他自然界的力還弱,並揭露充滿宇宙的神秘暗物質的面目。我們還可能更進一步了解物質的各種形式、時空的性質,以及外在形式相異的各類粒子所具有的內在統合性質。這些問題彼此似乎都有關聯,而且也牽涉到當初引發物理學家預測出希格斯粒子的一堆問題。LHC將幫助我們改進這些問題,也會讓我們起步去找出答案。

以實驗驗證標準模型 粒子物理中的「標準模型」能夠解釋已知世界中的很多東西,而它的名稱也意味著它還在進展。標準模型是在進展快速的1970與1980年代建構出來的,當時一連串重要的實驗發現與新提出的理論得以相輔相成。很多粒子物理學家把過去15年看成是鞏固的年代,和更早快速前進的年代不一樣。然而,儘管標準模型已經獲得更多實驗的支持,可是也有越來越多現象超出了標準模型的範圍,同時新的理論想法也擴充了我們的概念,描繪出一個更豐富、更完備的世界觀的可能模樣。實驗與理論兩者持續搭配發展,意味著未來10年粒子物理將蓬勃發展,或許我們將來回頭看,會看到革命其實一直就在蘊釀。

依我們目前的了解,物質由夸克與輕子這兩大類粒子所構成,此外還要再加上四種已知基本力中的電磁力、強力與弱力(參見第34頁〈究竟什麼是物質?〉)。我們這裡暫且將重力放在一旁。夸克構成了質子與中子,並能產生與感受電磁力、強力與弱力。輕子中最著名的是電子,這類粒子不會感受到強力。夸克與輕子的區別在於夸克帶有顏色而輕子則否。所謂的顏色是和電荷類似的概念,這只是一種比喻,和普通的顏色沒有關係。

標準模型的指導原則是,它的方程式必須是對稱的。就好像無論你從什麼角度去看一顆球,它看起來都是同一個樣子。對於方程式來說,如果你改變定義方程式的觀點,方程式也必須維持不變。不僅如此,如果我們在時空中的不同點採取不同觀點,方程式也仍然保持不變。

當我們如果要求一個幾何物體具有對稱,此物體的形狀就必須受到嚴格的限制;一顆球如果有些凹凸,它就不可能從任何角度看起來都一樣。同樣地,方程式的對稱性也會對方程式設下嚴格的限制。這些對稱所導致的交互作用,則是由玻色子這種特殊粒子來傳遞的。

標準模型以這種方式顛覆了蘇利文的格言「功能決定形式」,而在標準模型裡卻是「形式決定功能」。換句話說,理論的形式(表現於方程式所定義出的對稱之中)決定了由理論來描述的功能(粒子間的交互作用)。例如,假設我們要求無論怎樣選擇定義夸克的顏色(而且這種選擇不會依時空點的不同而異),描述夸克的方程式必須保持不變,則這種要求就會導致強核力,強力是由八種稱為膠子的粒子所傳遞的。另外電磁力與弱力種力則整合成「電弱力」,而它們奠基於另一種對稱。電弱力是由四種粒子來傳遞:光子、Z玻色子、W+玻色子、W-玻色子。

以對稱破缺解釋電弱理論 電弱交互作用的理論是由格拉肖、溫伯格和薩萊姆所提出來的,他們以此獲得了1979年諾貝爾物理獎。弱力所涉及的是輻射性β衰變,不會作用在所有的夸克與輕子。每個夸克與輕子都還可再分成左旋與右旋兩類,兩者互為鏡像。β衰變力只會作用於左旋粒子,這件事發現於50多年前,現今我們還不了解原因。不同左旋粒子之間的對稱定義了電弱理論。

電弱理論在建構之初有兩項缺點。首先,它預測有四種傳遞長距力的粒子,這類粒子稱為規範玻色子;但是自然界只有一種長距力粒子,即光子。其他三種規範玻色子都只會傳遞短距力,範圍約在10-17公尺之內,也就是比質子半徑的1/100還小些。根據海森堡測不準原理,這意味著這些傳遞短距力的粒子帶有約等於1000億電子伏特(即100GeV)的質量。第二項缺點是夸克之間與輕子之間的家族對稱,意味著夸克和輕子不能帶有質量,然而夸克與輕子都是有質量的粒子。

科學人雜誌網站

Disaster Handling in MySQL

MySQL Conference Liveblogging: Disaster Is Inevitable - Are You Prepared? (Tuesday 4:25PM) | beer planet
# Suicide

* having no backups
* depending on slaves for backup
* keeping backups on same SAN
* having a single DBA - Frank didn't like this one at all
* not keeping binlogs

# Restoring from backup

* how much time?
* uncompressed backup ready to mount?
* separate network for recovery?

# In Fotolog, 1TB of data was severely hit.

* first problem: backup was highly compressed (tar.gz)
* uncompressing took hours
* so keep uncompressed backups (at least last N days)
* it should be mountable, rather than transferable

# Frank going over recovery modes at http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
# Row by row recovery

* row by row recovery (get the range of ids)
* custom scripts
* may not be able to use primary key
* foreign key based retrieval faster
* lose 4 seconds for each crashed record (in Fotolog, for some reason some values were crashing mysqld)

# Lessons

* SANs make sense (in some environments)
* try to replicate the whole SAN (in Fotolog, a SAN actually failed because of a bug in its maintenance program)
* everything will fail at some point
* backup everything (cron jobs, my.cnf, custom scripts)
* have backup in a form ready to restore
* don't count replication a backup
* be worried about 'routine' operations

# Peter Zaitsev of Percona takes the stage to talk about his homegrown tools for InnoDB recovery

* innodb-tools - will recover even if mysqld doesn't start, for example if half of RAID0 fails or somebody deleted some data. innodb-tools will recover using InnoDB tablespaces.

如何像電腦科學家一樣思考

◎ 前言

David Beazley 著

作 為教育家、研究者及書籍作者,我很高興看到這本書的完成。Python 是個有趣並且非常易用的程式語言,在過去幾年裡,Python 逐漸地受到歡迎。Guido van Rossum 在十多年前開發了 Python,其簡單的語法與整體感覺則是得自於 ABC,這個 1980 年代發展的教學語言。然而,Python 也被設計成可以解決真實的問題,並且也從其他程式語言如 C++、Java、Modula-3 和 Scheme 等,借用了各式各樣的特徵。正因如此,Python 最顯而易見的特色之一就是它廣泛吸引了專業軟體開發者、科學工作者、研究者、藝術家及教育家。 雖然 Python 吸引了不同社群的人士,你可能還是會懷疑:為何選用 Python?或者為甚麼教導用 Python 撰寫程式? 回答這些問題可不簡單-特別是當大眾的意見都站在,如 C++ 和 Java 這些自討苦吃的選擇這一邊的時候。然而,我想最直接的答案就是用 Python 寫程式可以單純地得到許多樂趣,並且更有生產力。

當 我教授電腦科學課程時,我希望教學題材涵蓋重要概念,又能對學生來說有趣且迷人。可惜的是,程式設計入門課程目前傾向投注過多焦點在數學抽象概念上,且讓 學生因惱人問題而沮喪,如語法、編譯以及看起來晦澀難解的規則等低階細節。儘管這些抽象及形式,對專業軟體工程師和計畫繼續學習電腦科學的學生來說非常重 要,但在一個入門性的課程採取這種方式,大部分只會使電腦科學更無趣。教課的時候,我可不想面對一整間無精打采的學生。我寧願看到他們透過探索不同的想 法,採取有創意的方式,打破成規並從錯誤中學習,以嘗試解決有趣的問題。這麼做的原因是,我不想浪費半個學期試著釐清含糊的語法問題、難以理解的編譯器錯 誤訊息,或是一個程式可能造成一般性保護錯誤的數百種方式。

我喜歡 Python 的原因之一,就是它在實做與概念上取得了很好的平衡。既然 Python 是直譯的,初學者幾乎可以立刻學會這個語言,並做些美妙的事,而不會迷失在編譯與連結的問題中。更有甚者,Python 隨附大型的模組庫,能夠應用在各種工作上,包括網路程式設計到圖形處理等。具有如此實用的重點是吸引學生注意力的絕佳方式,並且能讓他們完成重要的專案。 然而,Python 也可以作為介紹重要電腦科學概念的優良基礎。由於 Python 完整支援程序和類別,便可逐步引導學生認識程序抽象化、資料結構,以及物件導向程式設計等課題,這些全都可以應用在往後 Java 或 C++ 的課程上。Python 還向函數型程式語言借了許多功能,可以用來介紹這些以往是在 Scheme 及 Lisp 的課堂上詳細介紹的概念。

讀 了 Jeffrey 的序文,我被他的評論所感動,Python 使他看見更高層次的成就以及較低層次的挫折,而他可以工作得更快且獲得較佳結果。儘管這些評論是指他的入門課程,我有時會以同樣的理由,將 Python 應用在芝加哥大學的進階研究所電腦科學課程。在這些課程裡,我不斷地面對將大量困難的課程資料,包含在極短的九星期學季中這種讓人氣餒的工作。雖然我必定 可以承受使用像 C++ 這種語言所帶來的大量痛苦及折磨,我常常發現這種方式有著不良的後果,特別是這些課程的主題不只是關於程式設計時。我發現使用 Python 讓我能夠較為集中在實際的主題上,同時也使學生能夠完成重要的課程作業。

雖然 Python 仍是年輕、發展中的語言,我相信它在教育上會有耀眼的未來。這本書在這方向上是重要的一步。

(David Beazley,芝加哥大學,Python Essential Reference 作者)


◎ 序言

Jeffrey Elkner 著

本書的存在歸功於網路及自由軟體運動所實現的合作方式。它的三位作者-一位大學教授、一位高中老師,以及一位專業程式設計師-尚未見過面,但是我們已經能夠緊密合作,並且受到許多願意付出時間與心力的傑出人士幫助,使得這本書更臻完善。

我們認為本書證明了此種合作方式的優點以及未來的可能性,而這樣的合作架構已經由 Richard Stallman 和自由軟體基金會運作多年。

◎ 我如何及為甚麼使用 Python

1999 年,大學委員會的「先修大學電腦科學課程」(Advanced Placement Computer Science)考試,第一次用 C++。和全國各地的許多高中一樣,維吉尼亞州阿靈頓郡約克敦高中的電腦科學課程也直接受到變更語言的決定影響,我就在此所高中任教。在此之前, Pascal 是我們一年級及先修課程的教學語言。為了和過去讓學生有兩年的時間接觸相同語言的作法一樣,我們決定在 1997 到1998 學年的一年級課程改用 C++ 教學,如此我們便能銜接大學委員會對下年度先修電腦科學課程的改變。

兩年後,我確信使用 C++ 為學生介紹電腦科學,不是個適當的選擇。雖然它的確是個非常強大的程式語言,但它也是個極度難以學習與教導的語言。我發現我自己不斷地對抗 C++ 困難的語法以及處理相同事務的多重方式,結果讓我無謂地失去了許多學生。我確信一定會有更適合一年級課程的語言,於是開始尋找一個可以替代 C++ 的選擇。

我需要一個能夠運作在我們 GNU/Linux 實驗室語言,但同時也要能夠運作在大部分學生家裡的 Windows 及 Macintosh 平台。我希望它是個自由軟體,好讓學生不管收入多少,都能夠在家使用。我想要一個專業程式設計師使用的語言,並且有個活躍的開發社群。它必須同時支援程序 式及物件導向程式設計。最重要的是,它必須容易學習和教授。當我以這些條件研究過許多選擇後,Python 脫穎而出成為此項工作的最佳候選人。

我 請一位聰明的約克敦高中學生,Matt Ahrens,嘗試使用 Python。他不但在兩個月內學會這個語言,而且寫了一個叫做 pyTicket 的應用程式,讓我們的人員可以透過網路回報技術問題。我知道 Matt 無法在這麼短的時間用 C++ 完成如此規模的應用程式,這項成就和 Matt 對 Python 的正面評價,顯示 Python 是我所尋找的解決方案。

◎ 尋找教科書

我決定在下年度的兩個電腦科學概論課程都使用 Python 後 ,最迫切的問題是缺少一本可用的教科書。

自 由文件解決了這個問題。Richard Stallman 在今年稍早向我介紹了 Allen Downey 這個人。我們兩個都寫信向 Richard 表達發展自由教育資料的興趣。Allen 已經寫了本一年級電腦科學的教科書, 如何像電腦科學家一樣思考。當我讀了這本書,我立即知道我想將它應用在我的課程中。它是我見過最清楚且最有幫助的電腦科學教科書。它突顯出在寫程式時的思 考過程,而非特定語言的功能。閱讀它使我馬上變成了更好的老師。

如何像電腦科學家一樣思考不只是一本出色的書,並且它是以 GNU 公眾授權發佈,這就是說它可以自由使用,並可依使用者需要修改。一旦我決定使用 Python 後,我想到我可以轉換 Allen 這本書的原始 Java 版本到新的語言。也許我本來無法自己撰寫一本教科書,但從 Allen 的書改寫使我可以達成這個工作,這同時也證明了在軟體上運作良好的協力發展模式,也可以使用在教學資料上。

過去兩年來編寫這本書對學生及 我都受益匪淺,而我的學生在此過程中扮演了一個重要的角色。既然我夠在有人發現拼寫錯誤或是閱讀困難的章節時立即修正,因此我在課文因他們的建議而修正 時,為他們加分,以鼓勵他們尋找本書的錯誤。這麼做有著雙重的好處,一是鼓勵他們更加小心地閱讀課文,另一個好處則是讓課文由它最重要的評論者-使用它學 習電腦科學的學生-徹底審查。

針對本書後半部關於物件導向程式設計的部分,我知道我需要一個比我更有實際程設經驗的人來使它更為正確。本書在大部分時間處於未完成的狀態,直到開放源碼社群再次提供完成它所需要的工具。

我 收到一封 Chris Meyers 寄來的電子郵件,表達他對本書的興趣。Chris 是一位專業程式設計師,他去年在奧勒崗州尤金市的 Lane 社區大學開始使用 Python 教授程式設計課程。教授這門課程讓 Chris 找到這本書,而且他立即開始幫忙本書的編撰。在學年結束前,他在我們的網站 http://openbookproject.net 設置了一個指南手冊計畫 ,叫做 Python for Fun (http://www.openbookproject.net/py4fun/),他並擔任指導教師,與我最頂尖的學生一起合作,帶領他們進入超出我 能力之外的領域。

◎ 用 Python 介紹程式設計

過去的兩年裡,轉換及使用如何像電腦科學家一樣思考的過程已經證實 Python 適於教導初學的學生。Python 極其簡化程式設計範例,並且讓重要的程式設計觀念較容易教授。

課文中的第一個範例說明了這一點。傳統的 Hello, world 程式,在本書的 C++ 版本看來如下:


#include <iostream.h>

void main()
{
cout << "Hello, world." << endl;
}

在 Python 版本中,它變成了:


print "Hello, World!"

雖 然這是個平凡的例子,Python 的優點脫穎而出。約克敦高中的「電腦科學第一級」沒有先修課程,所以許多看到此例的學生是第一次看到一個程式。他們之中有些人聽說電腦程式設計難以學習 後,無疑地有一點緊張。本書的 C++ 版本總是強迫我在兩個令人不滿意的選項中選擇:不是冒著一開始就使某些學生感到困惑或恐懼的風險,解釋 #include、void main()、{ 和 } 陳述,就是頂著相同的風險告訴他們現在不必擔心這些東西,我們稍後會再講到這些陳述。課程此時的教學目標是介紹學生程式設計陳述的概念,並讓他們撰寫第一 個程式,從而介紹程式設計環境。Python 程式正好擁有進行這些事所需的所有條件,既不多也不少。

比較本書不同版本對此程式的解釋文 字,更進一步說明了這對初學的學生有什麼樣的意義。C++ 版本對於 Hello, world! 有著十三段的解釋文字;在 Python 版本中只有兩段。最重要的是,缺少的那十一段文字並非講述電腦程式設計中的重要觀念,而是述說 C++ 語法的瑣碎細節。我發現整本書都發生同樣的事情。Python 更清楚的語法使整個段落顯得不必要,而直接消失在 Python 版本的課文中。

使 用像 Python 這種非常高階的語言,讓教師得以延後談論關於機器的低階細節,直到學生擁有所需的背景知識,以進一步理解這些細節。它因此使教學能夠先解決重要的事。關於 這點的絕佳範例之一便是 Python 處理變數的方式。在 C++ 中,變數是一個用來容納東西的位置的名稱。變數至少有部份必須宣告型態,因為必須先決定它們所指涉之位置的大小。如此一來,變數的概念就與機器硬體緊密結 合在一起。變數強大且基礎的概念對初學的學生來說,已經十分困難(同時就電腦科學及代數兩個層面來看)。位元組及位址對問題沒有幫助。在 Python 中,變數是指涉某個東西的名字。這對初學的學生來說,是個更為直覺的概念,並且也更為接近他們在數學課中學到的變數定義。今年我教導變數比過去少了很多困 難,而且我花費較少的時間指導使用它們有問題的學生。

Python 有助於教導和學習程式設計的另一個範例是它的函數語法。我的學生對理解函數總是有著極大的困難。主要問題集中在函數定義和函數呼叫間的差別,以及與其相關 的參數和引數的區別上。Python 以十分美麗的語法解決了這個問題。函數定義由關鍵字 def 開始,所以我只要告訴我的學生:當你定義一個函數,由 def 開始,後面加上你所定義函數的名稱;當你呼叫函數時,只要呼叫(輸入)它的名稱即可。參數和定義一起使用;引數則與呼叫一起使用。沒有傳回型態、參數型 態,或是參考及數值參數干擾,所以現在我可以用比之前少一半的時間教導函數,學生也理解得更好。

使用 Python 改善了我們的電腦科學課程對所有學生的成效。與我教授 C++ 的兩年相較,我發現平均成功標準提高了,同時也降低了挫敗的程度。我前進得更快,並且能得到更好的成果。有更多的學生結束這門課程時,能夠設計有意義的程 式,並且對這門課所產生的程式設計經驗帶著正面的看法。

◎ 建立社群

我收到全球使用這本書學習或教導程式語言的人寄來的電子郵件。一個使用者社群已經開始興起,而且有許多人寄來可應用在附屬網站 http://openbookproject.net/pyBiblio 的資料,為這個計畫做出貢獻。

隨 著 Python 的持續發展,我預期這個使用者社群會持續並加速成長。這個使用者社群的出現,及它對類似的教育者合作計畫所提出的可能性,對我來說是執行這個計畫最令人興 奮的部份。藉由共同工作,我們能夠增進可用資料的品質,並節省寶貴的時間。我邀請你參加我們的社群並期待你的來信。來信請寄至 jeff@elkner.net。

(Jeffrey Elkner 約克敦高中 阿靈頓郡,維吉尼亞州)

OSSF::自由軟體鑄造場 - 如何像電腦科學家一樣思考

UNO 的玩法

UNO 的玩法
在 cafe 經常玩的 UNO 遊戲, 相信大家很了解它的規則, 但是不知道有多少人會看遊戲附送的說明書, 看看官方發佈的規則是怎樣呢? UNO 的官方規則比較特別的地方, 是不能 Cut 牌, draw 4 不能無論何時都可以出. 不過經過時代的變遷, 人們不斷加入不少 "自家規例 (own rule)", 令玩 uno 變得更加激烈及好玩, 反正都沒有大型比賽, 只要玩得開心就足夠了.

1.) cut 牌 -- 相信現行所有人都會這樣玩, 確實可以增加娛樂性, 不玩 cut 牌的 uno 實在很悶啊.
2.) 抽牌後可即出 -- 因沒牌出而抽的罰牌, 那張罰牌在情況許何下可以即出. 這個其實是官方規例, 不過有一些人不玩這條規例.
3.) 功能卡可接 draw 卡 -- 可以利用 Skip 及 Reverse 彈走 Draw 卡給其他 player, 可以增加一些驚嚇感覺, 但很就難去"做底"固定的敵人.
4.) Draw 4 可接 Draw 2 -- 將罰牌的威力推至更高峰.
5.) 新起牌的次序 -- 遊戲開始時, 於牌庫出牌, 由各 player 鬥快接出牌, 之後由身邊的人鬥快出牌以定方向, 令每次新 turn 時也很刺激.
6.) 出一 pair Skip 的時間, 普遍玩法是由 skip 走兩個人的, 而有些人覺得這只是 "自 cut",只 skip 1 個人
7.) multi-card -- 這是我最想討論的 own rule. 到自己 turn 出牌時, 可以連出同字不同色的牌, 即可以紅 7 + 綠 7 一 pair 出.

數學筆記

數學真魅: 數學筆記(電子檔)
數學筆記(電子檔)

一、(完整!WORD檔) 小港高中數學科的莊豐收老師,把其第一至四冊複習講義開放給大家參考。
http://teacher.hkhs.kh.edu.tw/harvest/web/news.html
(第二冊第三章檔案有問題,打不開,其他都OK。)

另外逛其他老師的網頁時,發現一句很受用的話。
引用:

來自:這裡。

證嚴上人:制心一處,無事不辦 。

人做事的時候,常因為同時有很多事要處理而沒有專一的去做一件事,因此常常導致很多事都無法做好。因此應該排好輕重緩急的順序,一一去做,所有事將可迎刃而解。
reality » Blog Archive » Google App Engine - Google 的囉你命 3000
不久前名不經傳的新公司 Heroku 和 AppJet 分別推出了獨特的 Web Hosting 服務。前者使用 Ruby on Rails,後者使用自制的 Java Script framework ,兩者都在虛擬機器上執行,由他們免費提供 Database 和 CPU 的資源,用家不用煩惱管理伺服器、Deployment 和 Scaling 等問題。
Google App Engine 包括甚麼?

Google App Engine 也是類似的服務,但 Google 更豪爽:他保證免費用戶可得到 500 M 的儲存、足以支援每月 500 萬個 page view 的 CPU 和 bandwidth 、電郵整合、Google Account 認證、自動的 Scaling 和 Load Balancing。這早己超越了許多要付費的 hosting 服務了,這種前所未有的超級大贈送大概只有無限金錢的 Google 才辦得到!

Google App Engine 是以 sandbox 形式執行的軟件。在第一個版本中 Google App Engine 支援 Python (Google 稱將來會考慮其他的語言),這包括整個 Python 2.5.2 的標準類庫。除了以外還包括上述的 API ( email, google account, url fetch… etc) 以及一個叫 「webapp」的小型web framework 。如果這還不讓你覺得有甚麼特別,Google 還把整個 Django framework 都包進 App Engine 中。 Django 的地位就如 Rails 在 Ruby 的地位一樣。相對來說沒有RoR 那樣火紅,暫時只在 Python 的 community 有聲音。可以肯定這次 Google App Engine 會為它的社群帶來巨大的推動力,也許就是足以讓它引爆的 critical mass。
限制

如果我是 Yahoo! 或 MS,大概要立即收購 Heroku 去攪類似的虛擬平台。 哈哈,不過怎可能勝過 Google 呢。

ISC | DNS Performance Testing Project: OS benchmarks
Internet Systems Consortium
DNS Performance Testing project
Operating system evaluations
We will use Linux Gentoo 2.6.20.7 for further production testing. We brought
these numbers to the attention of the FreeBSD development team, and will
re-test when FreeBSD 7.1 is released.

2008年4月14日 星期一

Idea Grapes - Part 7
移除Windows Live Messenger的廣告

關於移除Windows Live Messenger(舊名是MSN Messenger)的廣告,從前我最愛用的是piaip的MSN Messenger No Advertisement,但自從他去當兵(?)後,軟體的更新速度漸漸不敵微軟。所以我也過著有MSN廣告的生活好一陣子了。

不過近來有兩件事情,又讓我興起非得移除它不可的念頭。其一是有些廣告(我記得其中一個是全家便利商店),滑鼠移過去的時候會跳出來變大,可能因為太耗資源的關係,會導致我的小狗機結凍個十幾秒。

其二是有一些廣告上的(藝)人,是我真心討厭的人,看電視如果碰到一定馬上轉掉不會多停留半秒。但是他們的大頭卻會一直在我的電腦螢幕出現,難道這就是所謂的「跑得了和尚跑不了廟」嗎……

於是我拜了大神,找到這篇:讓MSN Messenger的廣告消失不見的兩種方法。其中的第一個方法,又快又方便,利用封掉來自MSN兩個網域的資訊來擋廣告。四個步驟如下:

1. 找到路徑C:\WINDOWS\system32\drivers\etc\中的hosts這個檔案。(沒有副檔名,確實就是叫hosts)
2. 在檔案上按右鍵,選「開啟」。(選擇記事本之類的文字編輯器作為開啟的程式)
3. 在文件的最底下加入下面兩行字(請直接複製,前後不含任何空白或標點符號):
0.0.0.0 rad.msn.com
0.0.0.0 rad.live.com
4. 儲存檔案後關閉,應該不需重新開機即可生效。此後Windows Live Messenger的廣告欄位就會變成藍綠小人的天下了。

網頁易讀性:黃底綠字效果最佳 | Idea Grapes
網頁易讀性:黃底綠字效果最佳

1997年時,美國Stephen F. Austin州立大學提出了一份針對網頁文字易讀性(Readability Of Websites)的研究報告,其中有幾項有趣的發現:

* 黃底綠字在大部分的情況下效果最佳,但是若搭配斜體Arial,反而會變成最不容易閱讀的組合。
* Times New Roman平均而言,比Arial更易閱讀。
* 令人驚訝的是,閱讀黃底搭配綠色斜體的Times New Roman文字,反應時間最短。亦即讀得最快。
This text is the readability winner
* 閱讀灰底黑字的速度,比閱讀白底黑字快的多。

雖然這份報告距今已經相隔10年,但仍有其參考價值。以下是研究結果中,各種文字組合的反應時間:

網頁文字易讀性的統計圖




直接連結到個人的Flickr Buddy Icon | Idea Grapes
直接連結到個人的Flickr Buddy Icon

現在各種論壇或會員機制都很流行使用avatar(個人圖示,通常使用48×48的正方形圖片),有些服務(例如aNobii)可以讓使用者輸入Flickr帳號,直接用上面的Buddy Icon當個人圖示,一來可以減輕該服務的伺服器負擔(節省空間,又不必耗費CPU進行縮圖),二來也方便使用者,只要更換Flickr的圖片,就可以同步更新數個服務的avatar。

今天到新推出的my.9rules網站註冊時,發現它允許使用者使用某個圖片的連結作為avatar,於是我想起之前Tech-Recipes曾經有一篇文章,告訴使用者如何直接連結到Flickr的Buddy Icon圖檔。

在Flickr裡面,每位使用者的Buddy Icon都是統一放在如下的路徑:

http://www.flickr.com/buddyicons/your_flickr_code.jpg

上面的your_flickr_code,比較常見的說法是Flickr ID,和個人的帳號不同,是一組獨特的編碼,我們可以透過idGettr快速查詢到個人的Flickr ID。

例如我的Buddy Icon網址為http://www.flickr.com/buddyicons/55941397@N00.jpg,只要輸入這個連結,在我的9rules個人頁面即可和Flickr同步顯示個人圖示。

附帶一提,9rules旗下的blog,不論在設計或是內容上都有許多經典之作,推薦大家過去逛逛:)

粗暴模式 | Jedi's BLOG | Jedi.org
粗暴模式

這幾天剛好在某聊天室跟朋友聊到一些事,一時自暴自棄就講了幾句(氣)話,覺得應該要記錄下來。

話說有教過其他人用電腦的朋友應該都有類似的經驗,對於一般人來說,最難學會的事情乃是「閱讀螢幕上的訊息」。舉例來說,有的時候某個程式可能發生錯誤,例如某個檔案損毀,然後就會出現錯誤訊息;這個錯誤訊息可能是修好這個程式的關鍵,但是使用者並不會真的去閱讀這個訊息內容,因此會有這樣的對話出現:

使用者:「電腦壞掉了!」
我:「怎麼了?」
使用者:「剛剛出現一個叉叉的視窗,他壞掉了」
我:「叉叉的視窗……上面寫甚麼呢?」
使用者:「不知道耶,我很害怕就把他關掉了。」

不祇是錯誤訊息,就算是「下一步」按到底就可以安裝完的軟體,很多使用者還是不會裝,而市面上也出現了不少這種教妳按「下一步」的書。我原本一直(誤)以為,這是本地使用者的特性,後來一位目前在美國工作的朋友跟我說,即使是原本就使用英文的美國人,看到如 "Are you sure you want to continue connecting (yes/no)?" 這樣的提示訊息時,也是連個 yes 都不會輸入。

有一位顯然搞不清楚狀況的朋友這時插話進來,說「何不寫進 FAQ 呢?」事實很殘酷: FAQ 的字太多了,根本沒人會去看。

這個時候,我突然有個想法,就是任何設計給「一般人」用的軟體,都應該要有個「粗暴模式」,程式剛開始執行的前五秒鐘如果按了特定的組合鍵(舉例來說, Ctrl-Alt-Esc ,就像開機時進 BIOS 那樣)就會回到「不厭其煩模式」,也就是現今多數軟體所設計的互動模式。這個「特定的組合鍵」當然也可以在程式剛開始的時候提示。

那麼,這個「粗暴模式」要有多粗暴呢?簡而言之,就是完全在蹂躪使用者的人格:自動輸入 Yes ,自動接受未知的金鑰,自動信任不明的憑證,自動安裝 ActiveX 元件……就連在安裝應用程式的時候,也完全不需要使用者按「我同意」或「下一步」,直接就是「安裝完成」。

真的那麼多人想要被粗暴地對待嗎?

英文中最常使用的25個名詞 | Idea Grapes
英文中最常使用的25個名詞

根據Oxford English Corpus的研究統計,英文中最常使用的25個名詞依序如下:

1. time
2. person
3. year
4. way
5. day
6. thing
7. man
8. world
9. life
10. hand
11. part
12. child
13. eye
14. woman
15. place
16. work
17. week
18. case
19. point
20. government
21. company
22. number
23. group
24. problem
25. fact

至於最常使用的字是那一個呢?在CNN這篇報導的開頭有提到,各位不妨先猜一猜,再連結過去看解答吧!

10個常見的網站購物車設計問題

SURL(Software Usability Research Lab)重新檢視一份2002年時的電子商務報告,發現其中許多網站購物車的易用性(usability)問題,至今仍然存在,包括:

  1. 用使用者不易瞭解的名詞指稱購物車(Calling a shopping cart anything but a shopping cart or whatever is appropriate for the target users of the site’s location)
  2. 將按鈕標示為「購買」而非「加入購物車」(Requiring users to click “Buy” instead of “Add to shopping cart”)
  3. 當使用者將商品加入購物車時,沒有顯著的視覺提示(Giving little to no visual feedback that an item has been added to the cart)
  4. 使用者每次加入商品後,都被強迫瀏覽一遍購物車的內容(Forcing the user to view the shopping cart every time an item is placed there)
  5. 將物品加入購物車之前,要求使用者購買其他相關產品(Asking the user to buy other related items before adding an item to the cart)
  6. 要求使用者必須先加入會員,才能將商品加入購物車(Requiring a user to register before adding an item to the cart)
  7. 要求使用者將商品數量改為0以移除該商品(Requiring a user to change the quantity to zero to remove an item from the cart)
  8. 使用者必須閱讀指南才知道如何使用購物車的功能(Not making it evident how to update the items in the shopping cart)
  9. 使用者必須捲動頁面才能看到更新購物車的按鈕(Requiring a user to scroll to find an update cart button)
  10. 使用者無法在結帳前得知所購商品(加上運費)的總金額(Requiring a user to check out before showing the final costs including shipping and tax)

以上只是翻譯GUUUI上面的節錄內容,SURL的原文包含了豐富圖表,非常精彩,另外還點出了兩個新的設計問題,包括:1. 安全性 2. 無法在結帳前得知商品是否還有庫存。從事電子商務的朋友們,不可錯過。