2011/05/19

[Google] Google Map API v3 範例

其實應該看過 Google 官方網頁說明 就好了,就不用再寫什麼筆記來說明怎麼寫一個 Google Map API 了。

不過,因為 Google Map API v2 跟 V3 的差別不小,所以還是寫一個筆記來說明一下。

0. 不用申請 api key 了。
1. 要 Detect User Location ,就要用 v3。 (就是抓瀏覽網頁的這個使用者的位置)
2. 要用滑鼠滾輪,請用 v3 。(v2 我不知道用什麼方法可以,不過預設就不行,所以我就改 v3 了)
3. div 的位置有改變,所以 v3 比較好用。 v2 的 division 要放在 body 這個標籤之中,會有 js 載入的先後之類的問題, v3 變作一個 function 去呼叫,這樣使用比較方便。


好,廢話說完了,開始說明,怎麼使用:

1. 需要 load 兩隻 js 進來:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="http://code.google.com/apis/gears/gears_init.js"></script>

2. 使用時呼叫 function init 就可以 (範例是在 body onload 時呼叫)
function init()
{
var map;
var infowindow = new google.maps.InfoWindow();
var myOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("mymap"), myOptions);
var pos = new google.maps.LatLng(40.69847032728747, -73.9514422416687);

map.setCenter(pos);
infowindow.setContent("my comment");
infowindow.setPosition(pos);
infowindow.open(map);
}


3. 你想秀地圖的地方,就是用一個 div 包起來, id 我這邊取叫 "mymap"。
4. 參數說明:
zoom 的部份可以微調。數字愈小就看得東西愈多,愈大就愈精細。
經緯度的部份是在這一行:
pos = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
要再自已去 google map 找一下地點,然後看一下 ll 等於多少,再自已加進來。

步驟就是這樣而已,其實很簡單吧?

--
Google 官方網頁說明
Google Map API v 2 的範例 這篇寫的很棒很簡單,也感謝主人一下。

2011/05/16

[Linux][軟體] 使用 Logwatch 檢查系統日誌的重點 (懶人請用範例檔)

說到 logwatch ,雖然我已經用了很久,但是還從來沒有寫過一篇關於它的文章,所以這篇將會提到以下的煩惱:


  • 每天看 system log,是人也會瘋掉。
  • syetem log 很多,很煩,很討厭,所以很多人都不想看。
  • system log 不能連線看就只能寄 email ,寄 email 還要裝 postfix 或 sendmail 這個服務正是最容易被入侵的服務之一,為了防杜入侵結果反而造成入侵,這是本末倒置的事情。


所以這篇記錄有 3 個重點:

  1. 找出系統日誌(system log)的重點
  2. 決定多久送一次系統日誌摘要就好
  3. 改用 gmail 來送 email
logwatch 預設的 config 檔放在:/etc/logwatch/logwatch.conf
預設的 config option 很多很煩,所以簡短一點就變成下面的樣子:
LogDir = /var/log
TmpDir = /var/cache/logwatch
MailTo = your_email
MailFrom = Lunar
Print = No
Range = yesterday
Detail = Low
Service = All
Service = "-zz-network"
mailer = "mail.php your_email -s LogWatch"


設定 Logwatch 的 config 檔
  • Service 可以填入不要檢查的 service 名稱,這樣就不會一堆落落長的 log 內容每天去煩你。
  • MailTo 改成你的信箱地址
  • Range 改成你想要檢查的時間範圍
  • mailer 這邊改成我們用 phpmailer 偽裝的送信指令
用 PHPMailer 幫你透過 Gmail 送信
這個方法需要先安裝 phpmailer ,在 debian/ubuntu 底下都可以使用 apt-get install 來安裝這個套件,接著就是下載我參考資料有列出來的 範例檔 逕自修改就可以不用特地為了看 log 來跑一個 sendmail 服務。


重點就紅線框起來的地方而已,請換成你的 gmail 帳號﹑密碼就好,logwatch 會走 stdin 塞資料進來,所以範例程式後面有處理一下 stdin 的部份。

最後,不要忘記在 crontab 裡面加入 logwatch 的服務,通常會在 /etc/cron.daily/ 底下加入一個 00logwatch 的 script (有執行權 x),內容會像是:
#!/bin/bash
#Check if removed-but-not-purged
test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0
#execute
/usr/sbin/logwatch --output mail
#Note: It's possible to force the recipient in above command
#Just pass --mailto address@a.com instead of --output mail

--
參考資料:

2011/05/05

[軟體] Betaradio 在 Ubuntu 11.04 上不能顯示

Betaradio 是 Linux 上面FourDollars 為播放 hichannel 廣播所做的一套軟體,還蠻好用的,不過在 Ubuntu 11.04 上面,因為政策的改變,所以預設只允許某些應用程式占用 system tray 。

不過這是可以手動修改的問題,所以我們只要做下面的動作就可以免除掉這個麻煩:
gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'scp-dbus-service', 'betaradio']"

理論上要
gsettings get com.canonical.Unity.Panel systray-whitelist
再追加到白名單後面才對,不過我想這樣的說明又太冗長了 ~

2011/05/01

[微軟] Windows XP 重灌錯誤 0x00000078

記錄一下,最近重灌 Windows XP 時遇到的藍底白字,原來是 sata 硬碟的關係,只要再進 Bios 的設定,把硬碟工作模式設成 IDE 就可以了。

參考來源:
安裝不了 XP

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...