Youtube推出繁體中文介面(tw)版

隨著 youtube 推出繁體中文版, 相信會有更多人台灣人使用 youtube, 不過其實 youtube 的操作並不複雜, 再加上多是看 video 的內容, 相信即使沒有繁體中文介面也不致於影響對英文看不懂的 user, 但對於台灣的用戶來說應該是一大福音.

不過還是不怎麼容易上傳成功及有時觀賞會看不到的問題還是要加強改善才是, 身為世界第一大視頻分享網站, 推出對繁體中文的版本, 真的是要給他鼓勵一下囉, 表示對繁中用戶的重視.

今天放在 tw 首頁上的 video (台灣讚啦):

真的台灣讚啦!!

相關新聞:
http://www.libertytimes.com.tw/2007/new/oct/14/today-e2.htm
http://blog.chinatimes.com/blognews/archive/2007/10/15/207304.html
http://news.sina.com.tw/tech/sinacn/cn/2007-10-18/113238199671.shtml

國內提供相關服務的網站:
http://www.im.tv/vlog (IMTV)
http://www.wretch.cc/video/ (無名小站)
http://mymedia.yam.com/ (天空)
http://vlog.xuite.net/ (hinet xuite)

分類
好用軟體

Live HTTP headers for firefox

之前介紹過 firebug 新的 network monitoring 功能(https://diary.tw/archives/485), 最近發現有時在追蹤 cache data 時, 不是很方便, 因為要在前方的 + 號展開, 而且比較麻煩的是要 check http status code 比較不方便, 他並沒有直接秀出狀態, 而是以顏色的方式區分, 於是再找找有沒有更單純的 headers 檢視功能, 找到了一個 Live HTTP Headers for firefox 的方便 Add-ons.

於是下載安裝了 (link), 發現該功能雖然單純, 不過十分方便, 就只有 headers 的部分會顯示出來, 而且也可以以 sider bar的方式 dock 在 firefox 的左側, 對於要常常在查 http 效能及 cache 狀態的我, 感到十分方便.

真的是一個還蠻實用的 http headers 的觀察器.

PS. HTTPS 也都可以正常觀察 headers 的部分哦(因為 headers 本來就沒有加密啦!! 當然原來的 firebug 的 network monitoring也都可以啦, 只是操作上麻煩一點)

下面是他的呈現結果:

分類
程式技術

好炫的不用javascript程式判定browser方式

一般我們在判斷 client 的 browser 時, 是利用 javascript 取得 client browser 屬性, 若是不使用 javascript 的狀況下, 如何能做到呢? 可以利用 html hack trick 方式來達成, 這篇文章
http://wafful.org/~takesako/html20hacks/browser-detect2.html
介紹了這個方式:

<img

 /''src="firefox.gif"
 /""src="sleipnir_gecko.gif"
    "src="safari.gif"
   ""src="konqueror.gif"
 /src="ie.gif"
   src="opera.gif"
   src="lynx.gif"
>

只能說真的太神奇了, 利用了 browser 的解析方式, 來判定 browser 的型態, 這篇同樣利用類似的方法達成:
http://wafful.org/~takesako/html20hacks/browser-detect.html
不過 html 碼就不是可視字元囉.
利用這種方式來判定 browser 真的很有趣.

相關文章:
http://www.hedgerwow.com/360/dhtml/html-browser-detection.html

分類
Blog服務

google blog search網誌搜尋

今天由 trackback 發現有個 google 的 blog search, 於是訪問了一下, 原來還在 beta 階段的 google blog search, 給大家參考看看囉:

看了一下他的常見問題, 其中有項:

哪些網誌包含在網誌搜尋中?

「網誌搜尋」的目標是納入每一個發佈網站資訊提供 (RSS 或 Atom) 的網誌, 而不限於 Blogger 網誌或任何其他服務提供的網誌。

所以應該是由 rss 或 atom 的結果為 google blog search 的目標囉!

連結為: http://www.google.com/blogsearch?hl=zh-TW

分類
Javascript

Javascript的同一父網域下的crossdomain問題

今天在處理一個單純的 popup window (利用 window.open) 的子視窗, 在子視窗內進行 window.opener 的函數調用, 一般的狀況下, 都在同一網站(列如都在 www.foo.com)下沒有 cross domain 的問題, 但若是在兩個不同 domain 時(例如 www.foo.com 及 www.foo2.com), 就會有 cross domain 問題. 這個其實是一個單純的 security 問題.

不過若是今天是在同一家公司內的 cross domain, 例如 www1.foo.com 及 www2.foo.com 兩個 domain 下要執行這樣 cross domain 時, 是否能解決呢? 答案是肯定的, 其實和 cookie 域名共用設定方式相同, 上級域名共用的狀況下, 可以進行 document.domain 的設定以達成此項目的.

我們可以分別在 page1 在 www1.foo.com 及 page2 在 www2.foo.com 的網頁內 javascript 要執行 cross domain 指令前先執行

document.domain = "foo.com";

再繼續後續的程式碼即可, 這樣就不會有 cross domain 的問題囉.
不過也是有一些限制, 就是必須是在同樣的上級域名下, 才能使用, 而且也無法在 www1.foo.com 上將 document.domain 設定為 foo2.com 這樣的 domain, 這個原理其實和 cookie 的 domain 原理是相同的.

參考資料:
http://www.lhelper.org/tech/communicate_between_domains.html
http://www.cnblogs.com/xiaozhang/archive/2006/07/27/461306.html
http://www.mozilla.org/projects/security/components/same-origin.html
http://msdn2.microsoft.com/en-us/library/ms533028.aspx

分類
Database

查詢SQL Server中Table是否有Primary Key

資料庫中的 table, 大家都知道 primary key對 table的效能影響很大, 沒有主鍵的 table, 對於一般在程式實作時會有一定的困難, (某些狀況下例外, 例如 log), 尤其是在更新列時, 沒有 primary key時的時候, 效能根本是很糟糕的, 更危險的是可能會有資料本身邏輯上的問題. 今天我們不是來探討 primary key 的重要性, 而是找出資料庫中, 沒有 primary key 的 table.

其實很簡單地可以利用 sysobjects 這個系統表來查詢, 簡單描述如下, 我們利用 sysobjects 對自已對照, 並利用 parent_obj 這個欄位來串接起來自已對應自己的查詢, sysobjects 內有 table, view, primary key (index), 等資訊, 而我們就利用這樣的方式來進行查詢, 整理好的查詢如下:

分類
懶得分類

如何在ASP內判定BIG5碼中文字

大多數的 asp 應用程式若是在 utf-8 模式下開發, 前面多會有這麼一行:

<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%>

然而有個很麻煩的事是在處理判定 BIG5 編碼的中文字. 在正常的狀況下, 應該不會用到這樣的功能, 因為無論是 BIG5 或非 BIG5 的中文字都是可以在 UTF-8 的環境下良好並存的, 但若是和一些舊的程式或其他異質環境介接, 就會遇到這種問題, 解決的方式是利用 asp 的 codepage 來轉換內碼後判定即可. 方式如下:

Function IsBig5(strChar)

    ' check A440~C67E 常用字, C940~F9D5 次常用字

    session.codepage="950"
    Dim lngAsc
    lngAsc = Asc(strChar)
    IsBig5 = (lngAsc >= -23488 And lngAsc <= -14722)
    If Not IsBig5 Then IsBig5 = (lngAsc >= -14016 And lngAsc <= -1579)
    session.codepage="65001"
End Function
分類
Database

x64下odbc建立問題

今天在處理一個 odbc 建立在 x64 (64bit) server 2003 上的狀況, 狀況十分奇妙, 一般我們在設定 odbc 時, 是直接使用 [系統管理工具] 裡的 odbc 來進行設置, 當我設置好了之後, 有趣的事發生了, 居然透過 odbc 連接 db 的程式有個這樣的 exception:

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

如此一來設置好的 odbc 就形同虛設, 查了半天也查不出原因, 後來在 google 上找到一篇 citrix 的 kb (link) 試了一下, 居然就好了, 可以找得到了, 仔細檢查一下原因, 整理如下:

在 x64 內透過 ui 建立的 odbc 是 64bit 的 odbc, 而原來執行的程式若是 32bit 的話, 是看不到這組 odbc 的, 也就是說 odbc 也是有區分 64bit / 32bit 的. 如何判斷原來 ui 上的 odbc 是 64bit 的呢, 我們看一下畫面截圖:

分類
懶得分類

好好玩的手機特效鏡

剛在逛博客來時, 不小心發現了這個好玩的東東, 手機鏡頭, 如同一般數位相機, 這種鏡頭是外接在手機上面的, 看了一下, 其實價格不貴, 而且又是 kenko 的, 十分有趣, 在這裡介紹給大家看看囉!

這是廣角鏡:

https://addons.books.com.tw/G/N00/4/N000021044.jpg

可以做出這樣的效果:

http://219.84.164.83/G/CD/item/Accessory/Kenko/MPL-WA/3.gif

另外有偏光鏡, 近攝鏡, 側拍鏡, 等好玩的鏡頭, 其中還有一個三菱鏡很特別:

https://addons.books.com.tw/G/N00/1/N000020931.jpg

可以拍出這樣的特效耶:

http://219.84.164.83/G/CD/item/Accessory/Kenko/MPL-3MH/3.gif

真的是很特別哦!
其他有趣的鏡頭可以參考這頁: link

分類
.net

.net Cache物件的Add及Insert不同

最近又剛好寫到 .net Cache 物件的功能了, 之前有介紹過 .net Cache 物件: ASP.NET Cache物件使用方式及應用, 接下來說明一下他的 Insert 方法和 Add 方法的不同.

由於在使用 Cache 時, 通常是先 check Cache 的資料是否存在後, 再進行資料的 Cache 寫入, 然而寫入的方式有兩種, 一種為 Insert , 一種為 Add , 其中差異不少, Insert 方法有幾種不同的排列組合外, 尚有可以一直覆寫的功能, 也就是說, 在利用相同的 key 去 Insert 時, 他會利用最新的資料去覆寫掉原來的資料, 而 Add 方法則是不會覆寫, 也就是 Add 會加不進去, 但也不會產生什麼錯誤, 呼叫完 Add 方法後, 若該 Cache 的 data 仍為有效, 則將該 Cache 的 object 傳回, 而且不異動(更新)原來的 Cache .

上面的述描對於一般的應用都沒太大影響, 反而是 Insert 方法的彈性比較大, 不過由於 Insert 方法會有覆寫的問題, 所以若是大量訪問的網問上, 應該效能會略遜於 Add 方法, 因為 Add 方法在 Cache 尚未過期前, 就不會再去異動 Cache 的資料了, 這點可以再測試看看!

微軟 MSDN 的資料:
Cache.Insert 方法
Cache.Add 方法