2013年2月18日 星期一

五招圖解 Google 搜尋密技



來源: 商業週刊 http://www.businessweekly.com.tw/blog/article.php?id=1029&p=1



檔案類型

filetype:pdf



標題

intitle:velocity



網站

site:nytimes.com



不想搜尋到的關鍵字

-SATs



時間區間用兩個句點間隔,輸入2008..2010



搜尋各式各樣的燕子(swallow),在燕子前加上*,輸入*swallow



作者關鍵字,輸入author:green



定義

define: angary

2013年2月15日 星期五

網頁圖表

Google

最近網頁需要圖表,前幾日花了一天時間研究  Google Chart Editor。後來發現相關服務套上 deprecated 這個字:Google Chart Tools: Image Charts (Deprecated)。如果我沒看錯的話,這項服務(用 img 元素產生圖表的方式)只延續到 2015 年。這樣會讓人害怕,萬一哪天 google 整個圖表服務也停止,或是改成收費服務,那所有寫過的程式可能都要改寫。最好還是使用那種可以把整個套件、程式碼下載的比較好。一個專案就用一套,也不用怕改版。



Fushion Charts 不是免費的,不過還是可以下載 Trial 版本,只是產生出來的圖表都會有 Fushion Charts Trial 這個字嵌在上面。這應該還可以接受。




amCharts

一樣也不是真正免費,不過還是可以免費使用。原本還在猶豫要用哪一套,看到這一頁的展示,決定用它了!曲線圖的 x 軸竟然可以選擇範圍區間,太方便了。





amCharts 介紹

Getting Started with amCharts Bundle v.2. Part 1.

基本介紹,比較 Javascript 跟 Flash 這兩種方式產生的圖表有何不同。




2013年2月7日 星期四

Voip 電話

免費且開放的 SIP VoIP 網路電話



VoipBuster 免費網路電話 (台灣免費!)



VoipBuster官網

VoipBuster中國代理



Fine-Start - http://www.fine-start.com/

看起來是在賣各種介面卡,但是它的產品目前沒有任何文件。不過它導覽列的 download 可以下載有 trixbox 及 asterisk 的說明。



Trixbox 中文論壇(簡體) 

Google 網上論壇-Asterisk

https://groups.google.com/forum/?hl=zh-TW%E3%80%82&fromgroups#!forum/asterisk-tw



(第二篇) 如何在一個site內部署一部Elastix

(第三篇) Elastix安裝

自建專業級 PBX:trixbox

trixbox - 百度百科











表單送出前先以 ajax 方式檢查 phpcapcha 圖片驗證的問題

phpcapcha 使用方法



最近遇到一個問題。表單送出後,先執行一個 Javascript 函數,檢查各欄位資料有無問題,若有問題,立即以 return false 終止函數。其中最後一步是做圖片驗證的檢查,都通過之後再將表單送出。



這部份照理來說應該是循序執行,最後送出表單。但最近遇到的問題,圖片驗證不論怎麼打,隨便打,表單一定會送出。查了一陣子才發現是 ajax 的問題。先來看下列程式碼:



function checkForm(){
//check account
//...

//check password
//...

//check phpcaptcha
var phpcaptcha_checked = 0;
var ct_captcha = document.getElementById('ct_captcha').value;
$.post("libs/ajax_phpcaptcha.php", {ct_captcha: ""+ct_captcha+""}, function(data){
if(data=='error'){
showErrorToast('Incorrect security code entered');
return false;
}else if(data=='success'){
var phpcaptcha_checked = 1;
}
});

//alert('isChecked='+isChecked+' isChecked='+isChecked);
if(phpcaptcha_checked==1){
document.getElementById('pgForm').submit();
}
}


原本預想的流程是這樣:一開始 phpcaptcha_checked 變數是 0 ,等到圖片驗證通過之後,再將 phpcaptcha_checked 改為 1 。然後當 phpcaptcha_checked = 1 的時候,將表單送出。



後來才發現 phpcaptcha_checked 的值永遠是 0 。因為 phpcaptcha_checked 是用 ajax + jquery 的方式做後端處理,而 ajax 的特性就是可以不重整頁面來更新資料。看看上面程式碼,回傳 success 那一行。雖然照理來說,回傳 success 之後 phpcaptcha_checked 應該就要變成 1 。但是 alert 出來的結果,即便圖片驗證的字串正確輸入, phpcaptcha_checked 的值還是 0 。



ajax 是可以在更新資料的時候,不用重整頁面。但我指定同一個東西,不是應該可以改變嗎?就像常用的:document.getElementById(id).innerHTML=xmlHttp.responseText,改變現有頁面上的某個元素啊。看起來,大概是函數裡的變數會重新指派吧。總之,要把把送出表單的指令移到 sucess 那一段裡面。



//check phpcaptcha 
var ct_captcha = document.getElementById('ct_captcha').value;
$.post("libs/ajax_phpcaptcha.php", {ct_captcha: ""+ct_captcha+""}, function(data){
if(data=='error'){
showErrorToast('Incorrect security code entered');
return false;
}else if(data=='success'){
document.getElementById('pgForm').submit();
}
});


2013年2月3日 星期日

檢測瀏覽器

JavaScript程式碼:

<script type="text/javascript">
var ua = navigator.userAgent.toString();
if(/MSIE/.test(ua)){var isIE=1;}
else if(/Firefox/.test(ua)){var isFirefox=1;}
else if(/Chrome/.test(ua)){var isChrome=1;}
else if(/Safari/.test(ua)){var isSafari=1;}
else if(/Opera/.test(ua)){var isOpera=1;}
document.write('ua='+ua+'<BR>');
document.write('isIE='+isIE+'<BR>');
document.write('isFirefox='+isFirefox+'<BR>');
document.write('isChrome='+isChrome+'<BR>');
document.write('isSafari='+isSafari+'<BR>');
document.write('isOpera='+isOpera+'<BR>');
document.write('isFirefox='+isFirefox+'<BR>');
</script>

Win8 UI

2013年2月2日 星期六

IP與黑名單



TCPIPUTILS.com

包括 Whois, Traceroute, 各種 Blacklist,以及 Ping



SPAMHAUS

http://www.spamhaus.org/lookup/

可檢測 IP  位址或網域



http://cbl.abuseat.org/lookup.cgi?ip=203.69.30.1&.pubmit=Lookup



http://www.backscatterer.org/?ip=203.69.30.1

http://moensted.dk/spam/





http://whatismyipaddress.com/blacklist-check

http://www.dnsbl.info/dnsbl-database-check.php

http://www.mxtoolbox.com/blacklists.aspx



How to find BOTs in a LAN

http://cbl.abuseat.org/advanced.html