分類
Javascript 懶得分類

SyntaxHighlighter – 語法高亮標記

在 “懶懶喵日記” 那裡看到一個不錯的 client 工具, dp.SyntaxHighlighter, 因為之前也想在網頁上呈現一些程式碼, 而看起來也希望能達到比較像程式碼的方法呈現, 所以就來試用了一下, 該網站連結:

http://www.dreamprojections.com/syntaxhighlighter/

使用這個 javascript library 的好處是對 server side 沒有負擔(因為都丟到 client side 去做了), 而且對於大部分的應用領域來說都非常足夠了, 功能很多, 支持的語法有:

1. C#
2. CSS
3. C++
4. Delphi
5. Java
6. JavaScript
7. PHP
8. Python
9. Ruby
10. SQL
11. Visual Basic
12. XML / HTML

而且還有指定行, 顯示行(line #), 顯示列(col #), 動態展開, 看原始內容(利用 textarea 新開視窗), 列印等不錯的功能, 但是還是有一些些缺點, 例如無法指定大小(預設是全部程式碼顯示的高度及所在區域的全部寬度, 所以寬度可以自行利用 html 語法再調節, 但高度沒辦法, 有篇類似的方法, 可以參考這篇文章: http://bbs.toseek.info/cgi-bin/topic.cgi?forum=3&topic=36 ), 但真的還是很好用的一組 Syntax Highlighter, 所以推薦給大家囉, 目前也已應用在 sample.diary.tw 網站上, 例如: http://sample.diary.tw/2/chart1.php , 未來應該會多利用這組程式碼來作為顯示程式碼的工具囉!
使用方式很簡單, 下載該組件後, 在要使用的頁面上加入:

css:

<link type="text/css" rel="stylesheet" href="Styles/SyntaxHighlighter.css"></link>

javascript 函數:

<script language="javascript" src="Scripts/shCore.js"></script>
<script language="javascript" src="Scripts/shBrushXml.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.HighlightAll('code');
</script>

其中 css 可自行參考如何放置, 在 javascript 則是要含入 shCore.js 後, 再含入 shBrushXXX.js 其中 XXX 為要使用的程式語法, 如 Xml, Cpp 等. 接下來就是要一行起始指令:
dp.SyntaxHighlighter.HighlightAll(‘code’);
其中的 ‘code’ 為要 highlight 區域 (textarea) 的名稱, 所以要使用就用
<textarea name=code class=c>….</textarea>
其中的 name 就指定為 code 即可, 而 class 則為要 highlight 的程式語法名稱對應的 class 即可, 另外尚有幾個功能用參數如下:

1. Smart tabs
2. First line
3. Expand code
4. Show columns
5. No gutter

可以再參考說明, 例如希望顯示預設先不展開, 可以這樣下:
<textarea name=code class=c:collapse>….</textarea>

呈現結果很不錯哦, 如下:

請大家多多利用!
本篇文章的 sample 可以參考: http://sample.diary.tw/3/cpp.php

延伸閱讀: http://www.cnblogs.com/unruledboy/archive/2005/06/28/HTMLHightLightCS.html

 

分類
Database

用CTE來取出指定筆數 – SQL2005

SQL2005中有個CTE (Common Table Expression)功能十分強大, 可以用來做遞迴式的參考, 藉以達成複雜的查詢邏輯並簡化查詢指令, 是 SQL2005的一個新的重要功能.

在使用 MySQL 時, 可以容易地利用 limit m, n 的語法進行指定筆數的取得, 然而在 SQL Server這裡一直沒有這種功能. 這樣的需求通常是應用在分頁上會用到. 不過SQL Server可以利用 ADO存取方式內的分頁方法來進行, 也就避開了這個問題. 但無論如何, 仍是將所有的資料帶到查詢端(如客戶端或是中間層)後, 再進行分頁, 效能仍然不佳.

分類
Database

方便好用的Database Mail – SQL2005

有在用 SQL 2000的使用者還記得 SQL Mail吧. SQL Mail是利用MAPI的方式進行mail的傳遞, 在實務上往往會使用outlook配合exchange server來進行環境的建立, 也造成在使用SQL Mail前, 要準備好這些環境. 但在一般的應用上, 要使用SQL Mail, 又要有這些環境, 不見得很容易實現. 另外再加上SQL Mail在cluster環境時, 也要注意兩台的MAPI profile的設定, 才不會發生發不出mail的問題.

是的, 你的不方便, MS都知道, 到 SQL 2005後, 你會發現多了一個 Database Mail 的功能, 本篇文章就是來介紹這個方便又好用的 SQL Server發信方式. Database Mail 是基於 SMTP的方式來寄送信件, 所以很容易設定, 不太需要像 MAPI 需要 outlook 介面及 exchange server 配合寄送, 當然還是要建立 profile, 好讓 SQL Server 明白你要發信的帳號. 不過因為是走 SMTP, 所以設定也就容易多了. 而且 Database Mail 是能完全支援 cluster 的(因為是用 SQL Server 的機制, 而非外部的資源).

HEMiDEMi影片瀏覽功能上線

HEMiDEMi 今天在 login 的時候發現有個 video 區可以直接瀏覽 video功能. 於是點入來看看, 發現可以直接將 embed 語法嵌入, 其實也就是將 youtube, google video 的 embed 語法再利用一個欄位存入, 方便大家在線上收視這些內嵌的影片.

不用離開黑米就能預覽影片?!

Flickr geotagging功能上線囉

Flickr 我沒用過!

但我看過不少 Flickr 的圖片及用戶, 等我有空, 我一定要來玩看看.

Flickr 幾天前推出了 geotagging, 也就是利用了地理資訊來做為圖片的標籤. 之前有 blog 結合地理資訊的應用, 現在 Flickr 推出了這樣的一個服務, 相信對於圖片的提供者來說會是非常實用的一項功能. 藉由這樣的功能, 可以輕易地將圖片的拍攝位置利用地圖來表達, 相信這會是最容易讓人了解的一個方法. 反過來說, 也就是讓閱讀者能 “身歷其境” 的感覺增加了.

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 等可輸出的網頁皆可. 內容不難實作, 格式如下:

分類
Javascript 懶得分類

再探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, 更不用說解析內容後再帶入新增書籤功能頁面, 看之後還有沒有時間研究這段, 可能的話再試試看囉!