蜜月之旅 - 馬爾代夫 Day 2

來到第二天,一早就起身落去食早餐,由於時間很早的關係,基本上餐廳都唔係咁多人,甚至坐到後來得番我地倆個,感覺就好似包起左個場咁添,不過就唔知係咪因為冇乜人的關係,所以餐廳的冷氣好似唔多夠一樣,吃一陣就會熱同流汗呢..

食飽飽,收拾好行裝就checkout了,坐上酒店為我們安排的車回碼頭(其實只係一路之隔吧),再坐快艇回去機場準備乘坐水上飛機,回到機場,trader的員工也很好地帶我們去到cocopalm 的counter(完全不用擔心會迷路 :p), 等齊人就去為行李過磅,之後就又坐車去水上飛機的機場...
水上飛機機場
由於未齊人,所以到達水上飛機的機場時,酒店的員工把我們帶到了去他們的候機室,由於都等了一段比較長的時間, 哈哈,所以都等到差不多所有的人也睡著了 :) , 等了約一小時吧,終於可以登上水上飛機出發了
cocopalmn 的侯機室
終於出發了
到達酒店有專人帶我們走去我們的房間,再沿途介紹了島上的各項設施,到達房間後又會講一下房間的各項用品,其中最有用的可以算是一個給你外出用的藤籃了,完全方便了你外出沙灘時可以拿東西出去呢


酒店內的小藤袋
由於去到時已經接近中午時間,當等多一陣行李送到房, 就又可以出去食午餐了, 之後再順便預約好honeymoon 的其他行程(本來的bbq lunch 變成便了一個bbq dinner, 而且也是在當晚進行呢)

最後BBQ就是去了一個冇人的島上進行, 而且在島上還看到一個很大很圓,而且很光的月光呢, 個月光真係照到個海好似有燈一樣,我最初未看到個月亮時仲以為係燈,但再看一下時就發現原來是一個很大又光的月亮呢.





蜜月之旅 - 馬爾代夫 Day 1

終於到了四月的長假期,這個復活節假期我和我的太太到了馬爾代夫作為我們的蜜月之行呢...


由於是蜜月的關係,所以我選擇了一種比較貴的房間,就是那種在水上面的屋仔,可以直接下水,而且房間也是可以望到日落的一種,不過在那幾天好似都冇試過是在房間入面看日落呢..eerrr...=.=!

在選擇酒店時,其實因為對當地那麼多不同的酒店不認識,所以我也只是見房間好像不錯,價錢還可以接受下,在中間選擇的,不過其中我有考慮到是坐水上飛機還是坐快艇吧,最後我是選擇了要坐水上飛機的,因為坐水上飛機的機會其實不多吧,有機會而且package的價錢也差不多為何不試一次呢 :) 畢竟你也不會知道你還會再來嗎, 有機會就試一次吧!最後我們選擇了入住Coco Palm Dhuni Kolhu 的Sunset Lagoon Villas

我們是選擇星航的package, 由香港先飛去新加坡, 再在那裡轉飛住馬爾代夫, 本來的行程第一天應該是有一點時間可以在新加坡機場入面走走, 吃一下東西的, 不過由於航班的延誤(登機已要delay 了,估唔到起飛前又有雷暴要再delay 一下,足足比原定的時間遲了兩個多小時才到達新加坡呢), 所以在新加坡也不用等太耐就又要登機了...


到達馬爾代夫也已經晚上的十一點幾了,由於當地政府所訂水上飛機只能在早上6時至下午6時間飛,所以我們第一晚是需要住在male入面的酒店的,我們入住的是traders hotel, 由機場坐快艇到達male後, 基本上只要走過一條馬路, 加一條小行就到了, 真係好近呢, 進行check-in時,太約是因為package的關係, 所以他們也為我們安排好了第二朝返回機楊的時間同接送了, 不過第二朝可是要7:45就check out 呢....真係早, 而且他們竟然是4:30就開始可以提供早餐(哇...真係早...天都未光就有早餐提供 =.=!, 應該都係好多人會是乘很早的水上飛機所以這樣早就有早餐吃了)

完成checkin 走進房間,房間也算幾乾淨也OK, 反正也只是住一晚, 但係估唔到的就係竟然這裏有一個honeymoon cake在等我們呢, 而且在香港飛住新加坡的途中, 星航也送了一個給我們,最後我們就吃了trader 送的一個作為我們的宵夜後就休息了. 

星航送的蛋糕
traders送的蛋糕


facebook desktop Apps 筆記 - 3

經過一番努力後,重温, 終於拿到facebook 的access token, 之後就可以利用到這個token 建立一個facebook client 的object 來進行我們需要的行動了...

首先我地需要用到這個access token 建立一個facebookclient的object
var fb = new FacebookClient(this.FacebookOAResult.AccessToken);

之後我們就可以使用api 所提供的不同function 來作出update/提取facebook 上的資料了, 下面的簡單的sample, 可以很容易地就能夠把你facebook 上的名字拿出來用
dynamic result = fb.Get("me");
this.lbl_welcome.Text = "Welcome!" + result.name + ",";

這個result 入面當然不止名字那麼少的資訊了, 它入面也會包含著很多不同有用的東西, 但就要慢慢地去找, 我自己就喜歡用debugger, set 定個break point 之後就可以慢慢咁睇下有乜可以用了...

當然除了這一種liner 的方法外(用get 佢一定會等你個request 返來先會繼續下一步), 仲可以用到batchasync的, 這種做法你是不用等個request個回來, 就得進行下一步動作的...
fb.BatchAsync(new[]{
new FacebookBatchParameter(HttpMethod.Get, "/me/albums")
});

上面的code 是會把你的photo album 拿來

當然由於是async 的方式,我們是需要加上一些action 才可以接回個result 的
fb.PostCompleted += (o, e) =>
{
if (e.Cancelled)
{
  var cancellationError = e.Error;
}
else if (e.Error != null)
{
  // error occurred
  this.BeginInvoke(new MethodInvoker(
 () =>         {
   MessageBox.Show(e.Error.Message);
 }));
  }
  else
  {
 // the request was completed successfully
 dynamic result = e.GetResultData();

 this.BeginInvoke(new MethodInvoker(
   () =>             {
    // always remember to check individual errors for the batch requests.
    if (result[0] is Exception)
   MessageBox.Show(((Exception)result[0]).Message);
    dynamic first = result[0];
  ...
   }));
 }
  };

用上以上兩種方法,就可以很容易地拿到你所需要的東西...


PCCW 300M 光纖入屋

早前安裝了pccw 的光纖入屋..再一步將上網的速度提高了去到300M了,整個的安裝過程由於要重新的拉一條線入屋, 所以都用了接近二小時的時間

不過pccw 的光纖入屋真係有一點古怪, 在這裏所說的古怪就係佢借你用的router的lan port 不是行giga 的, 換句話說, 佢最多只能support 到100M, 你要能享受到真正的速度, 請自行買一個giga 的router 又或者直入光纖機吧...@@, 這真係有一點得意, 你借得個router 俾人玩光纖 (over 100M) 係咪應該唔好借一個咁cheap 的呢!?!?

這個是直由光纖機的速度測試
如果以直入光纖機的測試其實效果是幾令人滿意的,不過可惜我係要用router, 雖然已經自行換了用隻linksys E3200, 但係唔知點解個速度都係上唔到去咁高, 明明它的wan to lan throughput 是足夠support 的 :( 唔知係咪家中由router 去電腦d cat 5e 入面d 線太雞, 明明咁短都行唔到上1G =.=


facebook desktop Apps 筆記 - 2

上一篇筆記寫了用api 來連上facebook 的Login 頁,現在就寫下如何把需要的access token 收回來吧...

其實要接回這個access token 的方法好簡單,因為我們是用server-side 的authorization 方法,所以只要我們為之前加入的browser object 連上一個navigated 的action..


之後就可以接住個authorization 的結果了

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
   FacebookOAuthResult oauthResult;
   if (FacebookOAuthResult.TryParse(e.Url, out oauthResult))
   {
     // The url is the result of OAuth 2.0 authentication.
     FacebookOAResult = oauthResult;

     if (FacebookOAResult.IsSuccess)
     {
       loginSuccess();
     }
     else
     {
       MessageBox.Show("Fail to login!");
     }
   }
   else
   {
     // The url is NOT the result of OAuth 2.0 authentication.
     FacebookOAResult = null;
   }
}

而在這個FacebookOAuthResult object入面就可以直接地找到需要的accesstoken 了 :)

this.FacebookOAResult.AccessToken