少年幃禿的煩惱


心情也微微的...凸

最近的學習心得 都改放到 少年幃禿的煩惱@Google Sites

2008/10/22

the answer to life, the universe, and everything

Google 有答案

2008/10/16

Embed a Part of a YouTube Video

Embed a Part of a YouTube Video 中提到, 有些時候在 YouTube 的影片, 只需要比較有趣的中間段落, 這時候有個方法可以使用. YouTube 撥放器有一個參數可以指定影片要跳過的秒數. 只需加上 &start=[秒數] 到 Embed code 的兩個 URLs 後面就可以了.

<object width="425" height="344"> <param name="movie" value="http://www.youtube.com/v/UfDr9eD7wKY&hl=en&fs=1&start=99"></param> <param name="allowFullScreen" value="true"></param> <embed src="http://www.youtube.com/v/UfDr9eD7wKY&hl=en&fs=1&start=99" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed> </object> 重點就在上面兩個 &start=99 的部分

因為 YouTube 網站本身不接受這個參數, 如果需要網址的話, 可以直接指到撥放器上
http://www.youtube.com/v/UfDr9eD7wKY&start=99
因為並沒有 end 這種參數, 如果需要截取 YouTube 片段的話, 可以試試看 Splicd 這網站上的功能

2008/10/15

say "hello" to Blackbird

Blackbird 是一個蠻容易使用的 logging 工具.

首先在網頁上放入 .js 與 .css 這兩個檔案:

<script type="text/javascript" src="/PATH/TO/blackbird.js"></script> <link type="text/css" rel="Stylesheet" href="/PATH/TO/blackbird.css" />
使用方法(每個項目都可以點擊看效果):
  • - 隱藏/顯示 Blackbird
  • - 左上, 右上, 左下, 右下 Blackbird 依序移動到四個位置
  • - 放大/縮小 Blackbird
  • - 清除 Blackbird 內容
  • - 新增 debug 訊息
  • - 新增 info 訊息
  • - 新增 warn 訊息
  • - 新增 error 訊息
  • - 開始/結束 time profiler
另外還提供了三個熱鍵來控制:
  • Hide/show: F2
  • Move: Shift + F2
  • Clear: Alt + Shift + F2
Demo 1: Output all message types
log.debug('this is a debug message'); log.info('this is an info message'); log.warn('this is a warning message'); log.error('this is an error message'); (記得按F2把Blackbird顯示出來)

Demo 2: Collect and show local anchors
log.profile( 'local anchors' ); var anchors = document.getElementsByTagName( 'A' ); for ( var i = 0; i < anchors.length; i++ ) { if ( anchors[ i ].name ) { log.debug( anchors[ i ].name ); } } log.profile( 'local anchors' ); (記得按F2把Blackbird顯示出來)

2008/10/10

url.camouflage.js

因為朋友的公司會監控 MSN, 而且傳送/接收網址都會被擋掉, 所以作了一個簡單的 Bookmarklet 用來偽裝網址. 作品在這邊: (我只有測試過 Firefox 3.0 跟 IE 6)

網址偽裝

另外還發現一件事情, IE 6 的 Bookmarklet 有大小上的限制, 我算了一下長度大概是 504 bytes, 所以內容稍微多一點的時候, 就必須做成 .js 檔案來處理, 否則放到 bookmark 的時候會沒有反應, 為了找這個原因, 還花了一點時間. 而 Firefox 上面則沒有這個限制.

2008/10/08

google.loader.ClientLocation

找 ip to location 解決方法的時候, 看到了這篇: APIs for Finding Location

原來 Google 提供了兩種找使用者位置的 APIs, 第一種是比較簡單的使用 ip address 去換. 使用的是 Google AJAX API 裡面多了一個 google.loader.ClientLocation 可以獲得位置的資料.

第二種比較精確的則是使用 Gears 0.4 之後的 Geolocation API 可以透過 ip/GPS 等方式來取得, 不過缺點是要安裝 Google Gears 目前並非每種瀏覽器都可以使用.

google.loader.ClientLocation 與 Google Maps 使用範例:

HTML : &lt;div id="map" style="width: 600px; height: 350px;">&lt;/div> Javascript: &lt;script type="text/javascript"> (function() { google.load("maps", "2"); google.setOnLoadCallback(function() { var map = new google.maps.Map2(document.getElementById("map")); map.setCenter(new google.maps.LatLng( google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude), 12 ); var address = google.loader.ClientLocation.address; var str = '你在這裡: '; str += '&lt;br/>城市 - ' + address.city; str += '&lt;br/>國家 - ' + address.country; str += ' (' + address.country_code + ')'; str += '&lt;br/>區域 - ' + address.region; map.openInfoWindowHtml(map.getCenter(), str); }); })(); &lt;/script>