分類
Windows

安裝Windows8到VM裡

昨天晚上試看看把 Windows 8正式安裝到VM裡來試看看, (之前有將 Windows 8 Preview 版裝在實機中過), 也測看看安裝的時間, 在 i5 的機器上, 大約只花了不到15分鐘的時間就裝好了.

首先是那個爭議很大的GUI, 不過看起來應該真的還蠻適合 touch screen, 只是在 VM 中沒有 touch, 所以沒得體驗這個部分, 用滑鼠也是可以操作的.

再來就是測試 desktop (也就是傳統桌面), 這個部分還不錯, 和之前 Windows 7 起的變化沒有那麼大, 把桌面上的我的電腦, 控制台等 icon 加回來後, 就和原來的 windows 差不多了.

繼續玩那個 GUI, 發現其實還不錯, 不過真的需要一些時間適應, 也上了市集下載了一些 APP 玩看看, 蠻有意思的.

微軟這次的大改版, 真的是破釜沈舟, 不過目前看起來還沒有太大的戰績, 或許也是和大家的認知想法有蠻大的落差, 再加上其實 touch 的部分已經被 apple 及 android 玩得很大很久了, 大家的使用者體驗都有了基本的想法, 短時間內應該很難趕上, 不過也希望微軟在這個部分的戰場能多加油啦!

分類
懶得分類

中華電信提供3G轉Wi-Fi服務

今天的新聞: http://www.appledaily.com.tw/appledaily/article/headline/20121120/34652406

這個技術本身沒有太多問題, 也是很好的配套措施, 只不過問題是沒有 Wi-Fi 的地方怎麼用, 人家之所以買3G就是希望能有更好的覆蓋率, 而不是要用Wi-Fi不是嗎? 再反過來看, 是不是轉了Wi-Fi之後就會順呢? 大家一起上到那個Wi-Fi的熱點(AP), 說不定也是塞在那個AP上啊, 會不會比較快也很難說.

結論仍是3G吃到飽, 吃不飽… 呃…

分類
懶得分類

3G吃到飽, 吃不飽

最近吵很兇的吃到飽應要取消的新聞, 其實有意思的地方就是最終會取消的這件事, 取消就取消, 反正正常用量也不可能大到哪裡去.

但之所以會吵得如此熱烈, 主要應該是在使用者對於電信業者的品質滿意度不夠, 思考一下, 原本辦吃到飽的人, 可能一方面是擔心用過量而繳太多錢, 另一方面可能有人覺得可以替代固網, 就直接用吃到飽的方案, 回頭先想一下, 目前的電信網路品質如何, 才會生出目前這樣很妙的狀況.

因為品質不好, 吃到飽根本吃不飽, 怎麼還要取消呢? 所以應該是有效改善品質, 提高傳輸量的價差, 用者付費的觀念我相信大家都有, 何不有效地制定價格方案是隨著用量來調整的方式更好呢?

但到底用得愈多, 折扣要給得愈多還是用得愈多也不給折扣呢? 這個其實就得看是否鼓勵用量. 不過總量用的愈多得付費付得愈多是個大準則, 這樣就自然而然的不會有過大的使用量, 而用量大的使用者自然多繳一點錢, 相信電信業者也不會不接受, 這樣一來一往, 或許可以平衡一點.

但要記得重點是品質很重要, 到底是少數使用者用量過大而造成的品質下降, 還是基礎建設造成品質下降, 目前的聲音或許是因為後者而興起的浪潮吧! 但吃到飽的費用也是要檢討才是, 不然買吃到飽的用戶, 當然會想多用一點, 但品質又不好, 自然抱怨連連. 所以提高吃到飽的費率, 而以量計價的方案精算多一點, 或許能有效改善.

其實目前電信業者的許多方案也就是如此了, 非吃到飽的套餐, 都有設收費上限的門檻, 某種程度來說也就是吃到飽的費率在該門檻上, 也就是仍有吃到飽, 只是費率較高, 自然不是吃不吃到飽的取消不取消的問題啦!

所以整個歸納起來導火線就是電信業者自己要擴張用戶使用上網而提出的低價吃到飽方案害慘了自己吧!

分類
懶得分類

免費試用Windows Azure的雲端服務

微軟的雲端服務 Windows Azure 目前有免費試用的版本, 方便給在學習及測試階段的開發者們一個好用方便的服務.

入口: http://www.windowsazure.com/

進來之後, 可以直接在線上申請試用 3個月免費, 點下[免費試用], 免費的內容如下:

  • 計算 / 每個月 750 小時的小型計算時數
  • 網站 / 10 個網站
  • 行動服務 / 10 個行動服務
  • 關聯式資料庫 / 1 個 SQL 資料庫
  • SQL Reporting / 每個月 100 小時
  • 儲存體 / 35 GB 及 50,000,000 個儲存體交易
  • 頻寬 / 無限制輸入及 25 GB 輸出
  • CDN / 20 GB 輸出及 500,000 個交易
  • 快取 / 128 MB
  • Service Bus / 1,500 個轉送時數及 500,000 則訊息

登入 windows account 之後, 會需要輸入電話號碼(用來收開通簡訊)及信用卡驗證身份(避免濫用)後, 就可以順利開通了.

接下來就是使用這個 3個用的免費服務, 最快的方式是直接建立網站功能(即website), 免費內容可以建立10個網站, 所以就來新增一個網站看看, 從 Web Sites 內容下方, 按下 [+NEW] 後就可以新增一個網站, 接下來會有三個選項:

  1. QUICK CREATE
  2. CREATE WITH DATABASE
  3. FROM GALLERY

為能快速就有個網站可以試玩看看, 我們來選 3. FROM GALLERY, 就可以利用架站的套件直接裝好來用, 如 Drupal, WordPress, Joomla, Mediawiki 等.

來裝個 Drupal 試看看, 選擇後, 需要輸入資訊畫面如下:

第一個 url 就需要輸入一個唯一網址, 然後建立一個新的MySQL資料庫, 選擇地區後, 按下一步, 輸入完成資料庫相關資訊後, 回到 Web Sites的管理介面, Windows Azure 會開始部署, 等一下下後, 就會出現部署完成的資訊, 並該 web site 的狀態為 running , 點下自訂的 url 後, 會進入設定安裝 drupal 的畫面如下:

接下來就很單純啦, 一步一步就可以完成這個 drupal 的安裝. 真的很快很方便, 而且馬上就可以用了呢!

目前裝好了兩個測試的 web site, 一個是 wordpress: http://mypress.azurewebsites.net/ , 另一個就是 drupal: http://dp7.azurewebsites.net/ 還真的蠻方便的.

接下來也可以自行試看看用之前的 QUICK CREATE 來建立一個空的網站, 建好之後, 進到管理介面中的 configuration 可以看到預設的 .net framework version 是 4.5, php 是 5.3 的版本.

另外若需要用 ftp 管理, 要到 Dash board 中, 點右邊的 setup git publishing, 也就是 git publishing 和 ftp 都用一樣的帳號密碼, 詳情可以參考這篇:

http://blog.syntaxc4.net/post/2012/09/13/enabling-php-5-4-in-windows-azure-web-sites.aspx

這樣就可以利用 ftp 來進行檔案的上傳及管理了. 由於站台是可以執行 asp.net 及 php, 筆者也上傳了 asp 的檔案測試, 也是可以執行的, 有興趣的朋友們可以試看看這個 Windows Azure 提供的免費 3個月試用服務.

若是用量(QUOTA)超過, 預設是不會扣款, 只是服務會暫停, 測試的網站應該不太會這麼快就用完吧, 好好試用看看吧!

若是網站要自訂網域, 則必須在 SCALE 那裡將模式由 free 設為 shared 或 reserved 才行, 可以參考這篇: http://www.windowsazure.com/en-us/develop/net/common-tasks/custom-dns-web-site/

3種程式支援 sample:
php: http://w3.azurewebsites.net/1.php
asp: http://w3.azurewebsites.net/1.asp
aspx: http://w3.azurewebsites.net/1.aspx

快試看看吧!

分類
Database

資料庫整筆ROW比對

在資料庫操作時, 有時會需要比對資料表的內容是否一致, 或是某些資料的某些欄位是否一樣, 若是使用 SQL 指令來逐行比對, 會是個比較麻煩的操作方式, 使用 CHECKSUM 函數, 可以方便地將待比對的資料(多欄亦可), 計算出 hash index (int)後, 再進行比對, 舉例如下:

兩個 table 資料:

table TBL_TMP1
fno fdata fcreatetime
1 ‘data 1’ ‘2012/1/1’
2 ‘data 2’ ‘2012/2/3’
3 ‘data 3’ ‘2012/2/4’
4 ‘data 4’ ‘2012/4/1’

table TBL_TMP2
fno fdata fcreatetime
1 ‘data 001’ ‘2012/1/1’
2 ‘data 2’ ‘2012/2/12’
3 ‘data 3’ ‘2012/2/4’
4 ‘data 4’ ‘2012/4/1’

若要找出資料不同的資料列, 可以使用如下指令:

SELECT * FROM
(SELECT *, CHECKSUM(*) AS CHK FROM TBL_TMP1) a INNER JOIN
(SELECT *, CHECKSUM(*) AS CHK FROM TBL_TMP2) b
ON a.fno = b.fno AND a.CHK != b.CHK

其中用了 CHECKSUM(*) 是將 table 中的各欄位合併起來計算 hash index, 再將兩個 table 含有 hash index (欄位名 CHK)拿來比對, 列出不同的資料, 結果如下:
1 data 1 2012-01-01 00:00:00.000 803471792 1 data 001 2012-01-01 00:00:00.000 1877235137
2 data 2 2012-02-03 00:00:00.000 266601110 2 data 2 2012-02-12 00:00:00.000 266601103

是很方便的工具函數.

附上建立上面 sample code 的 create table 及 insert data 指令:

CREATE TABLE TBL_TMP2 (fno int, fdata varchar(20), fcreatetime datetime)

INSERT INTO TBL_TMP1 values (1, 'data 1', '2012/1/1')
INSERT INTO TBL_TMP1 values (2, 'data 2', '2012/2/3')
INSERT INTO TBL_TMP1 values (3, 'data 3', '2012/2/4')
INSERT INTO TBL_TMP1 values (4, 'data 4', '2012/4/1')

INSERT INTO TBL_TMP2 values (1, 'data 001', '2012/1/1')
INSERT INTO TBL_TMP2 values (2, 'data 2', '2012/2/12')
INSERT INTO TBL_TMP2 values (3, 'data 3', '2012/2/4')
INSERT INTO TBL_TMP2 values (4, 'data 4', '2012/4/1')

大家可以試看看, 若是只要比對前兩欄, 則指令如下:

SELECT * FROM
(SELECT *, CHECKSUM(fno, fdata) AS CHK FROM TBL_TMP1) a INNER JOIN
(SELECT *, CHECKSUM(fno, fdata) AS CHK FROM TBL_TMP2) b
ON a.fno = b.fno AND a.CHK != b.CHK

結果如下, 就是只有第一筆資料的前兩欄不同而已:
1 data 1 2012-01-01 00:00:00.000 -1291957785 1 data 001 2012-01-01 00:00:00.000 -1493283680
如同我們想要的結果一樣. 這樣一來可以方便活用這個 CHECKSUM 函數, 十分方便好用!

相關資料:
http://msdn.microsoft.com/en-us/library/ms189788.aspx

資料上寫到是 SQL Server 2005 以上版本可用, 不過其實在 SQL Server 2000 也有這個指令:
http://msdn.microsoft.com/en-us/library/aa258245%28v=sql.80%29.aspx