2009-09-24

Firefox Plugin - Read It Later! (書籤管理、共享及同步工具)


Read It Later 是一個 firefox 上的 plug-in

對我而言,它幫我解決下列的問題

1. 因為很貪心,所以 常常在 firefox 上開了一堆 tab、有一堆待看的文章,但是這些文章都沒消化掉
若是就留在 tab 上面,每次 firefox 開啟時自動 reload 又很佔memory resources
若是把每個都 bookmark 起來一再關掉tab,這樣雖然節省資源 但操作起來又很費工 而且容易忘記閱讀、 bookmark也很容易髒掉

read it later 讓你在「留在 firefox tab」以及「bookmark」中取得一個平衡點
也就是,新增了一個 「待讀列表」的bookmark類別,並可透過該 plug-in 很容易的管理

2. 我有好多台電腦,散佈在家裡、公司,但是 待看的文章也是散佈在各台電腦的 browser tab 記憶內
透過 read-it later 的同步功能,只要在各台電腦上設定 read it later 伺服器上相同的帳號、密碼 就可以透過 read it later 伺服器來同步這些待讀的清單,且 這個帳號、密碼並不用申請 要產生多少 就有多少,是不是很方便呢 ?

3. read it later 與 google book mark 的比較
當然 透過 google book mark 也可以在不同的電腦裡面share同一份bookmark
不過,基於下述理由,我是兩套工具並用:
a. bookmark 是經過消化吸收後 才納入的,與未經消化及閱讀的項目是不同層級的資訊
b. read it later 的同步功能,會把各台電腦的 to-read list upload 到 server, 再download 到 client 變成 local list,在使用上 不用都透過 web、網路 來存取這些 list,相對的速度會較快
且在呈現上,也可依加入待讀列表的時間、網站的位置 等屬性來做排序呈現
雖只是簡單的小工能,但是 卻大大的給了我們方便呢 :)


閱讀全文...

Microsoft SQL Azure 連線方法(Cloud Computing, 雲端運算)


在前篇文章初淺的介紹了 SQL Azure(原名為 SQL Data Services) 及其申請方式

本篇文章,將介紹 SQL Azure 的連線方法

SQL Azure 提供 DB Service 方式,與 Amazon Web Services 的 Simple DB 類似,可以只用 Database 的 service (不過 存取的命令就不同了, Simple DB 是透過 REST or SOAP Interface, 而SQL Azure 則是透過 OLE DB/ODBC/ADO.NET 並透過 T-SQL 語法來存取)
而與 Google App Engine 的模式不同,Google App Engine 內建的 Database 不能單獨存取,只能透過佈署在 App Engine 上面的 Application 存取

既然可獨立存取,所以 想當然爾,運用 Microsoft Cloud Computing 開發 Web Application就會有兩種模式

A. Web Application 佈署在 Windows Azure, 並由 SQL Azure 提供 Database Services
B. Web Application 佈署在 自家環境, 並由 SQL Azure 提供 Database Services

然而,不管使用哪一種模式,Web Application 都是透過傳統 SQL Server 的 1433 port 來存取SQL Azure

所以囉,若是 Web Application or Developer 在 firewall 裡面,對外的連線被管制的話,那麼 使用上述 A 模式會是比較便於開發的

在前篇章提到,若是成功申請 SQL Azure Services後,會提供你三種連線方式的 Connection String



不管是哪一種,簡單來講 該 services 就是 listen 在
tcp:servername.ctp.database.windows.net:1433 這個位置

只要你用對連線的方法 (ODBC, ADO.NET, OLE DB) 且對外的網路通暢,應該就能順利存取

1. 初次使用,最常試的應該會用現有的 SQL Server 2008 SSMS 管理工具來連結,雖然 SQL Azure 與 SQL Server 並不完全相容,但是 使用 SSMS 還是可以順利連上

只要在連線至伺服器處(Connect to Server)
server name的地方輸入 [你的sql azure server name].ctp.database.windows.net
帳號則是要輸入 [你的sql azure帳號]@[你的sql azure server name]

連進去後,會出現一些錯誤訊息 (這是因為 有些功能 SQL Azure 與 SQL Server不相容),不要理它
進去後雖然 object explorer 不能用,不過 可以透過 新增查詢(new query) 的方式來進行 SQL command 的下達,這是沒問題的

step-by-step 的操作,可以參考 http://blogs.msdn.com/jimoneil/archive/2009/08/18/sql-azure-ctp-1.aspx

b. 可以使用 SQLCMD 這個 DOS 下的工具來做連線及管理
這個工具位於你 local 的 SQL Server 安裝位置的 \Tools\Binn 資料夾下

以下是簡單的 demo:

連線:

sqlcmd -S [servername].ctp.database.windows.net -U [username]@[servername] -d [database name]
密碼:

下命令:

1> -- 先建立 table, 注意 在 SQL Azure 上面的 table, 一定要有 clustered index
2> -- 這應該是因為 SQL Azure 會自動幫你做 table partitioning 以提供 scalability 能力的緣故
3> create table jobs
4> (
5> job_id smallint identity(1,1) primary key clustered,
6> job_desc varchar(50) not null
7> )
8> go
1> -- 塞一些簡單的資料
2> insert into jobs(job_desc) values('manager: this is job titled manager')
3> go

(1 個受影響的資料列)
-- Query
1> select * from jobs
2> go
job_id job_desc
------ --------------------------------------------------
1 manager: this is job titled manager

(1 個受影響的資料列)
1>

3. 透過 ODBC 的方式連結,使用 windows 的 ODBC 資料來源管理員
一樣,輸入 server 位置、帳號、密碼後 進行連線
只是,在進行連線測試時 要嘛就出現「網路錯誤」的message 又嘛就出現類似下例的錯誤,
所以 個人目前使用 ODBC 連線 是沒有成功過的

Microsoft SQL Server ODBC 驅動程式版本 03.86.3959

執行連線測試...

試圖連線
連線已建立
查證選項設定
[Microsoft][ODBC SQL Server Driver][SQL Server]Built-in function 'databasepropertyex' is not supported in this version of SQL Server.
與伺服器中斷連線

測試失敗!

4. 透過 ADO.NET 來連線,只要 connection string 的設定正確,是可以正常用 ADO.NET 來存取到的,但如果你是在公司內部開發,那麼要注意對外連線 1433 port 是否有被 firewall 阻檔

5. 透過 3rd party tool
可能是目前很多人遇到 SQL Azure 的連線問題,所以 有個公司開發了一個 Web 的小工具,透過它來連線到您的SQL Azure Server Instance

這篇文章是這個工具的使用介紹: http://www.cerebrata.com/Blog/post/Browser-based-SQL-Azure-Explorer.aspx

基本上,只要先連到 https://onlinedemo.cerebrata.com/SQLAzureClient/default.aspx
輸入:
database name:
username:
password:

後,就會透過該介面連到您的 SQL Azure Server
好處是,因為是 透過該網站中介連過去的,所以 就算你人在 firewall裡面,還是可以透過這個圖形化的工具來管理
壞處當然就是,因為是透過對方中介,所以 你的 帳號、密碼以及中間的使用過程 都能很輕易的被該中介站給攔劫使用

所以,若是要拿來做非測試的用途,還是不建議使用這樣的方式,資安的風險會較高


畫面如下:








* 相關文章: Microsoft SQL Azure 初步介紹及申請


閱讀全文...

2009-09-23

Microsoft SQL Azure 初步介紹及申請(Cloud Computing, 雲端運算)


繼 Amazon Web Servcies 提供的 EC2, S3, ... 、 Google App Engine(GAE) 提供的 cloud computing(雲端運算)平台後,Microsoft 也開始準備提供類似的服務
其中,包含主要可佈署 ASP.NET Application 的 Windows Azure、.NET Services 及 SQL Azure.. 等

其中,SQL Azure 主要是提供傳統的 SQL Server 服務,只是 運算資源及管理平台 都統一由 Microsoft 來提供,也就是說 使用者向微軟申請 SQL Azure 的服務後,微軟會在他的 cloud computing 環境當中,為你建立一個 SQL Azure Server instance 並提供你使用,當然 該 SQL Azure Server 也是透過 port 1433 來存取的 只是SQL Azure Server 的版本較為客製化,連線及使用的方式 會與傳統使用 SQL Server的方法有點小小的差異,至於該 SQL Azure Server 所需的硬體、軟體資源、機房、頻寬的管理 都統一由 Microsoft 負責,未來正試使用後 會依你的使用量來收費(Utility Computing 的觀念,未來應該會依 DB 使用量、Query 數量、CPU使用量... 等值來做對應的收費)

下列先介紹 SQL Azure 的申請方法:

1. 至 http://www.microsoft.com/azure/register.mspx 申請 SQL Azure 的 CTP (Community Technical Review) 使用權

2. 申請完後,Microsoft 會寄一封含試用碼(invitation code)的信件給你,內容大概如下

1) Visit https://sql.azure.com
2) Sign in with a valid Windows LiveID
3) Enter your invitation code
Your invitation code is: 6fb28cf2-xxxx-xxxx-xxxx-a098ae31807a
4) Create your SQL Azure Server (and databases)

3. 依信件指示,login 至 https://sql.azure.com, 登入後畫面類似如下
在第一次登入時,會讓你輸入 invitation code 並以建立一個 SQL Azure Server instance, 其中有一些 管理者帳號、密碼以及這個 SQL Azure instance放置的地點... 等選項需設定
(目前只提供 USA 這個地點供選擇,未來應該會提供各地域,供你選擇網路距離較近的 Server,亦會提供多地域的 clustering 的機制)



4. 上述畫面,按 manage 則可開始管理這個 Microsoft 提供給你的 SQL Azure Server instance
在畫面上,你會看到 微軟提供給你的 server name
未來,要存取這個 SQL Azure Instance 的話,就統一會透過 servername.ctp.dat
abase.windows.net port 1433 來存取



5. 上述畫面可以 建立、刪除 該 instance 上面的 database, 但目前也僅有這樣的功能
其它針對 database 的管理( table creation, view, stored procedure, trigger, ... 等等的建立)都需透過SQL Azure 提供給你的 connection string 透過外部的tool或程式來進行管理

目前提供三種連結方式: ADO.NET, ODBC, OLE DB
但 很遺憾的 目前若要直接用 SQL 2008 的 SSMS 來管理的話 表面上會預到一些小問題,但實際上是可以用的
用 ODBC 連的話,個人在家裡 是還沒成功連上過
ADO.NET 確定沒問題
在下一篇文章內,將會介紹用 SSMS 以及 SQLCMD 來連線管理的方法。



* 相關文章: Microsoft SQL Azure 連線方法


閱讀全文...