vlog 2.0上線囉

vlog 2.0 於 9/1 上線了. http://www.im.tv/vlog

不同於 youtube, vlog 2.0 beta 已有相當多的功能是用來建立社群的概念, 基本上, 要能有效黏著使用者是很重要的社群經營手法, 如何能有效黏著使用者? 可以從使用者習慣及方便性來著手, 另外增加成就感也是很重要的, 服務品質, 影音品質, 好友等都是重要的元素. 還有增強了不少使用者方便的功能, 利用了 web 2.0 常用的 ajax 技術, 也更增加了可用性. 使用者可自訂 layout, 自訂個性主題等, 也都相當引人入勝.

再來看一個很重要的功能, 家族, 在 vlog 2.0 beta 中, 家族相信是一個讓人與人及人與家族聚合的一個重要做法, 將原來拆散的一支一支影片(像 youtube), 變成一個人的多支影片(vlog 1.0), 又變成為多人的多支影片, 用家族的方式相信是相當恰當的. 有效地將個人影像庫, 轉變為家族或伙伴的影像庫, 集合眾人的力量來完成同質的影片集結. 從中間也可找到同好, 相信這對社群經營來說是很重要的一項功能.

另外像是 tag 功能, tag cloud 呈現, 留言次, 收藏次, 熱門(到訪), 評分(rank), 而且依日, 週, 月, 全部等方式, 將會有效幫助使用者在茫茫影像海中找尋影像.

不過目前仍在 beta 版本, 似乎還有部分 bug 及邏輯問題尚待修復, 也希望能愈做愈好, 謝謝 vlog 這樣的網站提供如此方便的服務, 也希望大家多多利用, 讓國內的最大影像庫能愈做愈棒囉!

繼續閱讀: vlog, youtube, google video
相關文章: http://www.x2y2.com/fisker/archives/06.09.02-vlog-2.0-beta.htm

分類
程式技術

XML/SWF Charts好用繪製圖表組件

同事給了一個連結, 看到了 www.maani.us 上有個 XML/SWF Charts的繪製圖表的組件, 介面很不錯, 而且又有動畫效果, 於是就來試試看.

這個網站上有多組套件可用, 這次針對 XML/SWF 進行安裝試用, 他的安裝很容易, 就下載放到 web server 上即可, 而 data 的內容可以拉 xml 的檔案, 或是 asp/php/cfm/cgi 等可輸出的網頁皆可. 內容不難實作, 格式如下:

再探AJAX – 簡單小範例

利用原來的文章: https://diary.tw/archives/274 撰寫了一個更容易測試的 html 範例, 一則以測試同步及非同步, 另一則了解在IE及FF的 AJAX Callback 的差異.

幾件事情要特別小心:

1. browser cache:
在做 AJAX Callback 時, 若是 server side 程式不強迫 client side browser 不 cache 時, IE 會發生 callback response cache 的行為, 這個會讓 AJAX 取得的回應發生問題, 當然有多重方法可以解決, 在 FF 就沒有這種現象. 比較單純而又通用解決方法就是在 callback url 上動手腳, 和一般解決 cache 的方法相同, 這裡利用了 javascript 的時間戳記來將 url 變成每次都不同. 一般的實作方法有兩個, 一個是用 Date.parse(new Date()) 方法, 但時間比較不精確(每次取回的值最後三位皆為 000, IE, FF皆同), 另一則是 (new Date()).getTime() 似乎比較精確, 這兩個方法都是傳回從 January 1, 1970, 00:00:00, local time 開始的 milliseconds. 當然, server side 加不加上 cache control 的 header 就比較不影響了, 因為每次 browser 就會乖乖地來 request.

令人驚豔的Moodle

CMS – Course Management System

今天在逛網站的時候, 偶然看到一個線上教學的網站, 叫做Moodle, 想說看看做的怎麼樣, 結果發現 Moodle 是一個 open source 的 web-based CMS, 真不得了了, 把線上教學的這類應該在網頁上實現, 而且功能似乎還不少.

分類
blog服務

新加入FAV功能

加了HEMiDEMi後, 又再加入了 del.icio.us 及 Technorati.com 的加入書籤功能, 利用原來的 TAG 上面, 同時放入了 HEMiDEMi, del.icio.us, Technorati 三種書籤系統的新增.

其中 HEMiDEMi 及 del.icio.us 的引述都可以利用選取原網頁反白處自動將引述帶入加入書籤的連結內(不過此欄位是非必填項目), 另外 del.icio.us 還 support 帶入 tag 的功能, 不過想要在 tattertools 上將文章的 tag 帶入, 若只在 skin.html 上著手是有困難的, 因為既無法拿到 tag div 的 id, 更不用說解析內容後再帶入新增書籤功能頁面, 看之後還有沒有時間研究這段, 可能的話再試試看囉!

分類
blog服務

新增HEMiDEMi文章加入書籤功能

今天才發現 HEMiDEMi 有個將網頁加入HEMiDEMi書籤的功能, (其實是從這個網頁發現的: http://blog.yam.com/syshen/archives/1410294.html), 於是就著手加自己的文章, 利用 HEMiDEMi來加點人氣, 並方便用戶收藏.

連上HEMiDEMi選右上角的[工具], 再選[小貼紙產生器]後, 即可進行小貼紙的產生, 由於它沒有直接 support TT 的 blog 語法, 所以就選其他囉, 不過奇怪的是其他的 href link 最後是 void((URL))這樣的語法, 想說是不是什麼新東東, 自行先測試發現並不會發生連結的結果, 於是就先手動改一下, 並改為用 onmousedown方式(不用onclick原因如後), 產生放在 TT 上用的 HEMiDEMi 的語法, 如下:

<a href=# target=_blank  onmousedown="desc='';via='';if(document.referrer)via=document.referrer;
if(typeof(_ref)!='undefined')via=_ref;
if(window.getSelection)desc=window.getSelection();
if(document.getSelection)desc=document.getSelection();
if(document.selection)desc=document.selection.createRange().text;
this.href='http://www.hemidemi.com/user_bookmark/new?
title='+encodeURIComponent('[ ##_article_rep_title_## ]')+'&url='+
encodeURIComponent('https://diary.tw[ ##_article_rep_link_## ]')+
'&description=
'+encodeURIComponent(desc)+'&via='+encodeURIComponent(via);
return true;" ><img src="http://www.hemidemi.com/sticker/clipcolor_8015.gif" border="0"></a>

(以上的 onmousedown 的 javascript 皆無斷行, 因排版需要有略做調整, 另外TT為避免衝碼, 也將 [ ] 和 ## 間加上了空白, 另外 onclick 會有 selection focus 消失問題(在 IE 下不會), 而取不到 desc, 因為原來設計的引述功能只要反白就會自動帶出哦, 所以改用onmousedown來取得, 方便在產生 HEMiDEMi 標籤時, 帶出使用者反白的引述, 可參閱文章: http://www.quirksmode.org/js/selected.html)

其實重點在於最後的 http://www.hemidemi.com/user_bookmark/new 後面要帶一些東東, title, url, description, via, 分別是加入書籤的[標題](必填), [網址](必填), [引述](非必填), [referer](未出現在畫面上, 應是要做某種分析用), 上面的 javascript 對於 desc 及 via 兩個變數用了相當多的語法來產生, 尤其是 desc, 因為用 desc 所以code會比較大一些, 相對於client side也有一些code的下載負載.

另外採用 anchor + target=_blank 的語法就可以避開 browser 因 window.open 造成的阻擋.

分類
程式技術

404 HANDLER

瀏覽器遇到web server回應的status code 404相信大家都不陌生, 無論是IIS或是APACHE都一樣, 只要是找不到這個檔案, 就是回應 404 給client囉.

如何handle web的回應, 除了是要有更 friendly 的回應外, 對於網站管理員來說, 更希望獲得哪些檔案是 user 要, 但是 web 上沒有的. 還記得之前有篇網路轉寄的內容, 有個 web server 的404回應網頁很有趣, 自怨自艾半天, 讓人會心一笑, 這就是友善回應的一種應用. 但能將 404用程式做某種方式記錄或是通知方便管理員處理, 相信也是在某些應用下的重要功能(當然要依實際狀況來用, 因為實務上發生404的機會並不低).

javascript的除錯小幫手

在 javascript 除錯時, 雖然有好用的 firefox 配合 plugin – firebug 來進行 step by step 的除錯, 也可以即時看到變數內容, 也很容易進行除錯, 但在長篇大論的 javascript 裡除錯, 總是希望能更快地獲得變數的值, 方便在偵測這些變數, 尤其是只有 IE 或沒有 firebug 在手邊時, 怎麼辦呢?

我們常常就直接用 alert 來進行變數的顯示, 但又要一直點一直點, 也是有點累(其實是自己懶), 但變數多時, 就更顯得麻煩, 於是用一種容易一點的方法, 就是配合 DHTML直接做頁面輸出就好了, 雖然談不上什麼技術, 但也算是一種小技巧, 給各位參考:

1. 先放一個 div 進來, 如下:
<div id=output></div>

模糊化你的javascript – Javascript Obfuscator

寫程式的過程中, 若不希望自己的程式碼給別人看, 最好的方法就是只提供編譯好的binary code, 而不提供原始碼(source code). 但 javascript 這種要給client side browser看的程式碼, 似乎沒有辦法將原始碼不提供出去. 但如此一來便會有程式碼外露的問題.

模糊化javascript並非是近期的技術, 早在沒有browser時, 單純的script也都希望被保護或難一眼望穿, 於是將程式碼加密或是混亂化(模糊化)就是這篇文章要探討的主題了.

隨著要讓 web 應用程式有更好的使用者經驗, RIA(Rich Internet Application)會是新一代web應用程式的主流應用技術, 無論是ajax或是單純的javascript, 都會隨著這類應用而使程式碼愈來愈多功能外露至client(再強調一下, 無論在client side做多少檢查, 在server side都要再做一次檢查, 以避免有安全性漏洞, server side的程式是最後把關的地方-當然, db端也能做不少防範事項), 於是無論是就安全性考量, 就程式碼保全考量, (還有另一個考量就是將程式碼壓縮以增進效能), 都應該要將 javascript 做某種程度的模糊化, 由於在模糊化的過程中, 通常會伴隨著體積縮小的效應, 所以 obfuscate 及 shrink 的作用是同時發生的. 基於這樣的好處, 適當地將 javascript 做模糊化是很有幫助的.

新增TT訪問來源(RefererStatistics 0.6)

TT內有個很方便的統計訪問來源的後台介面, 相信這個資訊對交換連結或希望知道網站訪問來源的站長來說, 是很重要的. 一方面可以參考用戶從哪裡來的, 另一方面又可以連回去看看是什麼網站我的網址加入.

本plug-in功能是利用原來內建在TT內的RefererStatistics table內的資料依次數的前五筆排序, 列出在TT的介面上, 下載本plug-in後, 解開放在plugins目錄下, 並在skin上放置標籤後, 即可順利使用, 即使不到五筆, 也有檢查機制, 不會有任何問題, 建議使用區塊方式如下:

     <!-- RefererStatistics-->
     <div class="listbox">
       <h3>訪問來源</h3>
[ ##_RefererStatistics_## ]
     </div>

(注意, 上方的[ ##與## ]之間在skin上不能有空白, 這裡是為了不衝碼留空白方便顯示)
如此一來便能很方便地將訪問來源顯示給來訪的訪客看囉. 參考畫面如下:

希望能對大家在使用TT上能有幫助, 若有任何問題或建議, 也歡迎提出, 謝謝!

下載點:
RefererStatistics-0.6.zip