2010年4月9日 星期五

Chrome 也有1password的外掛啦~

原來Chrome也有1password的外掛,其實我已經outdate很久了,
好像1月份就有alpha版了,只是我不常用Chrome。

今天心血來潮用了一下Chrome,真的感覺有比較快一點,
然後不小心發現我的1password好像沒有內建chrome的外掛,
所以只好自己去找看看有沒有人提供,
好在官方有提供,請參考下列教學網址:

http://blog.agile.ws/post/450843073/a-1password-alpha-for-chromium-is-here

懶得看英文的話,直接點以下網址安裝外掛程式:

http://agile.ws/s/a330894b8

安裝完右上角就會多一個1password的icon,在chrome上也可以不用記密碼啦~~哈哈

2010年4月4日 星期日

Hinet 撥接式固定IP mail server relay設定

前陣子我用hinet adsl撥接申請的固定IP,
一直有一個困擾我很久的問題,
那就是寄給Gmail的信,總是不定期的給我退信,
今天總算是讓我找到方法解決了。

原來hinet為了要防止別人任意架mail server 發送垃圾信所以關了relay,
所以,我的IP才會被Gmail列入黑名單中,
要解決的方法不難,
只要修改/etc/postfix/main.cf,在relayhost的欄位中加入

[ms32.hinet.net]:25

指令如下:

$ sudo vi /etc/postfix/main.cf


relayhost = [ms32.hinet.net]:25


然後重新啟動postfix,

$sudo /etc/init.d/postfix restart

這樣信件就可以正常發送到Gmail了。

參考來源:
http://moto.debian.org.tw/viewtopic.php?f=12&t=13545

2010年4月3日 星期六

Mac+iPhone 有感

自從買了MBA+iPhone 3Gs之後,真的感受到了MAC家族帶來的便利和整合性,
尤其是iPhone和Mac OSX的整合性,我可以在我的iPhone上做備忘錄,
然後回家之後再透過USB連線同步我iPhone上的資料。
而且iPhone和Mac上的Mail和iCal又都可以跟Gmail和Google calendar同步,
讓我完全不用擔心系統轉移會造成任何的不便。

在我花了時間學習這些新工具之後,我不禁靜下來思考,
MAC+iPhone的確帶給我便利性,讓我可以隨時隨地察看信件和行事曆,
不過其實我真的會用到iPhone來查信件的時間很少,
可能是因為我的身邊總是有電腦和網路吧,
所以,iPhone上的許多工具,對於我來說已經越來越少在用了,
最常使用的大概就記帳軟體和一些打發時間的小遊戲,

而現在對我而言最常使用的工具則是evernote,
因為evernote可以線上同步筆記和一些記事,
反正用iPhone來記事的時間本來就不是很多了,
大部份都是在電腦上記完事之後再同步到iPhone上看,
所以,還滿推薦大家使用evernote的。

綜合地來看,轉換到MAC之後,其實我最需要的工具還是能線上即時同步的工具,
因為我本身需要同時在不同的平台上工作,所以對於軟體的好壞,跨平台則是我的首要條件。
相信將來任何的系統軟體都必須要有跨平台的能力才會大賣。

Curl 截取ASPX的網頁資訊

最近剛好想要撈一個ASPX網頁的資料,
想說用php+curl就可以輕易的透過post將資料截取回來,
不過,實際去寫code的時候就會發現,其實ASP並沒有這麼容易就可以下載回來。
因為,ASP在post資料時,會將一些訊息紀錄在__VIEWSTAT這個欄位中,
如果沒有取得這個欄位的資料,則用post請求的資料會變的不正確,
因此,若想要取得正確的資料,就必須先下載請求的頁面,並且剖析取出__VIEWSTAT的值,再將__VIEWSTAT的值填入參數之中,一起送出請求,
這樣才能正確的截取資料回來了。

參考來源:

http://www.phpbuilder.com/board/archive/index.php/t-10328567.html

http://my-web-design.blogspot.com/2008/11/curl.html

所以,我們舉個例子,以便說明程式的寫法:

Step1 取得__VIEWSTAT資料

首先跑一次Curl,將__VIEWSTAT的參數內容截取回來:

$link = "http://test.web.idv.tw/query.aspx";
$ch = curl_init($link);
if (!$ch)
{
die( "Cannot allocate a new PHP-CURL handle" );
}
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 13); //times out after 4s
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
$token = "__VIEWSTATE";
$result = strstr($result, $token);
$result = substr($result, strlen($token));
$endpos = strpos($result, \'" />\');
$result = substr($result, 9,$endpos-9);
//URLENCODE
$result= urlencode($result);


其中這段程式的第一行的$link是欲下載目標連結,第7~11行是curl的參數設定,第12行是第一次使用curl下載表單,第13~17行則是將__VIEWSTATE的參數截取回來。第19行則是將取得的資料轉換成url的型態,這樣之後可以直接將$result當做參數,再向同一個網頁要求資訊。

這裡比較要注意的是第17行可能會因為ASP欄位的不同,資料所在也不同,所以要自行修改截取的位置。

Step2 正式要求我們所要的資料

接著我們再次要求我們所需要的資料,假設我們現在要post的資料欄位是日期和IP位置,
那就必須將日期、IP和viewstat的資料結合在一起,然後一次送出,
範例如下:


/**
* For getting date from query
*/
$viewstat = "__VIEWSTAT=$result";
$dodate = "dodate=2014/03/22";
$ip = "ip=211.211.211.211";
$all_arguments= $viewstat.$dodate.$ip ;
//Request data
$link = "http://test.web.idv.tw/query.aspx";
$ch = curl_init($link);
if (!$ch)
{
die( "Cannot allocate a new PHP-CURL handle" );
}
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 13); //times out after 4s
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$all_arguments);
$data=curl_exec($ch);


其中第1~4行是在整理參數,第6行之後是重新在要一次資料,這次我們將取得的資料存放在$data中。
按照這樣的步驟,就可以正常取得ASPX的資料了


Related Posts Plugin for WordPress, Blogger...