分類
Database

SQL Join語法圖示

這篇主要目的是介紹集合, 使用 SQL Join 指令時的語法與集合的關係, 資料可以參考這篇: http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

(以上圖片引用自: http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins )

在資料庫查詢時, 使用 Join 語法是用來查詢多個資料表間的相關資料狀況用的, 區分為 inner join 及 outer join 兩種, 不指定時預設為 inner join, 也就是在兩邊都存在的資料, 使用 inner join 查詢, 例如 select a.sid from table_a a inner join table_b b on a.sid=b.sid 時, 會出現同時在 a 與 b 的 sid 都存在的資料.

例如 table_a 存在 1, 2, 3, 5, 6, 7, 10, 11 共八筆資料, 而 table_b 存在 2, 3, 4, 5, 6, 7, 8 共七筆資料時, 使用 inner join 則取出 2, 3, 5, 6, 7 共五筆資料.

而 left join (也就是 left outer join), 則是取出以左邊為主, 不管右邊是否存在的資料, (不存在的資料會用 null 值補齊欄位), 如:

select a.sid from table_a a left join table_b b on a.sid=b.sid

則會取出 1, 2, 3, 4, 5, 7, 10 , 11 共八筆資料,

而 right join (也就是 right outer join), 則是取出以右邊為主, 不管左邊是否存在的資料, 如:

select a.sid from table_a a right join table_b b on a.sid=b.sid

則會取出 2, 3, 4, 5, 6, 7, 8 共七筆資料.

另外還有 full join (也就是 full outer join)則是兩邊都取出來, 如:

select a.sid, b.sid from table_a a full join table_b b on a.sid=b.sid

則會取出兩個表全部的內容, 1, 2, 3, 5, 6, 7, 10, 11, 4, 8 共十筆資料,

其他若是需要做其他的集合, 只需要再加上 where 中的 is null 就可以產生差集這樣的方式.

繼續閱讀:
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
http://blog.wu-boy.com/2009/01/mysqlleft-right-inner-outer-join-%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/

分類
懶得分類

影片壓縮Bitrate參考

在壓縮影片時, 往往想要好一點的品質而提高Bitrate(碼率), 但是過高的 Bitrate 其實不見得會提升更好的畫質, 如何選擇較適合的Bitrate, 可以參考 Youtube 的建議資料:

https://support.google.com/youtube/answer/1722171

標準品質上傳內容

類型 視訊位元速率 單聲道音訊位元速率 立體聲道音訊位元速率 5.1 聲道音訊位元速率
1080p 8,000 kbps 128 kbps 384 kbps 512 kbps
720p 5,000 kbps 128 kbps 384 kbps 512 kbps
480p 2,500 kbps 64 kbps 128 kbps 196 kbps
360p 1,000 kbps 64 kbps 128 kbps 196 kbps

高品質上傳內容,適用於具備企業級網際網路連線品質的創作者

類型 視訊位元速率 單聲道音訊位元速率 立體聲道音訊位元速率 5.1 聲道音訊位元速率
1080p 50,000 kbps 128 kbps 384 kbps 512 kbps
720p 30,000 kbps 128 kbps 384 kbps 512 kbps
480p 15,000 kbps 128 kbps 384 kbps 512 kbps
360p 5,000 kbps 128 kbps 384 kbps 512 kbps

原則上以上的數值已是高標準的Bitrate, 若設定的更高其實意義不大, 大家可以參考看看.

分類
好用軟體

AzCopy好用Windows Azure Storage指令工具

使用 Windows Azure Storage 來進行遠端(雲端、異地)備份是很不錯的方式, 不過工具需要找一下, 當然也可以自行下載 SDK 寫程式的方式也不錯, 只是有更好的選擇.

這次要介紹的工具是 AzCopy, 官方下載連結: http://www.microsoft.com/en-us/download/details.aspx?id=39708 , 目前的版本是 2.1

這個工具使用指令的方式進行操作, 目前的版本已經可以支援跨 account 進行複製傳輸檔案, 而且操作方式十分簡單, 指定來源及目的就可以進行檔案的複製操作了.

例如下載:

AzCopy.exe http://<account name>.blob.core.windows.net/<container> c:\temp /sourcekey:<storage key> *.jpg

將 Windows Azure Storage 上的指定 container 中的 jpg 檔下載到本地的 c:\temp 目錄.

例如上傳:

AzCopy.exe c:\temp http://<account name>.blog.core.windows.net/<container> /destkey:<storage key> *.log

將本地 c:\temp 下的所有 log 檔上傳到指定的 container 中.

也可以將來源和目前指向都是 windows azure storage 的方式來進行雲端上的複製, 例如:

AzCopy.exe http://<account name-1>.blob.core.windows.net/<container-1>
http://<account name-2>.blob.core.windows.net/<container-2> /sourcekey:<storage key-1> /destkey:<storage key-2> *.txt

就是將 <account name-1> 的資料複製到 <account name-2> 來, 這樣就是雲端對雲端的複製了.

使用這個小工具, 可以很方便地將資料檔案複製到雲端, 上傳或下傳檔案, 十分好用.

參考資料:
http://blogs.msdn.com/b/windowsazurestorage/archive/2012/12/03/azcopy-uploading-downloading-files-for-windows-azure-blobs.aspx
http://blogs.msdn.com/b/windowsazurestorage/archive/2013/04/01/azcopy-using-cross-account-copy-blob.aspx

[2013/12/13 17:19]補充資料, 在SQL Server 2005後也有套件可供直接備份到 windows azure 的 storage 功能: http://msdn.microsoft.com/zh-tw/library/dn535724.aspx

分類
好用軟體

升級IE11

今天將工作的桌機升級到IE11.

升級完後, 發現還蠻令人驚豔的, 主要是在 rendering 的效果有很顯著的提升.

一直以來, 用 Firefox 習慣了, IE則是在開發時, 會使用的工具之一, 不過不是主要的瀏覽器, 從 8, 9, 10 以來都覺得不是那麼快, 不過到了 11版本, 看起來真的快很多, 感覺還蠻不錯的, 之後會使用 IE11 的機會應該會增加不少吧, 很棒, 看到 IE也很努力強化中, 加油!

下載連結: http://windows.microsoft.com/zh-tw/internet-explorer/ie-11-worldwide-languages

分類
程式技術

使用Facebook FQL查詢留言資料

用 Facebook 的網頁/網站很多, 應該是已經過了大流行的階段, 但是使用 Facebook 的地方還是很多, 如何利用程式將公開性的 Facebook 資料找查出來, 有方便好用的工具可供應用, 就是使用 FQL 查詢. 這裡介紹一般常用在網頁上留言的資料, Comment Plugin, 查找留言資訊.

先來看這篇: https://developers.facebook.com/docs/reference/fql/comment

這篇介紹 FQL 的 comment 資料查找方式, 我們以這個網頁作為例子:
http://sample.diary.tw/18/maps.htm

這裡裝了 Facebook 的 comment plugin, 那我們要查找該頁中 comment 的資料要怎麼查找呢? 首先要先找到該 comment 的 object_id, 該 id 可以利用這頁來找:
https://developers.facebook.com/tools/debug

將上面的 http://sample.diary.tw/18/maps.htm 輸入後, 按下[除錯]鈕, 在最下面的網址可以得到該 comment 的 object_id 為: 10150561101545602, 這個就是在 FQL 中, 查詢 comment 的 object_id. (在 Facebook 中, 會給定的各 object id)

再來就要下 FQL 查找資料了, 語法如下:

SELECT id, text, time, fromid FROM comment WHERE object_id='10150561101545602'

問題是從哪裡下呢? 從這裡 Graph API Explorer:
https://developers.facebook.com/tools/explorer
(若無法使用, 會引導登入 Facebook, 使用 Graph API Explorer需要登入 Facebook)

再將中間原來預設為 Graph API 的功能切到 FQL Query, 接下來把上面的查詢指令輸入, 就會得到目前的留言資料, 以 json 的方式來顯示.
接下來的使用, 相信大家就應該容易多了, 就是解析 json 把資料取出來即可.

那如何使用呢? 在程式中如何呼叫這個查詢, 而不是用 Graph API Explorer, 有沒有看到瀏覽器上方的 url 已經變了, 如下:
https://developers.facebook.com/tools/explorer?fql=SELECT%20id%2C%20text%2C%20time%2C%20fromid%20FROM%20comment%20WHERE%20object_id%3D%2710150561101545602%27
也就是說, 其實就是把查詢放到 url 中的 q 參數即可, 但使用上, 前面的 Graph API Explorer 得改成如下:
https://graph.facebook.com/fql?q=SELECT%20id%2C%20text%2C%20time%2C%20fromid%20FROM%20comment%20WHERE%20object_id%3D%2710150561101545602%27
使用 Graph FQL 查詢即可, 這是不用登入就可以使用的, 也就是說, 在程式中只需要透過 webget 等方法, 就可以取得到內容.

應該會有人問, 這個查詢結果, 其中的 text 是留言沒錯, 但沒有人名, 大頭圖, 那怎麼辦, 很簡單啊, 就再回 FQL 查詢就可以了, 不過若是有 100篇留言就要查 100次耶, 或是 smart 一點, 100篇留言, 共 30 個人在留, 那也需要做 30次的 user 查詢, 怎麼想都很難處理, 所以接下來要介紹的是多重查詢.

多重查詢, 有點像是 SQL 中的子查詢, 在面對這種 FQL 查詢時, 可以利用的技巧, 我們將查詢改一下, 改為如下:

{
"comments": "SELECT id, text, time, fromid FROM comment WHERE object_id='10150561101545602'",
"commenters": "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT fromid FROM #comments)"
}

對, 正如你看到的, 使用一個 #comments 代替前一個查詢結果, 並代入下一個查詢, 利用 json 格式, 將多重查詢放到 FQL 中, 就可以一次查詢把留言和人帶回來, 忘了說, user FQL 參考資料在這裡:
https://developers.facebook.com/docs/reference/fql/user

第二個查詢中的 uid, name, pic_square 就是常用的使用者代碼, 名稱, 大頭圖資訊.
查詢回傳結果就會有兩個 fql_resulte_set, 分別就是 comments, commenters, 如下:

中間略…
就把留言和留言者一次查回來了.

再來, 如何利用程式 parse json 的回傳結果, 就不用多說了吧, 應該就簡單多了, 快去實做看看吧.

分類
好用軟體

微軟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][,] 將符號小鍵盤叫出來, 就可以用滑鼠選字, 還蠻方便的.