分類
好用軟體

好用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!!

分類
好用軟體

各地DNS查詢測試-WhatsMyDns

通常 DNS 設定好了之後, 如果不是新記錄, 是修改 ip 的方式, 一般預設的 TTL 為一天, 也就是 24小時, 所以想要知道更新的狀況, 就得從各個 DNS 上來看, 有個網站服務提供這樣的功能, WhatsMyDns: http://www.whatsmydns.net/.

這個網站提供了以下幾個區域的DNS Server查詢:

Mountain View CA, United States (Google)
Dallas TX, United States (Speakeasy)
Seattle WA, United States (Speakeasy)
New York NY, United States (Speakeasy)
Reston VA, United States (Sprint)
Recife, Brazil (Hotlink Internet)
London, United Kingdom (BT Global)
Lille, France (Nordnet)
Merzig Saarland, Germany (Probe Networks)
Bologna, Italy (INFN)
Ankara, Turkey (TTNET)
St. Petersburg, Russia (Uni of Tech & Design)
Peshawar, Pakistan (PTCL)
New Delhi, India (BSNL)
Bangkok, Thailand (TOT)
Petaling Jaya, Malaysia (Clear-Comm)
Hong Kong, China (PCCW)
Sydney NSW, Australia (Telstra)
Melbourne VIC, Australia (Telstra)
Auckland, New Zealand (Xtra)

DNS查詢的結果, 除了表列出來以外, 也在右邊的 Google Maps 上以綠色打勾, 與紅色打叉的方式來表現, 結果一目瞭然, 就很容易地知道 DNS 更新的狀況了.

繼續閱讀:
http://www.goston.net/2013/07/19/3440/

分類
WebTrend

Yahoo願望清單

看標題看不懂吧! 以為是買東西的清單.

這個是 yahoo 服務推出用來更新用戶想要使用的使用者名稱服務.

Yahoo 將會釋出大量的久未使用的帳號, 並且給這些登記的用戶, 乍看下似乎很棒, 可以讓大家選到自己想要的名稱(帳號), 但實際上, 應該搶不到的還是搶不到, 而且, 也不知道是什麼方式來配送給這些列出願望清單的用戶.

不過, 無論如何, 對於這種 michael0809 這樣的想要改成 michael 還是相當困難吧, 但是, 還是可以登記看看囉, 說不定, 就拿到了.

繁體中文官網: https://wishlist.yahoo.com/?.lang=zh-Hant-TW&.intl=tw

分類
系統技術

Apache與IIS Web Sever URL長度上限

之前有查過 browser 的 url 上限, 可以參考這篇: https://diary.tw/archives/455 , 當時是為了調查 referer 的 url 上限, 進而找出 browser 的 url 上限.

那 web server 上的上限呢? 在 Apache 下有個 LimitRequestLine 的設置, 可以設定 URL 上限, 參考: http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestline

而該值預設為 8190 也就是大約在 8k 左右.

在 IIS 則是利用參數 requestLimits 中的參數, MaxUrl, 預設是 4096, 參考這篇: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

這樣看起來基本上都比 Browser 長得多.