2012年5月16日星期三

Javascript 偵測 手機 / 行動裝置,並加到 body 的 class 中

我最近很常用到這個功能。
原本是用一個叫做 headjs 的,有被 hosting 在cdnjs 裡面(但如前所述,我不太敢直接用)。

它可以把各個 browser 加在 html class裡,然後寫 css 就可以這樣寫。

.lt-ie9 .box { padding: 10px; }
或是 css3 相關的功能也可以這樣子寫
.no-boxshadow .box {
   border: 2px solid #ddd;
}


2012年5月4日星期五

Make an aggregator feed by using google reader bundle



It's awesome, no authortication required.

Steps:


  • (optional) import to google reader by using opml with special label.
  • create a bundle for that label.
  • create a bundle clip
  • (right - bottom) preview
  • (right - top) atom feed

results:

default result is atom format:

  • http://www.google.com/reader/public/atom/xxxxxxxxx?n=2&r=d

You can change format to:

  • json: http://www.google.com/reader/public/javascript/xxxxxxxxx?n=2&r=d
  • jsonp: http://www.google.com/reader/public/javascript/xxxxxxxxx?callback=yyy

please refer to http://undoc.in/googlereader.html for more detail.

2012年5月3日星期四

php 的 __DIR__ ,別再用 dirname(__FILE__) 了

php 發現大家很常使用 dirname(__FILE__) 了,所以在5.3.0以後的版本,新加了 __DIR__ ,用內建的function永遠比較快!

請參考 http://php.net/manual/en/language.constants.predefined.php

2012年4月20日星期五

簡繁轉換的Library

從wiki那邊挖到的
我這邊是要繁轉簡,會比較準確一點,因為簡轉繁會有
一只 → 一隻
繁轉簡就每個字翻過去就可以了。

所以步驟應該是
先 zh2CN : 詞的繁到簡,例如 光碟機 →  光驱
zh2Hans:字/詞的繁到簡。就是每個字的對照表,再加上一些詞的轉換,不過我看了一下,詞的部份完全沒用。

建議還是做個cache,應為把array讀取進來系統負擔很大。

2012年4月15日星期日

常用 icon 的 CDN hosting

為了要讓網站速度更快,所以頁面上的圖片也盡量使用免費的Hosting,快又好用。
Google 的 CDN 有不少 jquery UI 的樣式,這個網站可以幫助你挑選和選擇。
http://the-xavi.com/articles/jquery-ui-css-themes-hosted-on-cdn

如果要用到 jquery mobile的圖或js,記得還有 微軟的 CDN http://www.asp.net/ajaxlibrary/cdn.ashx ,速度也不錯。

如果再找不到你要的,可以去 http://www.cdnjs.com/ ,它宣稱很穩定,不過它網站有時候會進不去,所以我都沒在用。

其它:

2012年4月13日星期五

加入 Rich Snippets 讓搜尋引擎瞭解你的內容是什麼

搜尋引擎很難知道你的內容是什麼,都是交叉比對「猜」出來的結果。於是各個大頭就來推一些公用格式,叫Rich Snippets format。大致上有三種

  • Micro Format:也就是用 html tag的 class 屬性來表達內容是什麼。
  • Micro Data:在html 的 tag 中加上一些特定的屬性來告知內容是什麼。
  • RDF a:類似 micro data 

Google 這邊是建議用 Micro Data,而且 Micro Data有Google、Microsoft和Yahoo的加持。
以下是我找的一些連結。

但實際來說,也不知道對SEO的成效是多少,但我相信一定比較好,因為 Google 自己都這麼說了。當然,不要做的太假太誇張,小心被扣分。

2012年4月9日星期一

使用 YUI 的 CSS,用 Google 的 CDN 比較好

我原本是用這個
http://yui.yahooapis.com/combo?3.4.1/build/cssfonts/cssfonts-min.css&3.4.1/build/cssgrids/cssgrids-min.css&3.4.1/build/cssreset/cssreset-min.css
response time 是 180 ms,我家在台北是hinet,(80%的網路都是hinet),這種速度太慢了。

Google 的 CDN 以前有放YUI的,後來的版本就拿掉了,可能因為不支援 combo 的關係,比較少人使用。不過我還是爬到了一個,然後把連結組了出來。

http://ajax.googleapis.com/ajax/libs/yui/3.3.0/build/cssgrids/grids-min.css
http://ajax.googleapis.com/ajax/libs/yui/3.3.0/build/cssfonts/fonts-min.css
http://ajax.googleapis.com/ajax/libs/yui/3.3.0/build/cssreset/reset-min.css


我只找到3.3.0的,而且3.4.1的命名方式跟3.3.0的不一樣,所以特別難找。
使用google的每個response time約是25ms,也比yahoo的快。
而且新的browser都是平行載入的,大可不用擔心是否combo了。

2012年3月22日星期四

壓縮ajax/xhr回傳的內容

ajax會讓user的感覺變好。大多是以兩種方式來做回傳資料:
  • HTML: HTML可以減少browser端的CPU處理時間,不過不建議,因為這個年頭的CPU都算快多了。
  • 回傳資料列表,再由前端的javascript template engine(像是jquery tmpl)產生內容。

使用Goole App Engine當作靜態檔案的CDN服務

我之前一直都認為Google App Engine它因為要run datastore的關係,所以目前統一放在美國。任何一個request打出去回傳都要200-500ms,哪怕只是hello world。

不過那天偶然間發現,如果在app.yaml中設定為靜態檔案的話。response time只有35ms,超級快。我猜測是在台灣有設點。而且每天1G的free quota,小站都算是可以用的。所以最靜把靜態檔安都搬到GAE上,可以讓使用者對頁面的感覺快一點點...。(所以我可以再慢一點再租linenode。linenode在日本有設點,速度很快,但每個月要20usd)

app.yaml這樣寫
--
--
再來就上傳囉!
./appcfg.py update project_directory/

不過我個人最新的測試是...
這是依帳號,我某個舊帳號的靜態檔都超級快,都在50ms以內,但另一個帳號卻是200ms以上。
可能我的舊帳號一直以來都有台灣的流量在打,所以它會把資料送到台灣這?
Google App Engine的部落格也沒多做解釋。

在部落格中放程式碼

網路上找得到很多如何在blog中放程式碼的服務或方法。
方法指的是可能將程式碼轉換成合法的html,但這個不建議,因為常常在HTML和Compose(編輯)模式切換的時候會亂掉。
外部服務之前只有找到http://paste.plurk.com/,但又不能embed在內文中。
目前看到最好用的還是這個 https://gist.github.com/