2008年12月27日星期六

Windows Live Messenger 2009

剛安裝Live Writer 2009時,被強迫一併升級Live Messenger至2009版本,整體功能分別不大,唯一一樣值得一提是"好友動向"。
"好友動向"類似Facebook的News Feed,即是你做了什麼會顯示在你List上網友的Messenger中,相反你亦可以知道你的網友最近做了什麼。

lm2009_2008-12-26_21-41-46

亦可以設定你顯示什麼更新消息給別人,當然對應Blog的更新,我已經試過即使不用列表上的Blog Service,就算Self-Host的WordPress都可以經RSS做更新。

lm2009_2008-12-26_21-39-25lm2009_2008-12-26_21-42-06-360x329

其實不知大家有沒有留意,其實那個Live頁面改動已經很大,MSN Space,Sky Drive已不用做什麼申請,預設已經可以隨時使用。不過老實說,不知是否我用HKBN上網問題,Microsoft的Live網站,MSN Space,Hotmail等等系列網站,都是十分慢。

Windows Live Messenger 2009
http://download.live.com/messenger

Windows Live Writer 2009: Release Candidate



Windows Live Writer 2009剛推出RC版,新功能有:

* “Instant photo” border treatment (!!!)
* Insert multiple photos (終於都有這個了)
* Insert and upload Windows Live photo albums
* Insert and publish video to YouTube
* Spell checking in: Arabic, Basque, Bulgarian, Catalan, Croatian, Czech, English (Australia), Estonian, Greek, Hebrew, Hungarian, Indonesian, Latvian, Lithuanian, Malay, Polish, Romanian, Russian, Slovak, Slovenian, Turkish, and Ukrainian
* Server-side tagging (support coming soon to WordPress.com and BlogEngine.NET)
* Type-down filtering in the Open dialog
* Improved blog account setup
* Windows Live Spaces inline preview support
* Support for bidirectional languages
* Updated look and feel

我幾愛Live Writer的插入圖片功能,可以自動Resize,自動連結原始圖片。再不上傳情況下Preview,Publish時圖片才一起上傳。

Download Windows Live Writer 2009 (Release Candidate) Version 14.0.8050.1202
http://download.live.com/writer

Firefox Extension - Blog Editor - ScribeFire試用報告



前幾天見到的ScribeFire , 今天特地在WordPress.com開了一個Account做測試,試用過後,做了一些深入測試,表現真的不錯。
隨手寫一個小小的試用報告給大家看看。

安裝後,看看Setting Tab,支援FTP Upload,其餘那些QuickAd的,都是沒用的東西。


輸入你的Blog URL後,ScribeFire會自動偵測你的Blog類型,再輸入XMLRPC Service Url和登入資料就可以了。


之後ScribeFire會下載你已經Publish的Posts和Pages,可以在右手邊的Panel找到,亦可以自訂Notes當作Template。


再看看Editor本身支援基本的Visual View , Source View和Preview。


第一眼見到ScribeFire的ToolBar時,很失望,連Table都沒有,還以為跟WordPress的TinyMCE那麼弱,原來ScribeFire把大部份有用的收藏在Right Click Menu中。


除了FTP Upload,還支援API Upload,圖片會放進WordPress的Upload資料夾,Upload完成後會自動插入Image,我還測試過如相同檔案名稱時,會自動在Filename+1做rename。


另外還有一個特別功能是 - Quickblogging
在Firefox上Highlight內容後,Right Click再按QuickBlog制,就可以把內容傳送至Scribefire。

ScribeFire的確是Microsoft的Live Writer外另一個選擇。

Download ScribeFire :
https://addons.mozilla.org/en-US/firefox/addon/1730

2008年12月24日星期三

Firefox Extension - ScribeFire Blog Editor

一個好似唔錯的Firefox Extension Blog Editor,支援WordPress.com,Xanga ,Windows Live Spaces,Blogger 等等主流Blog System,FTP Upload等等,有即時Preview功能。

ScribeFire Classic:
https://addons.mozilla.org/zh-TW/firefox/addon/1730

ScribeFire Classic is a blog editor that integrates with Firefox and lets you easily post to your blog.

ScribeFire Classic is no longer supported; you should install
ScribeFire Next:
https://addons.mozilla.org/en-US/firefox/addon/scribefire-next


2008年11月24日星期一

C# 認識Enumeration - enum Keyword

Enumeration(列舉型別)不是常用的類型,不過有時候做對比的程序,Enum就起了作用。自己寫程式都是比較少用Enum,所以溫故知新,在此講解一下Enum的用法。

找一個例子,假如你替一間遊戲店寫一個系統,需要做以下功能:
- 由產品名稱找到售價
- 由售價找到產品名稱
- 由售價去判斷產品是否存在
那Enum列舉型別都大派上場了。

首先我們簡單地了解一下如何 Construct Enum :
開一個新的Windows Form :
namespace Enum_Example_1
{
enum GameConsole
{
XBox360,
PS3,
Wii,
NDSL,
PSP
};

public partial class Form1 : Form
{
public Form1()
{ InitializeComponent();}

private void Form1_Load(object sender, EventArgs e)
{
GameConsole IHaveThisConsole = GameConsole.XBox360;
Console.WriteLine((IHaveThisConsole == GameConsole.PS3).ToString()); //False
Console.WriteLine((IHaveThisConsole == GameConsole.XBox360).ToString()); //True
}
}
}

在這裡我們可以看到Enum本身就有對比性,即使你不預設任何Value,但是enum類型本身就是可以分別是否相同。

2008年11月7日星期五

PHP不是首選的Language

記得10年前左右我學VB6時,很多人說VB6學壞手勢,話學Delphi好,當然呢o的已經係歷史話題。但前排睇左幾篇Blog文,話PHP是次選語言,不會是初學者的首選,我都很同意,亦令我想起"學壞手勢"呢四隻字。

PHP的問題,其實在於太過寬鬆,好似近排我工作上是寫PHP就有很多令我出奇的情況。
疑問1:
<?php
$_SESSION['info_1'] = "1"; // assign value
$_SESSION['info_2'] == "2"; // compare value
?>

第一個Session很正常,只是assign "1"給info_1 ,但第二個Session沒出現Error卻很奇怪,不論是true或false,起沒有主體或不是condition情況下,卻Syntax成立,如果不小心打多一個"="符號,整個程式就已經錯誤。

疑問2:
<?php
$select = "SELECT login_id FROM user";
$rs = mysql_query($select);
$row = mysql_fetch_assoc($rs); //data reader pointer 在第一行
echo $row["login_id"]; //output : sam
// 100行code後
$select_pwd = "SELECT password FROM user";
$rs_pwd = mysql_query($select_pwd);
$row = mysql_fetch_assoc($rs_pwd); //示範:忘記之前已經使用$row
echo $row["password "]; //output password string: ASj89qa
?>

這段Code看似沒有問題,只是重用變數,但我卻奇怪為什麼PHP不搞好少少,雖然$row只是in-memory的data集合,但不論JSP或ASPX,這類DataReader/Datatable已經是一個物件,不用New而且在沒有關閉的情況下可以重用有點怪怪.(例如.NET datareader都要進行DataReader.Close() ; DataTable只要結構和第一次不同,都要重構一次。

疑問3:
Include/Require無限Loop...這個是人為問題,很多PHP程式都是這樣,鐘意Include library,function,variable,但Include之中再Include,多層Level的引用Class方式,我卻覺得只會一個亂字,雖然很多IDE可以Open Declaration,但係呢種手法我真係不感恭維。而且不同Folder,層層疊疊下真係頭都暈。
C.php有Function C
B.php include C.php 用Function C
但又會有A.php include B.php去Call function C.....

疑問4:
$varInt = 1;
$varString = "2";
echo $varInt.$varString; //Output : 12 (OMFG~)

全部都係是Dynamic Type,PHP不用設Data Type,無論你是什麼類型,都可以用於一個Variable上,但這正是"學壞手勢"的根源。為什麼一個看似Int的類型可以和String結合,這是不可能發生在C#上的。

其實還有很多奇怪地方都是出自PHP語法太過flexible,當然有好有唔好,好既就係可以好快咁寫到一個網頁程式,唔好既就係潛移默化了一些錯誤的觀念。

有幾個好網,很值得一睇,更加深入講解點解PHP不是一隻首選Langauge。
PHP ‘Good’ Practices
http://rubayeet.wordpress.com/2008/08/27/php-good-practices/
A simple ‘Gotcha’ in PHP
http://rubayeet.wordpress.com/2008/04/29/a-simple-php-gotcha/
PHP is a good second programming language(but never a first)
http://rubayeet.wordpress.com/2008/05/10/php-is-a-good-second-programming-language/
Is PHP a good first language?
http://codeutopia.net/blog/2008/05/01/is-php-a-good-first-language/

2008年11月3日星期一

New Features in C# 4.0

PDC 2008中,其中一段演講是介紹C# 4.0, 新版本的C#主要新增加4樣東西,其實改動不多是正常,別忘記現在的C#版本3.0,但亦是過渡版本的3.5,所以3.5->4.0改動不多亦是正常.
新特點有:
  • Dynamic lookup
  • Named and optional parameters
  • COM specific interop features
  • Variance

我比較關注Dynamic lookup和Named and optional parameters.
(以下例子是引用Microsoft的官方文件)

Microsoft .NET New Logo

沿用了8年的Logo
200px-microsoft__net_logo.png
新Logo...但我覺得新不如舊...
microsoft-net-new-01.pngmicrosoft-net-new-02.png

Google Sites-免費建立個人網站

我記得之前Google都出過一個叫Page Creator既功能,不過佢提供的樣本就似乎真的很差.剛看到Google出左一個叫Sites的東西(中文叫Google 協作平台),都係類似Page Creator的功能,不過就豐富得多,但免費版本有100MB空間.

Youtune使用影片:


或者可以睇埋ajneok 亂芭樂利用 Google Site 快速建立個人網站

Google Sites
http://www.google.com/sites/help/intl/zh-TW/overview.html

2008年10月20日星期一

Silverlight in Eclipse IDE - eclipse4SL

我之前一直在想,有沒有免費的軟件是取代MS自家的Expression Blend,我找到的都是商業軟件,免費的如XamlPad,只是人手輸入XAML,不是一個Design Tool。莫非要設計XAML,就一定要付錢買軟件?既然最新Silverlight 2支持免費的Visual Web Developer做程式部份,那圖形部份怎麼辦? 好彩MS在有意無意支持一個計劃。

寫過Java/PHP的人應該一定知道什麼是Eclipse,但有誰想過可以用Eclipse設計Silverlight,這個軟件叫做eclipse4SL (Eclipse for Silverlight)。
Homepage : http://eclipse4sl.org

網頁說明是這樣的 :
- XAML Editor & Preview with code hinting and code completion: Eclipse will contain an advanced, standards-compliant XAML editor with code hinting and code hinting features which helps detect and correct coding errors.
- Full compatibility with Microsoft's Development and Design Tools: The XAML and Silverlight projects created by Eclipse will be fully supported by both Microsoft Visual Studio and Microsoft Expression Studio tools.
我未有時間試玩,不過有 ScreenShot 睇下。

Silverlight 2 Released!!!


搞左咁耐,Silverlight 終於都出左RTW(Release to Web)版,發展到而家,Silverlight 由最初受注目的動畫表現,到而家很多人更注重Application層面表現。

其實我始終相信短時間內 Silverlight 不可能取代Flash,即使再過多一兩年亦是,要製作Silverlight動畫,成本比Flash要更多。再者,寫開Flash既人都應該不願意或冇需要轉寫Silverlight。本身已經是Adobe派系亦未必願意花時間去學MS的產品。Microsoft應該都知道呢一點,始終Silverlight的最大群族還是.NET語言的Developer,所以慶幸Silverlight 2已經包含UI。

2008年10月9日星期四

香港電腦業的曙光

我相信近期找Programming工作的人應該很吃香,我月頭接受Offer後,之前已經前後5個Interview電話打給我,今天那一個更主動問我幾多錢人工,說加多$1000,問我有沒有興趣。原因我不清楚,比我高學歷的人多的是,比我Dev能力強的人都多的是。最後我拒絕了他,因為我暫時都覺得現在的工作還可以,而且我現在 Main Field 是寫PHP,由ASP.NET/C# => PHP感覺就好似搾開Ferrari 轉搾Taxi 咁(大概是咁比喻..),更容易,但很有趣,習慣一下就可以了~而且呢幾個月搵工都覺得其實香港PHP P仔需求很大,誰說是Java/.NET分天下,所以我都想襯呢次操下PHP。 但其實心裡的確是有一陣歡喜,因為第一次嚐到給人挖角的滋味。

其實呢兩個幾月,我應該算是了解電腦業的就業市場 (Yes,電腦業,我唔鐘意用IT呢個字),每天都看JobsDB,奴供處,Career Times,JobMarket,招職,Classified Post ,其實Programming工作還是On Demand,相信是中上層開始(PM,BA,SA)有危機,始終人工都是有返咁上下,可以見到JobsDB其實就算唔係Agency既工,Job AD依然都好多,但很多公司根本請不到Programmer,很多廣告我也重複看了很多遍。相信原因有兩點:

1. 大專大學的電腦科,都不是有太多人選擇,其實呢一行遲早出現斷層。做開果班,你冇返咁上下人工都請唔郁佢,Fresh Grad既,又未必可以Handle到,很多公司根本唔願意花時間去Train人或者俾新人花時間去Pick up,但公司很多都眼高手低。

2. 向來開發工作就是介乎於[專業]同[不專業]之間,門檻的確是很低,你HD/Asso畢業,已經可以去找P仔工,但有如個個人話什麼PHP易學,VB易明,入門門檻是低,但又有幾多人可以摸到天花板???換句話說,僱主都眼花撩亂,畢竟Interview一個應徵者都要花時間的。

greenshot_2008-10-08_22-57-31.jpg

1,2兩點其實是互相矛盾,但幸好是,我眼中所見,幾年前要求的IT超人(C,C++,J2EE,SE,ME, C#,ASP.NET,VB,PHP,Perl...)已經好少,正所謂百屌成才,呢樣o野起好多電腦行業討論區已經屌左好多年,現在終於有改善,無論如何,雖然我學歷還是很低,指教大學生似乎很點太過...但畢竟自己都打滾了那麼久,我建議有意加入電腦業的同學仔,最重要是心中富有,穩打穩扎才能起淡市中殺出條生路,搵工向來都是在[大海]中,你和公司的Mix and Match,只要你不是拎住個學位就想混飯吃,有真材實料,Interview時,識就識,唔識就要話唔識,你自知自己有料到,自然表現得有信心,Interviewer自然就會對你有好感,其實我相信見什麼工作都好,Interviewer不是想聽你的花言巧語,而且就算給你騙得過,實際做落就見真章,其實見工的本質就是這樣。

2008年10月4日星期六

網絡23條淪為笑柄

今日睇到蘋果日報一個標題:
檢 討 淫 審 文 件 出 爐   各 界 憂 慮 :
從 嚴 規 管 互 聯 網   形 同 網 絡 23 條
http://appledaily.atnext.com

其中一段:
...政府同時提另一更強硬方案,聲言為了提高阻嚇力,連點對點傳送也規管,以杜絕透過集體電郵傳遞不雅訊息等情況。文件又提出,仿效澳洲等地方,增設瀏覽控制系統,要瀏覽不雅資訊人士,先輸入信用卡資料核實身份。對於屢發不雅物品的網民,政府提出收緊互聯網服務合約,供應商可取消屢犯者的寬頻服務。...

我睇到呢段打左個突,腦中即時傳來多個問號,有幾點我想講下:
點對點傳送也規管
P2P傳送一直起國際社會上都很難規管,如何用Packet去判定是不是違法檔案???我File名寫到明有露點,最後實際段片原來係"臘筆小新",咁又點呢。還是請一班人齊齊BT睇咸片???見到露點就入紙告人?

瀏覽控制系統
好似大陸咁封鎖某部份網站,但係準則冇概定。例如香港高登經常有烈士無神神貼AV封面,大量反政府訊息。假如呢類網站要封鎖的話,相信香港討論區,因為有夜遊區,大量嫖妓資訊,相信都難免一死,日後香港人只可以去親子王國吧。

先輸入信用卡資料核實身份
這一點最搞笑,係每次都要輸入,還是輸入一次就以後唔洗? 輸入後經什麼去Authorize?需唔需要檢查Expire Date?會唔會做就更多網絡安全隱憂?如果經網上的Gateway去做Verify,要花幾多錢去成立一個部門去處理每日過百萬的要求?
提出呢個做法根本就係唔用腦。

政府提出收緊互聯網服務合約,供應商可取消屢犯者的寬頻服務
ISP彩你政府都傻喇,好似果時傳聞I-Cable Block BT同埋多次爆出客戶資料俾警方,即時幾多人過檔HKBN。邊間幫政府就死邊間,佢地自己ISP公司都要係咁搵新客,又點會真係主動Cut合約。

基本上這個(商務及經濟發展局副局長)蘇錦樑,真係冇o野搵o黎做。最後只會再次浪費公帑,開多幾個政府部門,養多一大班廢人起度。

2008年9月26日星期五

不錯的Brand Logo Design

這個網站是賣Domain的,剛本來在Google search一下Web 2.0 Domain的Keywords,找到這個覺得幾有趣,出售Domain之餘更會設計埋Brand Logo。有一o的我覺得幾有意思~

http://www.brandbucket.com/all-domains/

irsty.jpg
xillio.jpg

2008年9月5日星期五

Google Chrome

其實我不打算介紹Google Chrome,因為都冇乜好介紹。反而這兩天就睇到好多人話什麼GC一統江湖,取代IE/FF之類的題目。但由我Blog的Google Analytics所看,就不是這樣說。
其實有很多報告已經指出FF用幾年時間把Market Share提高至接近30%,IE在Browser市場中依然是過半數的。
http://www.tgdaily.com/content/view/38653/113/
要說FF打敗IE可能是很快的事,但GC取代FF似乎就太勉強了~始終用Extension Fine Tune後的Firefox還是天下無敵。

由我的Google Analytics所看,由今年1月1日到今天,visitor多數是香港的,其次是台灣,但IE的使用者是超過7成的。當然除返開一日都只是500個Visitor不代表什麼,但已經可以看到一些提示。

但是為什麼我下載GC時,明明揀左香港Chinese,安裝程式會用簡體中文做Start Menu同Desktop ShortCut.....見到谷歌瀏覽器呢5隻字..感覺好唔舒服....

2008年8月30日星期六

Internet Explorer 8 Beta 2 Is Out

前天IE終於出了IE8的Beta 2,照以往MS的進程,應該RC版/Release版可望年底出現。新功能其實對於Firefox3用家來說似乎沒有太大吸引力。
ie8_accelerators_on.jpgie8_compatibility_on.jpgie8_inprivatebrowsing_on.jpgie8_searchsuggestion_on.jpgie8_smartscreen_on.jpgie8_webslices_on.jpg

Internet Explorer 8 Home
http://www.microsoft.com/ie8
Download Internet Explorer 8 Beta 2
http://www.microsoft.com/windows/internet-explorer/beta/worldwide-sites.aspx

2008年8月25日星期一

DVBViewer不需安裝PowerDVD硬解高清

因為原來TotalMedia 冇得行Vista指定的EVR Renderer,所以前幾天終於迫住上網買DVBViewer,都幾好用。
不過我見好多人都話硬解要安裝PowerDVD,用佢既Filter。我就極不願意安裝一個根本唔會用既軟件。

於是上網搵到一個叫PureCodec既o野。其實同K-Lite果個一樣都係Codec包,
不過佢就多出PowerDVD 8既H.264同MPEG-2 Filter ,亦即係DVBViewer硬解需要既Filter,
雖然係恐怖的Made in China,不過到目前為止都冇乜問題,似乎沒有自行安裝什麼廣告程式...

而且亦包含RMVB同QuickTime Codec,可以用來取代K-Lite Mega喇~
開左硬解後,我用P35+E8400+9600GSO+2GB Ram,睇高清翡翠台一般CPU使用率都唔會超過15%。

Pure Codec :
http://jm.wmzhe.com/

點樣Set DVBViewer硬解可以去呢條Link :
HKEPC
DVBViewer心得+教學(多台同預錄、畫中畫、網上串聯、MHEG5互動)

2008年8月12日星期二

Visual Studio 2008 Service Pack 1 and .NET Framework 3.5 Service Pack 1

等了半年有多的時間了~為什麼我很期待這版Service Pack,因為對我來說重要的更新是
- 修正WebForm Designer的效能
- 增加ADO.NET Entity Designer
- ASP.NET Data Scaffolding Support (ASP.NET Dynamic Data) For GridView, ListView etc..
- ASP.NET AJAX Back/Forward Button History Support
- WPF Performance Improvements

安裝時,要注意,剛從Readme看到:
啟用 Windows Vista 資訊看板時,Visual Studio 2008 SP1 安裝失敗。
若要解決這個問題:
1. 以滑鼠右鍵按一下通知區域中的 [資訊看板] 圖示,位於工作列的最右邊。
2. 按一下 [結束]。

雖然不知錯誤原因,但都是乖乖地先關閉Vista的資訊看板吧。

Introduction
Visual Studio 2008 and the .NET Framework 3.5 enable developers to rapidly create connected applications that deliver high quality and rich user experiences. Visual Studio 2008 enables organizations of every size to rapidly create secure, manageable, and reliable applications that are optimized for Windows Vista™, SQL Server, the Microsoft 2007 Office system and the Web.

Visual Studio 2008 Service Pack 1 (SP1) and .NET Framework 3.5 SP1 continue Microsoft’s investment in market leading development tools and developer platform. SP1 addresses issues that were found through a combination of customer and partner feedback, as well as internal testing. These service packs offer customers improvements in responsiveness, stability and performance.

Overview
http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx
Download Microsoft Visual Studio 2008 Service Pack 1 (EXE Version) (含中文版本)
http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en
Download Microsoft Visual Studio 2008 Service Pack 1 (ISO Version) (含中文版本)
http://www.microsoft.com/downloads/details.aspx?FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61&DisplayLang=en
Visual Studio 2008 SP1 readme
Fixes included in this Service Packs (KB945140)
Visual Studio 2008 SP1 Express Editions

2008年8月4日星期一

LINQ : Using Lambda Expression to AddRange()

在LINQ中使用Lambda Expression,我們可以有效地extract出Anonymous Types中的values.

Example :
public List<string> GetList()
{
List<string> pList = new List<string>();
DataClasses_Store DataContext = new DataClasses_Store();
//Select the customer where live in "HongKong" and Take 100 records
var select = (from c in DataContext.customer_info
where c.customer_location.Equals("HongKong")
orderby c.reg_date descending
select new { c.customer_id , c.customer_name } ).Take(100);
//Fill the List
foreach (var s in select)
{
pList.Add(c.customer_id + " " + c.customer_name);
}
return pList;
}

使用Foreach方法都是一般網上Example做法,但是我們可以使用Lambda Expression並轉換成IEnumerable達至AddRange的要求。

public List<string> GetList()
{
List<string> pList = new List<string>();
DataClasses_Store DataContext = new DataClasses_Store();
//Select the customer where live in "HongKong" and Take 100 records
var select = (from c in DataContext.customer_info
where c.customer_location.Equals("HongKong")
orderby c.reg_date descending
select new { c.customer_id , c.customer_name } ).Take(100);
//Fill the List
pList.AddRange(select.Select(p => p.customer_id + " " + p.customer_name).AsEnumerable());
return pList;
}

COLOURlovers - Color Trends + Palettes

很多Color Pattern供參考的網站。
http://www.colourlovers.com/

2008年8月3日星期日

Firefox Extension : Better Gmail - 讓Gmail更漂亮

我本人三大Free Mail (Yahoo,Hotmail,Gmail) 都有使用,Gmail差不多是最常用的一個,今天試了一個Firefox Extension叫Better Gmail,它會改變你Gmail的改觀,變成更漂亮的介面。
Firefox Add-ons Better Gmail 2
http://addons.mozilla.org/en-US/firefox/addon/6076

2008年8月2日星期六

Facebook API 初試

前排香港好像好興玩一隻叫"古惑仔"的Facebook Application,我都玩左10分鐘左右,覺得太過無聊,所以就Remove了...不過就玩過下Facebook API,原因是想知道這API的商業價值。因為FB的Application是很多,但是真正Third Party的Application好像真的很少呢。

Facebook的API跟PayPal / eBay / Google的都很相似,都是可以經"REST"的介面,把Parameter放上URL去跟Web Service溝通。但Facebook比較特別的是,除REST外,還有"FQL","FBML","XFBML"和"FBJS"的方法。我全部都小試一下,當中FQL比較特別,做個小介紹 :

FQL:
你可以理解為直接在Facebook DB上,於SQL Syntax去Query。(當然有很多限制)而執行FQL依然要引用API中的"fql.query"方法,不是真的給你連接去Database。
FQL Table : http://wiki.developers.facebook.com/index.php/User_(FQL)
Example :
SELECT name FROM user WHERE uid=753087004

return values就會是 :
<?xml version="1.0" encoding="UTF-8"?>
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
<user>
<name>Cheung Ming Ming</name>
</user>
</fql_query_response>

你可以用FQL查詢到很多資料,例如group 的資料, group中有什麼member , album 中有什麼photo , photo 中的image source , user的資料。

或者大家會和我一樣都想到,可以自己做一個facebook user search engine,但事實上做不到的。
原因是使用FQL查詢,先決條件就是你要知道userid , groupid, albumid 等等。
你可能會想到用
SELECT name FROM user WHERE timezone = '8' //取得GMT+0800 (香港)的用戶
/*或*/
SELECT name FROM user WHERE uid > 0 

等等Query去取得User List,但Facebook只會return 一句 errormsg : Your statement is not indexable
因為Facebook文件已經寫明 , uid 和 name是Indexable column ,必須輸入,而且exactly要用"="的operator,因為FQL不支援"LIKE"。當然用REST方法同樣做不到。
參考FQL Functions and Operators :
http://wiki.developers.facebook.com/index.php/Functions_and_Operators

試玩了幾小時,我覺得Facebook API真的很容易使用,幾乎不用看任何Document就可以立即使用。
而且透過FBML,即時Output HTML,令到寫FB App真的很方便。使用FBJS又可以呈現出Facebook的Web 2.0效果。

做Facebook Application十分容易,但如果用VB,C#寫呢?我個人覺得基於上述的理由,擴展性實在不高,所以想靠Facebook API賺錢的人,要認真想一想。

題外話,Facebook好像今天改版了,Home的介面不同了,網址都變成"http://www.new.facebook.com/home.php"

2008年7月17日星期四

網摘 2008-7-16


Web Design Color Trends for Summer 2008
http://www.thewebsqueeze.com/articles/web-design-color-trends-for-summer-2008.html

6 Tips to Optimize Your Website for iPhone
http://iphonemicrosites.com/articles/6-tips-to-optimize-your-current-site-for-the-iphone/
寫iPhone相容的網頁

CSS-Tricks : The Difference Between ID and Class
http://css-tricks.com/the-difference-between-id-and-class/
幾天前,舊公司同事提起CSS的ID和Class問題,正好找到這一篇文章完全解說。