分類
好用軟體

iperf測試網路傳輸品質及頻寬工具

在點對點間要測試傳輸品質及頻寬狀況, 有個好用的工具, iperf, 官方網址為:
http://iperf.fr/

這個工具不僅是可以測試一般 TCP的傳輸, 也可以測試 UDP的傳輸, 使用方式很簡單, 下載解開後, 執行檔就是 iperf.exe 同時可以擔任 client 及 server 兩個角色, 找兩台電腦(當然一台也可以), 以測試 udp 為例, 在擔任 server 的主機上下指令:

iperf -s -u

其中參數 -s 為啟動 server mode, -u 為使用 udp 傳輸.
成功起動 server 會出現以下訊息(預設為 port 5001):
————————————————————
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 64.0 KByte (default)
————————————————————

然後在擔任 client 角色的機器上執行以下指令:

iperf -c [server_ip] -u -i 1

其中參數 [server_ip]為擔任 server 的 ip, 而 -i 1 是指每一秒鐘出現一個 log, 以下為結果:
————————————————————
Client connecting to localhost, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 64.0 KByte (default)
————————————————————
[ 3] local 127.0.0.1 port 52778 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 5.0- 6.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 6.0- 7.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 7.0- 8.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 8.0- 9.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 9.0-10.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec
[ 3] Sent 893 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.000 ms 0/ 893 (0%)

就可以看到傳輸測試的結果了, 預設是使用 1mpbs的頻寬, 可以利用 -b 參數下達指定頻寬, 例如 100k, 10m 都可以. 當然, 在 server 上也可以下 -i 1 的指令, 可以看到較為即時的訊息. 若是要持續性測試, 可以在 client 內下 -t [seconds]代表指定秒數即可.

在測試點與點間的網路品質及頻寬可以使用這個簡單工具來進行測試, 很方便好用.

目前最新版本(2011)下載連結: http://iperf.fr/download/iperf_2.0.5/iperf-2.0.5-2-win32.zip

[2022/2/20 14:13]

也請參閱: https://walker-a.com/archives/5857

分類
系統技術

iOS 7.1企業APP安裝問題

在 iOS 7.1 更新後, 原企業APP安裝會發生以下訊息:
(無法安裝應用程式, 因為 xxxx 的憑證無效), 誰看得出來這個訊息是什麼意思, 查了一下, 發生的原因原來是因為原本在網頁上的安裝連結:
itms-services://?action=download-manifest&url=http://xxx.com.tw/xxx.plist

中的後面 url 沒有走 SSL 加密通道, 也就是 https.

如何解決這個問題, 當然, 就是改為 https://xxx.com.tw/xxx.plist 即可, 但若是沒有購買 SSL 加密憑證, 如何解決呢? 可以使用第三方的網站分享連結, 而且支援 https 的, 可以利用 dropbox 的 share link.

做法如下:

1. 將原來的 plist 檔案放在 dropbox 空間, 並生成分享連結(share link), url 會像如下:
https://www.dropbox.com/s/xxxxxxxxx/xxx.plist

2. 若上面網址沒有 https, 就自行改成 https 即可, 並將 www.dropbox.com 改為 dl.dropbox.com, 如下:
https://dl.dropbox.com/s/xxxxxxxxx/xxx.plist

3. 將原來的 itms-services:// 後的 url 改成上面 url 即可, 如下:
itms-services://?action=download-manifest&url=https://dl.dropbox.com/s/xxxxxxxxx/xxx.plist

上線即完成, 不過缺點會是這樣, 在安裝時會出現 dropbox 的安裝通知, 如下:
若不介意 dl.dropboxusercontent.com 的這個訊息, 這就可以進行安裝了, 是用 dropbox 的 https 來解決這個 iOS 7.1 強迫要用 https 下載 plist 的問題.

繼續閱讀:
http://bencollier.net/2014/03/ios-enterprise-app-error-cannot-install-applications-because-the-certificate-is-not-valid/
http://www.cocoachina.com/bbs/read.php?tid=194213&fpage=0&toread=0&page=1

若是還沒有 dropbox 空間的朋友們, 也歡迎多利用這個 referral link 加入, 謝謝: https://db.tt/h1NpPka3

分類
Database

SQL Server資料表使用GUID欄位考量

在資料表中, 使用 GUID做為clustered index時, 很容易因為是隨機產生的值, 而導致資料存放的離散, 可以利用這個函數來改善:

NEWSEQUENTIALID()

該函數是循序地建立 GUID, 也是唯一值, 但可以降低離散的狀況, 進而改善未能有效填滿及離散的問題.

當然, 若是 GUID欄位沒有使用在 cludtered index時, 則比較不需要擔心這個問題.

參考資料:
http://technet.microsoft.com/zh-tw/library/ms189786.aspx

分類
好用軟體

iTools繁體中文版

以前為了要管理 iPad 設備, 不想用肥大又不好用的 iTunes, 轉而使用方便精簡的 iTools, 不過以往都是簡體中文版本, 但是功能強大又方便, 備份資料也很容易, 現在有了繁體中文版本進來了, 代理是國內的公司, 可以參考官方網站:

http://tw.gashplus.com/itools

這次的版本還多了可以管理 Android 的設備(雖然說 Android 不像 iPad/iPhone管理那樣不方便), 不過廠商多增加這樣的設計還真是方便兩種系統都有的用戶們.

這裡有詳實的介紹, 可以參考阿祥的網路筆記本: http://axiang.cc/archives/9283

有需要的朋友們可以試看看.

分類
.net

.net WebBrowser的script error抑制

在 window form中使用 webbrowser 時, 有時會遇到 javscript error 的訊息, 此時會出現需要使用者介入的操作, 程式才能繼續執行下去.

這樣對於一些自動化操作的程式會有停止無法執行的問題, 所以可以利用一個 webbrowser 的屬性 “ScriptErrorsSuppressed” 設為 True 即可抑制這個會出現的人機介面.

不過記得使用這個屬性, 後續的程式也得注意網頁程式的異常後, 如何做良好的控制, 才不會因為這個屬性設定後, 雖然程式可以繼續往下執行, 但 webbrowser 中的程式錯誤而產生非預期結果的狀況, 就不好了.

參考資料: http://stackoverflow.com/questions/8009575/c-sharp-webbrowser-how-to-get-rid-of-javascript-error-prompt

分類
懶得分類

國道收費試算

2013/12/30 起實施國道里程收費, 整理一下收費試算資料:
https://docs.google.com/spreadsheet/pub?key=0AvQRaqbi5E6EdGpzU1Z2dGZTSGZmaXRyTU13a0I2T0E&output=html

其中試算方式依照國道電子收費標準:
http://www.freeway.gov.tw/Publish.aspx?cnid=1880&p=3862

  1. 小型車每日每車優惠里程20公里,標準費率1.20元/公里(20公里<行駛里程≦200公里),長途折扣費率0.90元/公里(行駛里程>200公里)
  2. 大型車每日每車優惠里程20公里,標準費率1.50元/公里(20公里<行駛里程≦200公里),長途折扣費率1.12元/公里(行駛里程>200公里)
  3. 聯結車每日每車優惠里程20公里,標準費率1.80元/公里(20公里<行駛里程≦200公里),長途折扣費率1.35元/公里(行駛里程>200公里)

費率型式

費率型式 費率金額(元/公里)
小型車(小客車、小貨車) 大型車(大客車、大貨車) 聯結車
每日行駛里程≦20公里 0 0 0
標準費率(20公里<每日行駛里程≦200公里) 1.2 1.5 1.8
長途折扣費率(每日行駛里程>200公里) 0.9 1.12 1.35

另外有關收費優惠, 2014春節費率統一為 0.9元/公里, 所以在超過 80公里起, 才會比較優惠, 這個部分可以參考試算表內容.

遠通電收的部分也有提供線上試算功能, 給各位使用:
http://fare.fetc.net.tw/Default.aspx

原本想說寫個試算小程式, 看起來也就不需要了.

分類
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