May 08

開發網站,您會選擇什麼字符編碼?

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5 out of 5)
Loading ... Loading ...

有關 Web 字符編碼的問題,已經是老生常談。今天看到 一峰 兄弟和 Lunatic Sun 不謀而合的談到有關 UTF-8 的使用現狀,也談談我的看法。
上圖是 Google 根據近年 Web 頁面編碼趨勢的一個總結。我很欣喜的看到 UTF-8 編碼已經成為了主流,而猶如 一峰 兄弟所言,讓人堪憂的是中文字符編碼還是呈現很平穩的趨勢,這說明目前 UTF-8 編碼並沒有在中文網站中推廣開來。

上圖是 Google 根據近年 Web 頁面編碼趨勢的一個總結。我很欣喜的看到 UTF-8 編碼已經成為了主流,而猶如 一峰 兄弟所言,讓人堪憂的是中文字符編碼還是呈現很平穩的趨勢,這說明目前 UTF-8 編碼並沒有在中文網站中推廣開來。

究其原因,本人認為會有如下幾點:

第一,中文編碼(無論是 GBK、GB2312、GB18030 等)都變成了「傳統」,畢竟這是 中文 的編碼。開發者不願意在字符編碼這塊花太多的心思。

第二,由於早期項目的原因,不得不繼續使用 GBK 等中文編碼。

我 曾經就遇到過這樣的一個項目,當時我很奇怪他們為什麼不用 UTF-8,因為他們面對的客戶不僅僅是國內用戶。而解決這一方案的辦法就只能是使用非常勞累的手段,但這是指標不治本的辦法。雖然最後,在本人的一再堅 持下,最後還是轉成了 UTF-8 編碼,但相信國內還有很多項目都會碰到類似的問題。

第三,開發工具方面的支持,尤其是國內的一些產品。從根本上說,除了基本的思想意識以外,還有就是開發工具的問題。或許有一天,開發者相關的開發工具都默認的就是 Unicode 的話,這樣轉換的成本就會非常的低。

第四(感謝小馬補充),流量大、文字多的中文站點通常都會使用 GB2312,原因很簡單,頁面下載量會比 UTF-8 小(GBK 編碼只需要兩個字節,而 Unicode 需要三個或者以上)。

那麼,我經常使用的些主要的中文站點,目前在使用什麼編碼呢?下面是一個不完全的列表,供大家參考一下(以頁面 meta 標籤的 Content-type 為準)。

淘寶 - GB2312
支付寶 - GB2312
口碑 - GBK
中國雅虎 - GB2312
163 - GB2312
新浪 - GB2312
搜狐 - GB2312
豆瓣 - UTF-8
Yupoo - UTF-8
谷歌 - UTF-8

從上述的站點看來,目前國內一般門戶類型的站點基本上都是 GBK 等編碼,而類似 豆瓣、Yupoo 這樣的新興 「Web2.0 式站點」已經開始嘗試 UTF-8 。在我看來,Unicode 在中文站點的推廣,任重而道遠。

那麼接下來,在您以後的項目中,您會選擇什麼字符編碼?

作者:GraceCode

May 07

有朋友問到如何在mysql中使用隨機數
如何寫一個語句能一下更新幾百條MYSQL數據!

需要測試MYSQL數據庫,裡面有一個上萬條數據的數據庫,如何寫一個PHP文件一下每次更新幾百條信息,我都是寫一個循環一次更新一條信息,這樣我知道用WHILE寫就可以了,要是一次更新好比100條數據改如何寫呢!

謝謝
正確答案是:UPDATE cdb_posts  SET  views = rand();

順便給你找了點關於mysql rand函數的實例,如下:
那就在insert 命令中,value()裡面用rand(),注意字段寬度是否夠一直以為mysql隨機查詢幾條數據,就用

SELECT * FROM `table` ORDER BY RAND() LIMIT 5

就可以了。
但是真正測試一下才發現這樣效率非常低。一個15萬餘條的庫,查詢5條數據,居然要8秒以上
查看官方手冊,也說rand()放在ORDER BY 子句中會被執行多次,自然效率及很低。

You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.

搜索Google,網上基本上都是查詢max(id) * rand()來隨機獲取數據。

SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 5;

但是這樣會產生連續的5條記錄。解決辦法只能是每次查詢一條,查詢5次。即便如此也值得,因為15萬條的表,查詢只需要0.01秒不到。
上面的語句採用的是JOIN,mysql的論壇上有人使用

SELECT *
FROM `table`
WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` )
ORDER BY id LIMIT 1;

我測試了一下,需要0.5秒,速度也不錯,但是跟上面的語句還是有很大差距。總覺有什麼地方不正常。
於是我把語句改寫了一下。

SELECT * FROM `table`
WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)))
ORDER BY id LIMIT 1;

這下,效率又提高了,查詢時間只有0.01秒
最後,再把語句完善一下,加上MIN(id)的判斷。我在最開始測試的時候,就是因為沒有加上MIN(id)的判斷,結果有一半的時間總是查詢到表中的前面幾行。
完整查詢語句是:

SELECT * FROM `table`
WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`)))
ORDER BY id LIMIT 1;
SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;

最後在php中對這兩個語句進行分別查詢10次,
前者花費時間 0.147433 秒
後者花費時間 0.015130 秒
看來採用JOIN的語法比直接在WHERE中使用函數效率還要高很多。

轉自 :  [link]

May 07
  1. 啟動計算機
  2. 在windows xp啟動畫面出現後馬上按下F8鍵
  3. 選擇”帶命令行的安全模式”
  4. 運行過程結束時,系統列出系統超級用戶”administrator”
  5. 進入命令行模式,然後就可以用net user password命令來修改密碼了
  6. 比如賬號為fox希望將密碼設置為12345678,那麼可以輸入:net user fox 12345678 /add這樣就強制將”fox”用戶的口令更改”12345678″。
  7. 若想在此添加一新用戶,用戶名為dog,口令為87654321,只要鍵入:net user dog 87654321 /add然後再把這個dog用戶加入管理員組:net localgroup administrators dog /add這樣,用戶”dog”就成為系統管組”administrators”的用戶了。
  8. 最後重新啟動計算機,選擇正常模式下運行,就可以用更改後的口令 “12345678″登錄了。
May 06

測你的下一世

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

測你的下一世

將你的公元出生年月日乘起來
有0的就別乘了,不然出來的都是0~~~~~~~
例:1985.2.21出生的人就是1×9×8×5×2×2×1=1440
這時出來的數字如果是一位數以上的話再相乘
PS:有0去掉哦,如果相乘之後還是一位數以上的話就再
相乘.直到變成一位數
例如: 先前出來的是1440 那就是1×4×4=16,1×6=6

將出來的數字對照下面的表就可以得知你的下輩子是什麼?

1 代表你下輩子是強盜
2 代表你下輩子是普通人
3 代表你下輩子是窮人
4 代表你下輩子是空手道高手
5 表示你下輩子是讀書人
6 表示你下輩子是鬼,也就是說這輩子完了以後沒有投胎
7 表示你下輩子是巨富,恩,和李嘉成差不多有錢吧
8 表示你下輩子是頭腦極其發達的人,PS,也就是說四肢簡單,和愛因斯坦啊愛迪生什麼的有一拼
9 表示你下輩子是堅定的共產主義信仰者,hoho,這個最厲害啊,沒誰是未來的啊啊馬克思什麼的

1×1x3×3x7×8x9=4536

3×4x5×6= 360

3×6=18

1×8=8

四肢簡單的人出街也要小心一點較好,你呢,你又是那種人?

原文網址:[ Link ]

May 05

互聯網帶寬越來越寬,似乎讓網頁的加載速度得到了質的飛躍。其實不然,因為隨著帶寬的提高,網頁上的對象也越來越多,因此加快網頁打開速度還是一個 重要的課題。加快網頁的打開速度,有三個路徑,一是提高網絡帶寬,二是用戶在本機做優化,三是網站設計者對網頁做一定的優化。這篇文章站在一個網站設計者 的角度,分享一些優化網頁加載速度的小技巧。

网页提速!

一、優化圖片

幾乎沒有哪個網頁上是沒有圖片的。如果你經歷過56K貓的年代,你一定不會很喜歡有大量圖片的網站。因為加載那樣一個網頁會花費大量的時間。

即使在現在,網絡帶寬有了很多的提高,56K貓逐漸淡出,優化圖片以加快網頁速度還是很有必要的。

優化圖片包括減少圖片數、降低圖像質量、使用恰當的格式。

1、減少圖片數:去除不必要的圖片。

2、降低圖像質量:如果不是很必要,嘗試降低圖像的質量,尤其是jpg格式,降低5%的質量看起來變化不是很大,但文件大小的變化是比較大的。

3、使用恰當的格式:請參閱下一點。

因此,在上傳圖片之前,你需要對圖片進行編輯,如果你覺得photoshop太麻煩,可以試試一些在線圖片編輯工具。懶得編輯而又想圖片有特殊的效果?可以試試用過調用javascript來實現圖片特效

二、圖像格式的選擇

一般在網頁上使用的圖片格式有三種,jpg、png、gif。三種格式的具體技術指標不是這篇文章探討的內容,我們只需要知道在什麼時候應該使用什麼格式,以減少網頁的加載時間。

1、JPG:一般用於展示風景、人物、藝術照的攝影作品。有時也用在電腦截屏上。

2、GIF:提供的顏色較少,可用在一些對顏色要求不高的地方,比如網站logo、按鈕、表情等等。當然,gif的一個重要的應用是動畫圖片。就像用Lunapic製作的倒映圖片

3、PNG:PNG格式能提供透明背景,是一種專為網頁展示而發明的圖片格式。一般用於需要背景透明顯示或對圖像質量要求較高的網頁上。

三、優化CSS

CSS疊層樣式表讓網頁加載起來更高效,瀏覽體驗也得到提高。有了CSS,表格佈局的方式可以退休了。

但有時我們在寫CSS的時候會使用了一些比較囉嗦的語句,比如這句:

margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;

你可以將它簡化為:

margin: 10px 20px 10px 20px;

又或者這句:

<p class=”decorated”>A paragraph of decorated text</p>
<p class=”decorated”>Second paragraph</p>
<p class=”decorated”>Third paragraph</p>
<p class=”decorated”>Forth paragraph</p>

可以用div來包含:

<div class=”decorated”>
<p>A paragraph of decorated text</p>
<p>Second paragraph</p>
<p>Third paragraph</p>
<p>Forth paragraph</p>
</div>

簡化CSS能去除冗余的屬性,提高運行效率。如果你寫好CSS後懶得去做簡化,你可以使用一些在線的簡化CSS工具,比如CleanCSS

四、網址後加斜槓

有些網址,比如”www.kenengba.com/220“,當服務器收到這樣一個地址請求的時候,它需要花費時間去確定這個地址的文件類型。如果220是一個目錄,不妨在網址後多加一個斜槓,讓其變成www.kenengba.com/220/,這樣服務器就能一目瞭然地知道要訪問該目錄下的index或default文件,從而節省了加載時間。

五、標明高度和寬度

這點很重要,但很多人由於懶惰或其它原因,總是將其忽視。當你在網頁上添加圖片或表格時,你應該指定它們的高度和寬度,也就是height和 width參數。如果瀏覽器沒有找到這兩個參數,它需要一邊下載圖片一邊計算大小,如果圖片很多,瀏覽器需要不斷地調整頁面。這不但影響速度,也影響瀏覽 體驗。

下面是一個比較友好的圖片代碼:

<img id=”moon” height=”200″ width=”450″ src=”http://www.kenengba.com/moon.png” alt=”moon image” />

當瀏覽器知道了高度和寬度參數後,即使圖片暫時無法顯示,頁面上也會騰出圖片的空位,然後繼續加載後面的內容。從而加載時間快了,瀏覽體驗也更好了。

六、減少http請求

當瀏覽者打開某個網頁,瀏覽器會發出很多對像請求(圖像、腳本等等),視乎網絡延時情況,每個對象加載都會有所延遲。如果網頁上對像很多,這可以需要花費大量的時間。

因此,要為http請求減負。如何減負?

1、去除一些不必要的對象。

2、將臨近的兩張圖片合成一張。

3、合併CSS

看看下面這段代碼,需要加載三個CSS:

<link rel=”stylesheet” type=”text/css” href=”/body.css” />
<link rel=”stylesheet” type=”text/css” href=”/side.css” />
<link rel=”stylesheet” type=”text/css” href=”/footer.css” />

我們可以將其合成一個:

<link rel=”stylesheet” type=”text/css” href=”/style.css” />

從而減少http請求。

七、其它小技巧(譯者添加)

1、去除不必要加載項。

2、如果在網頁上嵌入了其它網站的widget,如果有選擇餘地,一定要選擇速度快的。

3、盡量用圖片代替flash,這對SEO也有好處。

4、有些內容可以靜態化就將其靜態化,以減少服務器的負擔。

5、統計代碼放在頁尾。

本文編譯自Daily Blog Tips,內容有刪改。

原文地址:http://www.kenengba.com/post/435.html

May 04

上帝把兩群羊放在草原上,一群在南,一群在北。
上帝還給羊群找了兩種天敵,一種是獅子,一種是狼。

上帝對羊群說:「如果你們要狼,就給一隻,任它隨意咬你們。
如果你們要獅子,就給兩頭,你們可以在兩頭獅子中任選一頭,還可以隨時更換。」

這道題的問題就是:如果你也在羊群中,你是選狼還是選獅子?

很容易做出選擇吧?
好吧,記住你的選擇,接著往下看。

閱讀這篇文章的其餘部分 »

May 04

無厘頭餐廳

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

客人們剛入無厘餐室,侍應出來迎接。
侍:幾多位?
客1:做乜問我喎,我點知你間餐廳有幾多位者...
侍:嘻,我都唔清楚,等我數數..二、四、六...
…….數完.
侍:食唔食煙?
客1:唔食。
侍:咁食唔食野?’
客(1234567):…………………….
====客人們正在看餐牌選東西吃時====
客1:(自言自語)唔..咁多野食..叫乜食好呢?
(對朋友們)喂,你地叫乜呀?
客2:我叫乜?..我叫小甘。
客3:我叫Forrest,多多指教!
====到點菜時====
侍:想叫乜食?
客:西冷牛扒餐,牛扒要五點六二成(5.62)熟,唔該。
====點餐飲時====
侍 :餐飲要乜野?
客1:一杯凍好立克。
客2:一杯好立克加冰。
客3:一杯凍‘呵力’。
侍 :%@##~~咪即係三杯凍好立克!
客4:可口可樂要樽裝。
客5:熱檸茶加冰走檸檬。
客6:奶茶,奶要2%脂肪既。
客7:涷水駛唔駛加一蚊架?
客5:都係改一改,要熱檸樂加冰走檸檬可樂走汽。
====菜到時====
客5 : 喂喂..點解我個雜菜飯有塊肉絲既?
侍 : 啊..唔好意思,呢塊係廚師頭先切菜果陣切到手指果塊肉..
====飲品到時====
客:喂喂..點解我杯餐飲有一蚊硬弊響杯入面既?
侍:你冇睇餐牌咩?凍飲加一蚊嘛..

May 04

在 美 國 南 部 一 個 小 鎮 , 一 位 年 老 的 祖 母 上 法 庭 做 證 人 。 控 方 律 師 問 : 「 鍾 斯 太 太 , 你 認 識 我 嗎 ? 」
老 太 太 回 答 : 「 為 甚 麼 會 這 樣 問 ? 我 當 然 認 識 你 , 威 廉 士 先 生 。 你 從 小 就  人 失 望 , 你 經 常 說 謊 , 喜 歡 操 控 他 人 , 又 愛 在 人 家 背 後 說 壞 話 。 你 自 以 為 了 不 起 , 實 則 一 無 是 處 。 」
控 方 律 師 呆 了 半 晌 , 不 知 還 可 以 說 甚 麼 , 唯 有 指  辯 方 律 師 問 老 太 太 : 「 那 麼 你 認 識 他 嗎 ? 」
老 太 太 又 回 答 : 「 認 識 , 他 很 年 輕 的 時 候 我 就 認 識 他 。 他 又 固 執 又 懶 惰 , 還 有 酗 酒 問 題 。 他 一 直 都 不 能 夠 和 任 何 人 建 立 良 好 關 係 , 是 整 個 州 最 糟 的 律 師 。 他 曾 跟 三 個 女 人 亂 搞 關 係 , 其 中 一 個 是 你 的 太 太 。 」
辯 方 律 師 聽 了 , 差 點 暴 斃 。
這 時 , 法 官 忍 不 住 把 兩 個 律 師 叫 到 桌 前 , 輕 聲 道 : 「 你 們 兩 個 笨 蛋 留 心 聽  , 如 果 你 們 問 她 認 不 認 識 我 , 我 就 立 刻 送 你 們 上 電 椅 。 」

May 04

中年漢獨自在海邊漫步,忽然踢到硬物,低頭一看是盞油燈。他拾起來,用衣袖拭掉上面的沙,巨大的燈神出現。
中年漢問:「是不是有三個願望?」
燈神答:「不,那是童話慣用的誇張手法,我只能為你達成一個願望。」
中年漢提出要求:「我很想去美國大峽谷旅行,但是怕乘飛機;朋友提議坐郵輪,我卻怕暈船。你可不可建一條大橋,連接臺灣和美國?」
燈神罵道:「神經病!你可知造一條這麼長的橋,需要多少鋼鐵水泥?不可能的事我不做,你再想一個較實際的願望吧!」
中年漢說:「我結過三次婚,又離過三次婚,每任妻子都怪我不了解她。你能不能令我開竅,明白女人不講話時,腦子裡究竟在想些什麼?說『不需要』的時候其實想要什麼?」
燈神嘆一口氣道:「那條跨太平洋大橋,你要雙線還是四線車道?」

May 02

新聞來源:tracingadget.com
世界上有了Macbook Air,有了最超薄的筆記本,我們還要求什麼呢?你沒想到沒關係,有人想到了,那就是出一個Anti-Macbook Air一個徹頭徹尾的反MackBook Air計劃。如圖,大家看到了Anti-Macbook Air最主要的就是’反’Macbook Air的超薄特性。而且這個’反’採用了一種最粗魯的方法,使我們的’筆記本’增厚了。

anti-macbook.jpg

medium_2214239867_f8b8694256_o.jpg

反MackBook Air筆記本採用AMD處理器平台,裝備有120G硬盤,聲卡顯卡俱全。雖然他外形笨重,但我們有理由相信反MackBook Air在性能上一定不比MackBook Air差,因為他根本就是一部放在皮箱裡的台式機嘛 via

medium_2214239223_c3a593c685_o.jpg

medium_2214239339_e4009bdb0b_o.jpg

medium_2214240207_1b5f2dc9a8_o.jpg

medium_2215032384_7d12347517_o.jpg

medium_2215032538_9ebe96b800_o.jpg

medium_2215032736_800b0306a0_o.jpg

medium_2215032816_7eb4869089_o.jpg

medium_2215032926_dd2f90196e_o.jpg

medium_2215033042_4c28ee5dc6_o.jpg

medium_2215033202_2f7aa75443_o.jpg

medium_2215033410_82d941a06a_o.jpg