2011-07-29

Google 開始提供兩步驟驗證 (Two-Step authentication)

Google 最近發佈在全球 150 個國家 40 種語言開始提供兩步驟驗證 (Two-Step authentication),所謂的兩步驟驗證 (Two-Step authentication),其實就是和阿之前介紹過 Two-factor authentication 是一樣東西,如果你很擔心你的 Google 帳號被盗用的話,就請啟用這項兩步驟驗證功能,只是,以後登入會比較辛苦,因為,如果手機有使用 Google 的服務的話,每一個服務就要改用不同的 "應用程式專用密碼" 來證入,而不是用一組帳號密碼就可以了哩 !

要啟用 Google 帳號的兩步驟驗證方式不難,首先請先登入 Goolge 網站,然後,請點選右上角的你的名字,這樣會出現下拉式選單,請從選單裡點選「帳戶設定」進入你的帳號設定畫面,進入之後,在帳號設定的畫面會多出一個「使用兩步驟證」的項目,請點選它右邊的「編輯」,然後,按照它的指示來一步一步的操作就可設定完成的。


Google 目前提供的第二個驗證方式,主要是以手機和電話為主,有二種方式,第一種是用簡訊送驗證,第二種是則用手機的應用程式來取得驗證碼,目前有支援 Android、BlackBerry 和 iPhone 等三種手機的應用程式,如果選簡訊的話,只要輸入手機號碼,但是,如果是選應用程式,那麼,就要安裝手機的應用程式才行哩 !

另外,為以防萬一手機不見了或收不到訊號的時候,Google 提供有備用選項來預防,做法就是請你記下一組 的驗證碼表哩 !  請一定要保存好這個驗證碼表,每一個驗證碼只能使用一次哩 ! 除此之外,還提供可由親朋好友的手機來取得驗證碼的方式來當備用選項,算是想的滿週全的哩 !
阿舍是覺得,除非是有必要,否則,啟用這項功能真是會有點自找麻煩哩 ! 不過,對於 Goolge 願意免費提供這檢的驗證機制,阿舍個倒是滿給Google 一個 "讚" 哩 ! ...呵 !

Domino 如何排除 "Cannot Find external name” 的問題 ?

阿舍遇到這個 "Cannot Find external name” 問題的,是一支放在 Script Library 的Function,然後,是一支 agent 在 Call 這個 Function 的時候,會出現這個 "Cannot Find external name” 錯誤的,阿舍剛開始遇到這個問題的時候,就很直覺的去把那個 Script Library 打開,讓它重新編譯一次,結果....是無效的哩 !

於是,阿舍就去 Domino 的論壇找了一下,有找到這篇討論文,上面所提供的方式不少,不過,可憐的阿舍和這篇文的苦主一樣,都是不適用的,不過,阿舍從大家的討論中,大概可確認一點,這個可能和程式有關吧 ! 但是,阿舍也有懷疑是 Domino Server 的  Cache 的問題,當然啦 ! 資料庫毁損也是一個大大可能的原因哩 !

好吧 ! 阿舍就先來重開 Domino Server,吔 ! 重開之後,好像是沒有問題了哩 !  ...可是,又沒多久,就又發生 "Cannot Find external name” 的錯誤了哩 ! 於是,阿舍就換個方法試,把那支有問題的 Function 搬到一個新的 Library 放到,結果,變成是那個 Library 的其它 Function 會出現 "Cannot Find external name” 的問題,所以,看來,不是程式寫錯,也不是 Domino Server 有問題,看來是這個 Library 有問題了哩 !

阿舍試著建立一個新的 Library 把原來 Linrary 的所有程式碼都搬到新建立的 Library 去,但是,不去刪掉舊的 Library,之後,再把 Agent 改成引用新的 Library,結果咧 ! ...就沒有 "Cannot Find external name” 的問題了哩 ! OMG

2011-07-28

Lightweight Portable Security (LPS) - 安全的 Linux 發行版本 ?

Lightweight Portable Security 簡稱 LPS 是由美國軍方的 ATSPI ( Antiamper Software Protection Initiative ) 組織所研發的 Linux 版本,而 ATSPI 研發這個 Lightweight Portable Security 的目的,就是要提供給美國軍方和政府機構人員可以有可隨身攜帶且安全的閱讀軟體,避免在不小心把機密的檔案給留在別人的電腦裡了哩 ! 同時,也提供安全的連線來連回美國軍方和政府機構的私有網路的。

那麼 LPS 和一般的 Linux 有什麼不同嗎 ? 那是當然的囉 ! 這個 LPS 基本上是設計安裝在可開機的 USB 和CD-ROM 上的,然後,LPS 開機後不會去掛載電腦上的任何他硬碟,所以,不會寫任何資料到被使用的電腦的硬碟上,可避免資料外洩,另外,這個 LPS 只有預載一個可以讀取 Smart Card  的  Firefox  瀏覽器'和 PDF 及文字檔的閱讀取,以及一套可加密精靈軟體和Java 環境,其他的就沒了,整個看來這個 LPS 的用途就是上網和閱讀 PDF 和文字檔哩 !

LPS 除了給美國人用的版本之外,還有一個 LPS-Public 的公開版本,任何人都可以從 ATSPI 的網站來下載,如果你的公司有一些別安全考量,也許可以考慮一下使用 LPS-Public 來防止資料外洩,還有,個人的話,隨身帶一個 LPS-Public,和別人借電腦上網時,就不用擔心留下什麼不該留的足跡哩 ! ....

2011-07-27

Janrain Engage 排除 "token_url domain not in whitelist" 問題

阿舍之前有介紹過這個 Janrain Engage 服務,也寫過因為要連線到 Janrain Engage 而要設定 PHP 支援 SSL 的問題,然後,經過一番努力後,終於能夠在自己測試的網站上,看到 Facebook、Google、Yahoo 和 Twitter 的登入圖示,於是,阿舍就興沖沖的來測試一下,結果,就不太爽的出現了 "token_url domain not in whitelist" 的這個訊息哩 ! OMG !

阿舍一開始還以為是 Google 家的問題,所以,又試了 Facebook,結果,得到的訊都一樣,所以,阿舍只好到 Janrain Engage 官網去找找,就發現,阿舍並不孤單哩 !, 有不人和阿舍有遇到一樣的症頭來的,因此,也就一下就找到答案了哩 !

解決方法就要登入 Janrain Engage,接著,從上面那一排選單點選「Deployment」>「Application Settings」,然後,在「Ddomain Whitelist」那一欄把 localhost 移除,只留下網站的網址,再按下面的「Save」按鈕儲存設定,這樣就可以解決 "token_url domain not in whitelist" 的問題哩 !


2011-07-26

Boot to Gecko (B2G) 是什麼 ?

GecKo 這個字看來好眼熟,好像在那常常宥看到哩 ! 好像是在 Apache 的 log 裡常看到的東西哩 ! 喔 ! Gecko 就是 Firefox 瀏覽器所使用的 Layout Engine 哩 ! 而這個 Boot to Gecko 的 Gecko 指的不是 Firefox 而是 Mozillia 這個專案,意思就是一開機就要進到 Mozilla,也就是說,Mozilla 也要推出像 Chrome OS 的東西了 !

和 Chrome OS 目標是 Netbook 和 Noteook 不一樣的是,Boot to Gecko 主要是要針對 Android 平台而開發的,而 Mozillia 會這樣子做的目的,是因為 Mozilla 認為,Open 和 Web 才是主流,但是,現有的各項Web 技術與規範都不是十分的適合應用在手機上,而現有的,像 AIR 之類的開發工具不夠 Open,所以,Mozilla 才打算自已來弄個 Boot to Gecko,專門開提供 Open 的 Web 開發環境哩 !

Boot to Gecko (B2G) 目前還在開發階段,距離釋出可用版本也還有一段時日,不過,目前大部份的專家們,似乎是樂見其成的多,反對的少,而阿舍也覺得,如果可以該手機應用程式的開發變的更容易並且有一個容易使用的界面,也是不錯,如果可以讓現有的網路服務可以轉換到手機台,那就更好了,不過.就阿舍的認知,Boot to Gecko 的成敗可能是在手機製造商的手上,而不是技術和開發者,因為,第一步必需要有手機製造商願意搭載,才會有機會哩 !

Windows 如何啟用 PHP 支援 SSL ?

阿舍昨天在測這個 Janrain Engage 服務的時候,正要準備連線到 Janrain Engage 的時候,就跳出錯誤說是 PHP 沒有啟用 SSL,所以無法用 HTTPS 連線到 Janrain Engage 服務,啥 !? 原來 PHP 要有啟用支援  SSL 才可以使用 SSL 連線喔 ! 阿舍都沒有注意過這件事哩 ! 嚴格來說,是阿舍根本就不曉得有這件事哩 ! 呵呵 ! ----

好 ! 要啟用 PHP 的這個 SSL 支援是吧 ! 那就去 php.ini 看看有沒有什麼 SSL 的擴充來啟用就是了,結果,就找到了個 php_openssl.dll 的,於是,就很快速的把下面這一行的註記拿掉,然後,存檔,重啟  Apache,接著...就跳出錯誤,那個 Apache 起不起來了哩 !....

extension=php_openssl.dll

阿舍就趕緊去看了 Apache 的 access.log 和 error.log 這二個檔,結果都沒看出什麼東西,最後,又去看了 Windows 的事件檢視器,就只有看到看不出所以然的錯誤訊息哩 ! 好吧 ! 阿舍的功力無籨發揮,還是只能去問 G 先生了哩 ! 結果,就是還要安裝這個 OpenSSL 哩 ! 要到這裡來下載,安裝好之後,重開 Apache 之後,就 OK 了哩 !

附帶一提的事,安裝 OpenSSL 時,選預設值可以了,就是要把檔案裝在 Windows 資料夾的那一個,然後,請意一下最後一個畫面,那是要請你資助 OpenSSL 這個專案的,請看清楚再按囉 !!

SSH 排除 "Permission denied (publickey)” 錯誤

阿舍昨天心血來潮,就把 VPS 給重裝了,把很久沒升級的 Ubuntu 9.10 換成  Ubuntu 11.04,阿舍覺得重裝遠比升級來的容易多,尤其是在 VPS 的環境上,要重裝更是簡單,只要按一個按鈕就可以搞定了哩 ! 所以,阿舍就很高興的來作了個重新安裝,然後,就按照這篇的步驟來設定成用憑證登入 SSH,結果咧 ! 就出現了  "Permission denied (publickey)" 的訊息,就連不上線了哩 !

只有出現一個 「Permission denied (publickey)」訊息讓阿舍真是不知該如何查起哩 ! 於是,阿舍就問了一下 G 先生,然後,就有找到各式各樣的說法和解法,其中,阿舍選了用下面的這個指令來進行除錯找原因,結果,就真的是 Public key 錯誤哩 ! –___-!

ssh –v arthur@arthurtoday.com

原因就是阿舍在重裝後,沒有重新產生憑證,就把之前產生的憑證重新上傳到新裝好的主機上,然後,就發生 "Permission denied (publickey)" 而無法連線的問題了哩 ! 所以,阿舍就只好乖乖的先取消不使用密碼認證的方式,然後,重新產生憑證,再重新上傳,再取消密碼認證,這樣,才可以搞定哩 !

2011-07-21

Winodws 如何安裝 Mongodb 的 RockMongo 管理軟體 ?

阿舍最近想找個 MonogoDB 的管理軟體來用用,就發現,這個給 MongoDB 用的管理軟體還不算少,至少有七、八套之多,其中,讓阿舍很感興趣的是這個 RockMongo 這一套,為什麼呢 ? 因為它是和 phpmyadmin 一樣,是用 PHP 寫的,透過網頁來操作的,所以,就不用每台電腦都要裝,而且,不管 Linux 還是 Windows 都是可以裝的起來的哩 !

首先,要到這裡下載 RockMongo 的壓縮檔,然後,把它放 Web Server 裡,以阿舍是裝在 Apache 2 為例,就是會放到 Apache  的 htdocs 裡的  rockmongo 資料夾,接著,如果的 mongoDb 的 Server 不是裝在和 Web Server 同一台,或是有改過 MongoDb 的連線埠號 ( Port Number ) 的話,那就要去打開  rockmongo 資料夾裡的 config.php 這個檔來調整下面這幾個值,不然,就可以跳過哩 !

$MONGO["servers"][$i]["mongo_name"] = "Localhost";//mongo server name
$MONGO["servers"][$i]["mongo_host"] = "127.0.0.1";//mongo host
$MONGO["servers"][$i]["mongo_port"] = "27017";//mongo port

另外,RockMongo 的預設帳號是 admin,密碼也是 admin,如果要變更密碼的話,請更改 config.php 裡的下面的這一行的值。

$MONGO["servers"][$i]["control_users"]["admin"] = "admin";

要新增使用者的話,就是再加一行,然後,把前面那個 admin 換成你想要的帳號名稱,以阿舍要新增一個 arthurtoday 的帳號為例,就要新增下面這一行。

$MONGO["servers"][$i]["control_users"]["arthurtoday"] = "mypassword";

該調的都調好之後,以阿舍安裝在 rockmongo 資料夾為例,就可以用下面的這一行網址來開啟 RockMongo 了。

http://localhost/rockmongo/index.php


2011-07-20

Open Clip Art Library - 免費的線上圖庫

做簡報、做海報和做網站找不到圖庫可以用嗎 ? 請到這個 Open Clip Art Library (OpenClipArt.org) 來找找,也許就會有你需要的圖片可用哩 ! 而且,真的是不用錢哩 ! 阿舍之前有介紹過這個「Public Domain」是什麼東西,而這個 Open Clip Art Library 網站上的圖片就在採用 「Public Domain」的方式來發佈的( 更詳細的授權內容,請參考這裡 ),所以,除非是有特別的聲明之外,在 Open Clip Art Library 網站上的圖片都可以給你隨便下載來修改、發佈和進行商業用途的哩 !



2011-07-15

CloudStack Project 是什麼 ?

阿舍一直以為可以從把 Cloud.com 和  CloudLinux 兩家的東西搞錯哩 ! 一直以為二家都有提供像 XEN  這種虛擬機器的軟體哩 ! 其實,這二家的東西不相同,也沒有相關,但是,阿舍也都沒去搞清楚,直到這二天看到 Crtirix 把 Cloud.com 併購後,阿舍就很好奇,為什麼已經擁有 XEN 技術的 Crtirx 還要去買 Cloud.com 哩 !

圖片引用自 CloudStack Project

2011-07-14

Ubuntu 為什麼會用掉所有的記憶體 ?

阿舍前陣子拿到一條 4G 的 RAM,所以,就把小黑的 4G 換成 6 G 來用,然後,就在 Ubuntu 上多弄幾個 VM 來同時跑,阿舍想說,反正記憶體夠用,一人給個 2 G 來跑二個 VM 應該是沒問題的,因此,昨天有空,就把 Ubuntu 給開起來弄一弄,之前,從來沒多加注意記憶體的變化,但是,今天用 free 指令看了之後才發現,怎麼沒一會的時間,可用記憶體就只剩 800 多K,怎麼 5G 被用掉了哩 ! 用去那裡了呢 ??




Apache 2 如何排除 client denied by server configuration 問題 ?

阿舍昨天突然想把 Apache 的 VirtualHost 放到 Apache 的 htdocs 資料夾之外,於是就把 Virtual Host 的  DocumentRoot 指到 c:\arthurtoday 資料夾,想要用這個 c:\arthurtoday資料夾來當做這個 VirtualHost 的根資料庫,可是,就在重新啟動 Apache 2 之後,開啟網頁,就出現錯誤了哩 ! 於是,阿舍就去看了一下 error.log 檔,就發現有 “client denied by server configuration” 這個問題哩 !

其實,阿舍直覺就有到是設定的問題,因為,阿舍好像有記得,Apache 預設是不可以把 DocumentRoot 指定到 htdocs 資料夾之外的 (這是就 Windows 環境而言),所以,阿舍就去確認一下,果然,是這樣子的哩 ! 要做一些調整才行。

以阿舍要把 VirtualHost 的 DocumentRoot  指到 c:\arthurtoday資料夾為例,就是要在 Virtual Host 設定的 <VirtualHost> 和 </VirtualHost> 之間,多加入下面這一組設定就可以了。

<VirtualHost *:80>

           DocumentRoot "c:/arthurtoday"
           ...
           ...
<Directory "c:/arthurtoday">
     Order allow,deny
    Allow from all
</Directory> 
</VirtualHost>

2011-07-11

Ubuntu 安裝 Pencil Project 軟體 (Wireframe software)

阿舍想要找個 Wireframe 軟體來畫網站的 Wireframe,找了一下,發現有很多的這軟體是透過網路的方式來使用的,而且都是要付費的比較多,雖然也有些免費的,但是,功能和圖檔的數量都會有一些限制,所以,阿舍就放棄找網路版的,開始專心找看看有沒有好用免費的 Wireframe 軟體,結果,就找到這個免費的 Pencil Project 軟體

Credit Pencil Project

2011-07-07

你會去虛擬超級市場 (Virtual Supermarket) 買東西嗎 ?

虛擬超級市場(Virtual Supermarket) ? 不就是在講網路購物嗎 ? 這是阿舍的第一個反應,但是,當阿舍看到畫面時,就有種恍然大悟的感覺了,這....真的是虛擬超級市場哩 ! 而這家虛擬超級市場就位在南韓地鐵站的牆壁上,是由 TESCO 這家連鎖超級市場想出來和韓國第一名連鎖超級市場競爭的方法哩 !

圖片引用自 Gizmodo

2011-07-06

Janrain Engage - 整合外部帳號服務

這年頭,小網站或是新的雲端運算服務網站要能夠讓訪客願意註冊,最好的方法,大概就是提供可以使用各大知名網站的帳號來登入的方式,讓使用者可以簡化註冊的程序,如果要達到這個目的,可以自己一個個的去寫和這些網站帳號整合的程式,不過,可能要花點時間,如果跟阿舍一樣,不想花時去搞那些東西,那麼,就可以考慮使用 Janrain 所提供的服務哩 !

Janrain Engage 可以整合約有 20 家網站的帳號登入服務,包括 facebook 、Google 、Twitter 和 Yahoo 等,如果你的網站一年的註冊使用者不超過 2500 個帳號,那麼,Janrain 就不會跟你收錢,否則,Janrain 的 Janrain Engage 的服務是要收費的,每年 5000 個帳號收 100 美元,10000 個每年收 $1000 美元,25000 個每年收 2250 美元,真是帳號數越多越貴哩 ! 不過,阿舍覺得,一年 2500 個帳號對一般的網站來說,應該是綽綽有餘哩 ! 所以,為什麼不用呢 ?

當你註冊好 Janrain Engage 服務之後,你可以選擇要整合那些網站的帳號,免費的,只可以選擇六家,有付錢的,可以多選幾家,但是,阿舍覺得六家就有夠了,不過,像是 Facebook、Twitter 和 Windows Live 這種需要有 App Key 的網站,你還是要自己去申請,Janrain Engage 只負責幫你做連線的,並不會幫你去做申請的動作哩 !

Janrain Engage 提供有 C#'、Java'、PHP'、Python、Ruby 和 VBScript 的 SDK,如果你是網站開發者的話,可透過 SDK 來讓網站使用 Janrain Engage 的服務,不然,如果你是使用 WordPress'、Drupal、Magento、VBulletin、Boonex、DotNetNuke、Plone 和 XCart 等軟體架站的話,Janrain Engage 都有提供現成可用的  Plugin 或 Connector 來使用 Janrain Engage 服務,阿舍就是用這個方式的,還滿方便的哩 !

2011-07-02

MongoDB 的 findAndModify 指令

MongoDB 從  1.3.0 版之後,開始提供 findAndModify 的指令來更新已經儲存在資料庫的文件 ( Documents),這個 findAndModify 和 update 的功能相似,但是,用途是不太一樣的,update 只可以更新文件,但是,這個 findAndModify 還可以傳回已經更新過的文件哩 ! 另外,由於 findAndModify 指令是採用 Atomic operation 的方式 ( 就是只有寫成功和沒寫二種狀態的方式 ) 來寫入資料,所以,也可以拿來當做 MongoDB 的 lock 功能用。

阿舍會注意到這個 findAndMondify 指令,是因為阿舍要弄一個自動增號的功能,這個功能在 MySQL 要將欄位設定成自動增號就可以了,但是,MongoDB 是要靠自己弄的,所以,阿舍才會找要用這個 findAndModify 指令哩 ! 才發現,這個指令還有用的啊 !

findAndModify 指令總共有 7 個參數可用,但是,阿舍並沒有要一一說明,而是要用一個簡單的案例來說明,這樣,只要懂了怎麼用,那麼其它參數就不難懂了哩 ! 以阿舍要對 news 這個 collections 的 _id 是 888 的這份文件變更 subject 欄位為例,可以在 mongoDB 的  Shello 用下面的指令來操作達成:

> doc= db.news.findAndModify( {
      query : { _id : 888 },
      update : { $set : { subject : "test 2" }} ,
      new : true
      });

query 後面是要放要更改的文件的搜尋條件,阿舍的例子是要改 _id 是 888 的這一個文件。

update 後面要放的是要修改內容,其中的 $set 是mongoDB 內建的運算子,用來變更欄位值,阿舍的例子是要把 subject 這個欄位值改成 "test 2”。

new 後面的 ture 是用來指示 MongoDB 需要把更新後的文件給回傳回來,true 就是要,false 就是不要囉 !