星期一, 三月 31, 2008
PHP: 單行註解遇到程式結束符號的問題
幫別人 Debug 的時後, 遇到一個很有趣的問題, 明明程式看起來沒錯, 但是就是有 Error. (不過, 如果用 vim + syntax on, 答案就很明顯).
程式簡單範例如下:
<?php
// $a = 1; ?>
$b = 2;
?>
主要的原因是出在 "//" 並不會把 "?>" 列入註解, 而是程式會在 "?>" 這邊就結束了, $b = 2 這段就會當一般文字印出來. 這種 Bug 在其它編輯器要找出來還真是有點難, 不過在此當然要多推廣 vim, 一打開就發現問題在哪邊了.... XD
剛剛上面那行註解的方式應該要如下:
<?php
/* $a = 1; ?> */
$b = 2;
?>
用 /**/ 就不會有程式被提前結束的問題. 另外, 就是改用 vim 吧... :P
星期五, 三月 28, 2008
GoNav S900(GO阿姨) 入手
GoNav-S900 這台是朋友辦中華電信光纖送的, 但是因為系統有問題, 說要重新安裝一些程式, 所以一直丟在牆角不理它~ 既然在牆邊, 當然要拿過來好好玩玩, 所以拿到就開始爬文, 找程式要去哪裝等等~ :P
結果搞了一個晚上, 重點是 程式是要在 PaPaGO官方網站 下載, 升級也都是從官方網站下載升級. 但是裝 R12/R15 都行不通(都在 "Hinet 光世代"的畫面 就卡住不動), 也都格式化成 FAT, 最後換其它張 SD卡, 就搞定了. =.=|||
(閱讀全文)星期四, 三月 27, 2008
好站: PHP function 轉換成 Ruby 的查詢手冊
PHP 有很多方便的 function, 但是要轉換成 Ruby 的話, 需要另外花一點時間做摸索.
這個網站裡面有列了不少常用的 function, 假如要查 fpoen, 可以用 http://railsforphp.com/fopen 來查詢(會自動導到 http://railsforphp.com/reference/filesystem/fopen), 就可以查到 PHP 原本寫法, 然後在 Ruby 裡面該怎麼寫的範例.
詳細可見:
註: 真希望 Python 也有這種轉換的 Reference 可以看~ XD
星期一, 三月 24, 2008
OpenDNS Service IP / 優點
原本以為 OpenDNS 只是拿來當 168.95.1.1 這種來用的, 並沒有注意到還有額外那麼多的用處. 詳細可見: OpenDNS
OpenDNS 的 IP:
- 208.67.222.222 (resolver1.opendns.com)
- 208.67.220.220 (resolver2.opendns.com)
星期五, 三月 21, 2008
簡易快速 Windows XP 安全性檢驗工具
Windows 平常除了 Windows Update 是一定要做的外, 下述的網頁建議也都看一看, 檢查看看是否有異常狀況 等.(新的 XP 灌好, 做 Windows Update 居然要更新一天. Orz..)
(閱讀全文)星期四, 三月 20, 2008
諸葛神算 384 籤
昨天聚會被人說寫的文章都太專業了, 看不懂, 所以.... 來寫點不一樣的.. XD
諸葛神算主要是用抽籤的, 就是想要問什麼東西(工作/愛情.. 等), 先想好後, 然後隨便想三個字(要剛好三個字, 不能多也不能少), 再去算那三個字的筆劃, 每個字的筆畫, 都取最後的那個尾數(ex: 16 取 6), 然後組合成一個三位數的值, 如果那三位數的值大於 384, 就把那個值減掉 384, 一直減到小於 384 後, 再去看簽運即可.
(閱讀全文)星期三, 三月 19, 2008
用 Mplayer 將 mms 的影片存檔
要將 mms://xxxx 的影音串流存起來(或說 錄下來), 用 mplayer 就可以輕鬆做到囉~ (不會有影片播出來, 等待跑完就是囉~)
- mplayer -dumpstream mms://URL/FILENAME -dumpfile SAVED-VIDEO-FILENAME
星期二, 三月 18, 2008
Linux: Meld - Diff and merge tool
Debian/Ubuntu 的 Diff 工具: Meld (感謝 Rickey 推薦). 到官方網站去看圖就可以了解, 真是 Diff/Merge 工具的王道, 可以清楚的看出要如何 Merge, 並且可直接修改文件, 而且還可以比對目錄的檔案有哪些存在, 哪些不存在. 等等.
(閱讀全文)星期一, 三月 17, 2008
要使用 HTML link 來安裝 Debian/Ubuntu Package 如何寫
常常寫到要 apt-get install screen 等, 但是如果直接變成 link, 一點下去就可以直接安裝, 或許是個更快的方法. (apt-get install screen, 然後把 screen 變 link, 點選就會安裝 screen 的 package).
(閱讀全文)星期五, 三月 14, 2008
Shell Script: 來最多次的 IP, 抓前 10 名
一隻簡單的 Bash Script, 找出暴力攻擊 Server 的 IP, 然後不得已的情況, 就是把他擋掉....
Shell Script: tail -1000 /var/log/apache2/www-access.log | awk '{print $1}' | sort | uniq -c | sort -n | tail
取最後進來的 1000 筆 access log 來看, 觀察一下有沒有太誇張的 IP (特別是看有沒有是特別來亂的, ex: 開始亂塞些惡意的值)
列出大致如下:
- 次數 和 IP
- 10 xxx.xxx.xxx.x
- 100 xxx.xx.xx.x
- 300 xx.xx.x.x
- ... 等 10 筆
- 擋掉 100.100.1.1 的 IP: iptables -I INPUT -s 100.100.1.1 -j DROP
- 擋掉 100.100.0.0 整個網段: iptables -A INPUT -s 100.100.0.0/24 -j DROP
- 解除: iptables -D INPUT -s 100.100.1.1 -j DROP
星期四, 三月 13, 2008
Linux: 好用的 Commander 和 Diff in Xwindow
在鮮肉看到 BeeDiff, 再看看圖片, 就感覺到是好工具, 更深入點進去主站: beesoft.org, 發現這網站的東西都蠻不錯的, 而且全都 Open Source. :)
(閱讀全文)星期三, 三月 12, 2008
Javascript 的 Database: Taffy DB
Javascript 的 Database 是 一個很酷的 Idea, 但是, 好像又有點怪怪的.....
DB 的空間只有 10K, 這跟直接存在 Cookie 或存成 JS Array 比起來, 似乎沒有比較方便.
不過, 提供的 DB 處理倒是可以省掉不少工(ex: Find / Update / Insert / Remove / OrderBy ... 等). 先記起來, 之後再研究如何應用它~ :)
(閱讀全文)星期二, 三月 11, 2008
MySQL 設定 Replication (Master - Slave)
MySQL 設定寫入 Master 後, 自動 Replication 到 Slave 去, 運作基本原理是:
- INSERT/UPDATE/DELETE 語法, 自動寫入 Master 的 binlog file.
- 由 GRANT REPLICATION 授權的帳號, 自動將 SQL 語法 repl 到 Slave 的 DB 執行.
- 因而完成 Replication 的動作.
星期五, 三月 07, 2008
IE8 的 相容Quirks模式 Meta Tag(X-UA-Compatible)
Microsoft 推出了 Internet Explorer 8 Beta 1, 裡面有一個非常大的改變: 微軟:IE8 預設模式將支援網路標準
, 節錄裡面幾點:
- 微軟宣布,IE8一推出時,就會以標準相容模式(standards compatibility mode)作為預設的成像引擎(rendering engine)。微軟先前已表示,新版瀏覽器可以通過Acid2 rendering測試。
- 就IE8而言,微軟計劃提供三種rendering模式:新的標準相容(standards-compliant)模式、IE7成像引擎、以及一個展示舊型網站的選項。因為新版瀏覽器改變了預設環境,若網站希望IE8沿用IE7的引擎,就必須在各自的網站編碼中加入一個標籤(tag)。
所以 IE8 的預設模式會如下(取自: IEBlog: The Default Layout Mode):
- Known standards DOCTYPEs and unknown DOCTYPEs: IE8 Standards
- Quirks mode DOCTYPEs (includes the absence of a DOCTYPE): Quirks
- 關於 DOCTYPE 詳可見: MSDN 對 !DOCTYPE 的介紹 和 HTML 標準驗證


