分類
系統技術

走Hinet電路問Hinet dns-aws cloudfront無回應

今天早上9點多開始的, 原來要用 run.quikLAB 的服務, 網頁有些問題, 剛好在忙, 沒特別去查.
不過後發現像 dropbox 也有這個狀況(因為 dropbox.com 網頁也用了 cloudfront), 開啟了 firebug 的 network 功能, 檢查一下, 原來是 cloudfront dns 解析失敗.

經交錯測試檢查, 目前查得狀況如下,

  1. 走 hinet 電路問 hinet dns 失敗
  2. 走其他電路問 hinet dns 成功
  3. 走 hinet 電路問其他 dns 成功
  4. 走其他電路問其他 dns 成功

如此一來, 變成 hinet 網內用 hinet dns 的用戶, 會無法正常檢視有使用到 cloudfront 功能的網站, 太奇怪了.

  1. 若是人為刻意設定, 一定有很大的陰謀
  2. 若是不小心設錯, 持續了這麼久, MRTG表應該早就發現了, 還不處理也很妙

所以, 再觀察看看. 這個問題很大.

[12:12]
目前已觀測正常了. 看起來可能是第二個原因吧.

分類
系統技術

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

分類
系統技術

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 長得多.

分類
Windows

如何自動登入Windows 8

朋友問到有關如何自動登入 Windows 8 的作業系統.

其實只需要做個簡單的設定即可, 在 [WIN] + [R]鍵叫出執行指令, 並輸入 netplwiz 如下:

叫出 [使用者帳戶] 視窗如下:

再將欲設定為自動登入的帳號使用者名稱選起來後, 在上面的[必須輸入使用者名稱和密碼….]的 checkbox 勾勾取消, 按下碼定, 接著系統會帶出輸入密碼對話盒如下:

 

輸入該用戶的密碼兩次即可完成設定, 記得不要打錯密碼, 在這個對話盒是只會檢查兩次密碼是否一樣, 不會真的去驗證該密碼是否對應該用戶, 之後重新開機就會看到自動登入了.

PS. 若輸入密碼錯誤, 只是會造成無法自動登入, 按正常方式登入後, 再用同樣的方法再操作一次即可. 這個方式和在 windows 7 下是一樣的.

分類
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 玩得很大很久了, 大家的使用者體驗都有了基本的想法, 短時間內應該很難趕上, 不過也希望微軟在這個部分的戰場能多加油啦!

分類
系統技術

免費試用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

快試看看吧!

分類
Windows

單一目錄內大量檔案排序

這個是一個很麻煩的狀況, 在 windows 下, 使用 NTFS 的 Filesystem, 單一目錄可以承載的檔案量其實很大(是 2^32 -1 也就是 4294967295, 其實是整個 volume 不是單一目錄, 但這個上限應該在檔案存滿前是不太會到達的), 但是若是要排序檔案大小, 雖然說可以使用 dir /os 的方式來進行, 不過因為數量過大, 所以往往會很久很久, 而且會鎖住 filesystem.

接下來是實務上要將單一目錄下數量很多的檔案進行依大小排序時的作法.

1. 先將檔案列出來, 但不用排序: dir > dir.txt

2. 利用 sort 指令來進行排序: sort dir.txt /+25 > dirsorted.txt

這個 /+25 可以利用 sort /? 來看參數的用法, 其實是 dir 出來的內容, 列舉如下:

其中的第 25欄起是檔案的大小, 依此來排序的指定方式. 而後面的輸出轉向 > 就是用來將排序好的內容再轉存到另外一個檔去.

利用這樣的方式, 可以避免 dir /os 的時間過久, 直接 dir 輸出結果, 再利用 sort 指令來進行排序, 除了可以分開作業外, 還能大幅提高排序的時間, 是比較理想的方式.

當然, 若是檔案數量不多的時候, 是沒什麼差異的, 當檔案數量多的時候, 可是很有用的!

PS: NTFS 單一 volume 下的檔案數量上限:
http://technet.microsoft.com/en-us/library/cc938432.aspx
http://kewang.pixnet.net/blog/post/24972241

分類
Windows

iis7下的appcmd查詢reqeust

在沒有 appcmd 之前, 要像 apache 中的 server-status 中列出目前的 request url 只能利用 resource kit 的 request viewer, 不過在 iis7 中, 可以利用內建指令 appcmd 來查詢.

appcmd 有許多功能, 不過今天介紹的是查詢目前的 request, 先來看看說明文件:

http://technet.microsoft.com/zh-tw/library/cc772200%28v=ws.10%29.aspx

在 appcmd下, 有許多物件可供應用, 其中今天要介紹的就是 request, 不過可以操作的指令只有一個, 就是 list, 想查詢對該物件可用指令可以這樣下(以 site 為例):

>appcmd site /?
管理虛擬站台

APPCMD (command) SITE <identifier> <-parameter1:value1 …>

支援的命令:

list 列出虛擬站台
set 設定虛擬站台
add 新增虛擬站台
delete 刪除虛擬站台
start 啟動虛擬站台
stop 停止虛擬站台

(請使用 /? 取得每個命令的說明,例如 ‘appcmd.exe add site /?’。)

可以使用 list, set … 等多種操作指令, 而查詢目前的 request 則使用:

>appcmd list request
REQUEST “1400000080019834” (url:GET /xxx/xxxxx, time:1047344 msec, client:xxx.xxx.xxx.xxx, stage:SendResponse, module:IIS Web Core)
REQUEST “e20000438002e1fc” (url:GET /xxx/xxxxxx, time:71625 msec, client:xxx.xxx.xxx.xxx, stage:SendResponse, module:IIS Web Core)
….

可以很清楚地看到每個 request 的資訊, 包含 ip 及 url 及目前的狀態, 十分有用.

分類
系統技術

aws終於有自己的route53管理介面了

aws (amazon web service) 終於有自己的 route53 管理介面了(console).

以往要管理 route53, 要嘛就是用 api (http://docs.amazonwebservices.com/Route53/latest/APIReference/), 不然要 ui 的管理介面就得用 3rd party 的 DNS30: http://www.dns30.com/, 對於不熟悉的人來說, 還真的不太方便.

現在 aws 推出了 route53 的管理介面了, 真的可以方便在使用 route53 服務操作上, 利用友善的管理介面, 無論是在新增修改管理上, 都更加的方便了呢!

有在使用的朋友們, 可以快去試看看: https://console.aws.amazon.com/route53/home

分類
Windows

如何取得磁碟分割的叢集大小

一般在格式化磁碟(應該說分割區-partition)時, 有個選項可以設定, 就是叢集大小.

但是指定完成後, 要查詢, 卻不是那麼容易. 可以利用 chkdsk 指定來達成 (http://support.microsoft.com/kb/245436/en-us/), 但是總會需要到檢查一段依磁碟大小愈大而愈久的檢查, 有沒有辦法有更直接的方法?

若是在 NTFS 分割區時, 可以利用指令來達成:

fsutil fsinfo ntfsinfo c:

結果如下:

NTFS Volume Serial Number : 0x3accf140ccf0f74b
Version : 3.1
Number Sectors : 0x0000000009c41ad7
Total Clusters : 0x000000000138835a
Free Clusters : 0x0000000000c9dd73
Total Reserved : 0x0000000000000060
Bytes Per Sector : 512
Bytes Per Cluster : 4096
Bytes Per FileRecord Segment : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length : 0x0000000008c64000
Mft Start Lcn : 0x00000000000c0000
Mft2 Start Lcn : 0x00000000009c41ad
Mft Zone Start : 0x0000000000e2a2c0
Mft Zone End : 0x00000000010926e0

但是這個僅適用於 NTFS, 若是 FAT32 的話呢? 再找看看其他的方式, 可以利用 WMI 來達成, 如下: (以下是 VBScript)

strComputer = "."
strDrive = "c:" 

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colVolumes = objWMIService.ExecQuery("Select * from Win32_Volume Where Name='" & strDrive & "\\'")

For Each objVolume in colVolumes
    errResult = objVolume.DefragAnalysis(blnRecommended, objReport)
    If errResult = 0 then
        Wscript.Echo "Cluster size: " & objReport.ClusterSize
    End If
Next

這個是利用了 WMI , 使用DefragAnalysis 的功能, 來取出磁碟資訊的方式, 其中有 ClusterSize 的屬性(單位是 bytes), 可以做為檢查磁碟 ClusterSize 這個功能. 其中的 strDrive 就是要查詢的磁碟機代碼, 也可以讀取 FAT32 的磁碟分割, 十分方便, 速度也很快.

本文介紹的兩種方式, 可以依實際狀況來使用, 很方便.

參考資料:

微軟KB: http://support.microsoft.com/kb/245436/en-us/

http://www.vistax64.com/powershell/77645-getting-cluster-size-your-hard-disk.html

http://www.activexperts.com/activmonitor/windowsmanagement/scripts/storage/diskdrives/physical/#AVD.htm

http://www.scribd.com/doc/15490968/Windows-Server-Cookbook-by-OReilly-Media (這本書的108頁)

http://msdn.microsoft.com/en-us/library/aa389827%28VS.85%29.aspx