分類
好用軟體

微軟RDP Client for iPhone/iPad

終於出了, 在 iPhone / iPad 上的微軟官方 RDP Client.

https://s5.mzstatic.com/us/r30/Purple4/v4/c4/ef/01/c4ef0183-9f7c-5401-35cd-3e06e26f3922/mzl.dmovntgu.175×175-75.jpg

(圖片引用自: https://itunes.apple.com/us/app/microsoft-remote-desktop/id714464092?mt=8 )

這個在 iPhone / iPad 上的 RDP Client 工具, 一直以來都有需求, 只是都是第三方工具的天下, 沒有官方的版本, 這次官方出來了, 主要看起來是可以在 iPhone / iPad 上連到 Windows 8 / 8.1 但一樣可以連到舊版本的 windows 沒有問題, 使用起來也十分直覺方便, 快來試看看!

[2013/10/21]
今天看到在 android 上也有了呢, 網址如下:

https://play.google.com/store/apps/details?id=com.microsoft.rdc.android

介面和 iPhone / iPad 上差不多, 不過少了可以透過 console 連入的功能, 試了使用 /admin 也是不行, 這個部分和 iPhone / iPad 有差異.

比較畫面如下:

分類
好用軟體

Microsoft Office 2003簡繁轉換工具增益集

在 Office 2003 中的 Word 有簡繁轉換功能.

不過在 Power Point 及 Excel 中, 若是想要用這個功能, 可以加裝這個工具, Microsoft Office 2003 簡繁轉換增益集, 官方下載在這裡:

http://www.microsoft.com/zh-tw/download/details.aspx?id=18514

安裝好後, 在 Power Point 2003 的工具選單中, 會有簡體/繁體的功能, 不過需要先選擇需要轉換的區域再進行轉換才行哦. 還在使用舊版本 Office 2003 的朋友們, 有簡繁轉換需求, 可以多多利用.

分類
PHP

好用工具Encode Explorer

今天在協助朋友解決一個在 linux apache 下的 php 程式對中文檔名檔案存取的問題, 在思考在 linux 下的 file system 對中文檔名存放的編碼時, 想說直接找個工具來用比較快. 因為其實不需要真的去檢查看 file system 上中文檔名存放的編碼, 只需要找個 php 的 file explorer 來進行就可以了, 找出對應的編碼即可. 實際上, 之後的程式也是透過 php 存取, 所以用 php 的 file explorer 檢查是最方便不過了.

找到這個好用的工具, 短小精幹, 一支主程式, 就是這麼方便: Encode Explorer – http://encode-explorer.siineiolekala.net/

可以先試看看該網站的 demo: http://encode-explorer.siineiolekala.net/explorer/index.php

一支程式就可以做 file exploer 功能, 所以利用這樣的方式來檢查看中文檔名是否正常, 該程式預設是使用 utf-8 的, 不過朋友的虛擬主機上是 big5 的中文編碼, 所以在 Encode Exploer 下看到亂碼的中文檔名, 利用瀏覽器的編碼改為 big5 就看得到該中文檔名了, 這下就明白朋友的虛擬主機上的中文檔名是走 big5, 對後續在應用 timthumb.php 縮圖無法正確取得本地中文檔名的問題就解決了.

若網友們有碰到這樣的問題, 也可以試著用這套工具來檢查看看. 當然, 若是需要找個方便好用的 php file exploer, 這套工具也是十分方便好用呢!

分類
好用軟體

好用Firefox擷圖外掛-Awesome Screenshot Plus

在 Firefox 下的好用擷圖工具, Awesome Screenshot Plus – https://addons.mozilla.org/zh-tw/firefox/addon/awesome-screenshot-capture-/

主要兩種方式擷圖, 一個是可視區域的擷圖 (Visible Part), 另一是整個頁面 (Full Page), 十分方便好用, 擷圖後, 還提供了簡易的編輯工具, 包含了裁切(Crop), 繪製方塊, 圓圈等可圈選的圖案, 箭頭, 直線, 任意曲線等功能, 再加以存檔, 可以很方便地網頁擷圖, 並加以標註.

有需要的朋友可以試看看, 十分方便!

(圖片引用自: https://addons.mozilla.org/zh-tw/firefox/addon/awesome-screenshot-capture-/ )

分類
懶得分類

倉頡輸入法輸入全形標點符號

用倉頡這麼久, 大多是使用半形的逗號和句號, 所以寫文章時也都是如此.

在打一些文書需要全形標點符號, 都是叫出符號鍵盤來用, 所以也不知道可以用倉頡打全形標點符號.

今天同事說可以用”速成”輸入全形標點符號, 所以來查了一下倉頡的標點符號如何輸入. 在這裡查到了相關的資料: http://zh.wikibooks.org/zh-tw/%E5%80%89%E9%A0%A1%E8%BC%B8%E5%85%A5%E6%B3%95/%E6%A8%99%E9%BB%9E%E7%AC%A6%E8%99%9F%E8%BC%B8%E5%85%A5

其中比較常用的是逗號: ZXAB, 頓號 ZXAC, 句號 ZXAD, 其他的可以參考對照表來輸入, 另外也有快速鍵可以利用 [Ctrl][Alt][,] 將符號小鍵盤叫出來, 就可以用滑鼠選字, 還蠻方便的.

分類
好用軟體

AirParrot-將PC與MAC的畫面送到Apple TV上

之前介紹過將 AirPlay 的畫面送到 PC 與 MAC 上的軟體- AirServre: https://diary.tw/archives/1314 , 就是利用 PC 與 MAC 當做 Server (接收端), 可以把 Mobile Device 的訊號送進來, 若接上投影機或電視就可以放出來進行簡報.

這次的軟體是反過來, 將 PC (iTunes有 audio 的 AirPlay) 與 MAC (OS-X有內建這個功能了)的訊號利用 AirPlay 傳輸送到 Apple TV, 也就是當 AirPlay Client.

這個軟體是 AirParrot, http://www.airsquirrels.com/airparrot/

利用這個軟體配合 Apple TV, 可以容易地將 PC / Notebook 上的訊號送出來進行簡報, 操作方式也很簡單, 安裝好後, 直接在同網段的 Apple TV 就可以被搜尋出來, 點選就可以送上去了, 預設是不送 audio, 可以經過打勾設定將聲音也一併送出.

這個軟體試用是 20分鐘, 20分鐘到了會自動關閉, 購買是 9.99 美金.

下載:
Windows 64位元版: http://www.airparrot.com/download/Windows/AirParrot64.msi
Windows 32位元版: http://www.airparrot.com/download/Windows/AirParrot32.msi

分類
WebTrend

Google Reader影響很大

今天查了一下 feedburner, 發現訂閱者大量減少, 其實原因無它, 就是 Google Reader 停止服務了, 雖然這個很令人懷念的好服務停了, 不過看起來”傳統”blog (本站也算是)的流量應該會受到不少衝擊吧.

來看看統計圖吧:
All time:
30days:
是的, 就是這樣, 訂閱者瞬間少了 80%, 真是驚人啊…

分類
程式技術

程式線上跑-Compile and Execute Programs Online

今天早上在幫朋友查一個 java 的小問題, 剛好手邊沒有環境, 查一下找到這個很棒的工具, java 線上跑:

http://www.compileonline.com/compile_java_online.php

他已經預設提供了 Hello World 的基本框架, 可供直接執行程式, 如輸入以下程式:

public class HelloWorld{
     public static void main(String []args){
        int a = 1;
        int b = a++; // b=1, a=2
        int c = ++a; // a=3, c=3
        
        System.out.println(b);
        System.out.println(c);
     }
}

按下左上的 compile & execute, 在左邊的視窗就會出現結果, 十分方便, 在沒有環境時, 馬上有個小環境可以供測試驗證, 很不錯呢.

回到他的主站, 發現他提供的還不只 java 程式語言, 還有許多其他的:

http://www.compileonline.com/

區分為 web用, 像是 css, javascript, jQuery 等, 還有格式化文字用, 像是 MathML, LaTex 等, 再來就是程式語言了, 真的很多, 包含了pascal, php, python, java, c, c++, c#, objectiv-c, ruby 等很多各式各樣程式語言, 好方便啊, 大家可以多加利用.

分類
好用軟體

TableTools2-好用的Firefox網頁表格plugin

在瀏覽網頁時, 有時想針對一些輸出的表格做些進階的分析及處理, 往往會將資料先存出來, 轉到 excel 中進行.

現在有個好用的 plugin 可以供在網頁上應用, 而且直接操作, 不需要離開現有的畫面, 馬上就可以進行表格(TABLE)的排序, 多欄排序, 繪製圖表等功能, 另外像是在 excel 中才有的篩選, 複製欄, 隱藏欄等功能, 也都一應俱全, 實在是非常好用, 值得推薦大家來使用看看.

TableTools2 plugin 下載網址: https://addons.mozilla.org/zh-tw/firefox/addon/tabletools2/

安裝好後, 找個網頁有表格的, 按下右鍵, 就可以玩囉, 快來試看看吧.

裝好之後, 想玩看看, 可以到作者網站提供的表格區來試看看:

  1. 基本表格 http://mingyi.org/TableTools2/demo.html
  2. 進階表格 http://mingyi.org/TableTools2/advanced-demo.html
  3. 繪製圖表用的表格 http://mingyi.org/TableTools2/chart-demo.html
  4. 用來測試效率的表格 http://mingyi.org/TableTools2/large-table.html (可以生出大量資料)

另外這裡是官方 demo 影片, 也可以參考看看: http://mingyi.org/TableTools2/video.html

很不錯的工具.

分類
Database

使用CTE進行遞迴(Recursive)查詢

從 MS SQL 2005 起, 支援了 CTE (Common Table Expression) 語法, 可以參考之前的文章: https://diary.tw/archives/339 .

今天要來介紹的是有關應用在遞迴方面的查詢, 利用這種查詢, 可以很容易地將資料展開, 例如像是組織圖, 或是像分類項含有子分類這樣的樹狀資料, 當然, 簡單一點的像是累加也是一樣的, 先來介紹 CTE 用在累加的語法上.

WITH cte (num, mysum) AS (
  SELECT 1 as num, 1 as mysum
  UNION ALL
  SELECT num + 1, mysum + num + 1 FROM cte a where num <10
)
SELECT * FROM cte

看好, 在括號內的第一個 SELECT 1, 1 的部分, 就是原始值, 而後面的 SELECT .. FROM cte 則是開始自己對自己查詢, 最後的 num < 10 是他的 boundary condition, 也就是只做到 num < 10.

結果如下:
是的, 結果就是那個 1 + 2 + 3 + … + 10 = 55 .

再來看看其他的用法, 像是分類含有子分類的資料, 先來準備一些資料:

CREATE TABLE CATEGORY (CID int primary key, NAME nvarchar(200), PARENTID int)
INSERT INTO CATEGORY values (1, N'交通工具', 0), (2, N'陸上', 1), (3, N'水上', 1)
INSERT INTO CATEGORY values (4, N'機車', 2), (5, N'汽車', 2), (6, N'輪船', 3)
INSERT INTO CATEGORY values (7, N'空中', 1), (8, N'飛機', 7), (9, N'直升機', 7)

來組合吧, 使用CTE:

WITH CTE (CID, NAME, PARENTID, LEVEL) AS (
  SELECT CID, NAME, PARENTID, 0 FROM CATEGORY WHERE PARENTID = 0
  UNION ALL
  SELECT A.CID, A.NAME, A.PARENTID, LEVEL + 1 FROM CATEGORY A INNER JOIN CTE B ON A.PARENTID = B.CID
)
SELECT * FROM CTE

結果如下:

是不是很清楚看出來各分類的位階(LEVEL)狀況? 十分方便好用的語法. 再來看看如何展開成一行資料, 也就是各自分類結構合成一筆結果, 語法如下:

WITH CTE (CID, NAME, PARENTID, LEVEL, ORICID, DATA) AS (
  SELECT CID, NAME, PARENTID, 0, CID, CONVERT(NVARCHAR(MAX), NAME) FROM CATEGORY WHERE PARENTID = 0
  UNION ALL
  SELECT A.CID, A.NAME, A.PARENTID, LEVEL + 1, A.CID, DATA + '-' + A.NAME FROM CATEGORY A INNER JOIN CTE B ON A.PARENTID = B.CID
)
SELECT * FROM CTE

結果如下:

最後面的那個欄位就是想要呈現出來的結果, 說穿了, 就是一直累加上去, 只是是字串的累加(DATA), 不是數字的累加, 另外也多了一個欄位用來表現原本自己的CID(ORICID), 這樣看起來也就更清楚完整, 利用這樣的方式來表現分類結構, 非常好用呢!

另外記得字串累加的部分, 使用 NVARCHAR(MAX) 以避免發現 CTE 和累加的欄位不一致的問題, 這是要特別注意的地方.

無法對齊欄位的錯誤訊息為:
Types don’t match between the anchor and the recursive part in column “xx” of recursive query “xx”.
可以參考這篇解答: http://stackoverflow.com/questions/1838276/cte-error-types-dont-match-between-the-anchor-and-the-recursive-part

結論, CTE的遞迴語法, 其實也就是自己再對自己查詢, 只要把握好起始條件, 還有遞迴的終止條件, 就可以很順利的產出你要的結果. 大家可以多加利用這個好用的語法, Let’s CTE!!