PHP5 物件相互引用, 造成 Memory Leak

PHP5 的 物件A 裡面再 new 物件B, 然後 unset(物件A), 會發現 Memory 還是存在(Memory Leak) 的狀況, 然後如果程式繼續不斷的遞迴跑下去, 很快記憶體就會使用完, 然後就會出現 PHP Fatal error:  Allowed memory size of .. 等的錯誤訊息.

可詳見: Bug #33595 recursive references leak memory

閱讀全文〈PHP5 物件相互引用, 造成 Memory Leak〉

Firefox 仿 MacOSX Leopard Theme(skin)

在 NightWish 的 Blog 看到這篇 仿Leopard firefox skin, 馬上就來裝裝看~ 果然是看到目前為止, 仿的最好的 theme, 推薦使用. 🙂

下載: VFoxFINDER2 Firefox Skin

安裝步驟:

  1. 下載頁左邊 Download 會下載 jar 檔
  2. 打開 Firefox -> 工具 -> 附加元件 -> 佈景主題
  3. 把下載的 jar 檔往 附加元件 的視窗 拖過去, 安裝 再 套用此佈景主題 即可. 

Subversion commit 取用 svn-commit.tmp

SVN commit 失敗時, 會留下一個 svn-commit.tmp 檔, 把之前打的 log message 留下來, 不過通常都是 svn update 後(合併完成), 馬上又要再 commit 一次, 但若是之前有打長長一篇的 log message 就不想再重打, cat svn-commit.tmp 再 pipe 進去覺得蠻遜的, 總覺得應該要有簡單的做法才對. 😛

閱讀全文〈Subversion commit 取用 svn-commit.tmp〉

PHP 等比例縮圖程式

兩個 function, 一個算比例要多少(getResizePercent), 另一個 function 依照比例將圖片縮小, 縮到剛好符合預計縮小的其中一邊的尺寸(ImageResize).

使用上只要將這兩個 function  一起放進程式裡面, 直接呼叫 ImageResize(), 把參數傳進去即可.

閱讀全文〈PHP 等比例縮圖程式〉

Linux 大量修改檔名的工具 - rename

想要大量修改檔名, 而且想用 regex 的方法修改, 不用自己寫程式了 XD

意外發現到 rename 這隻好用的 perl script(Debian/Ubuntu 內建就有裝), 可以用 regex 的方式大量修改檔名, 操作方法如下:

  • rename 's/\.bak$//' *.bak
  • rename -n 's/\.bak$//' *.bak # 測試看結果,不執行
  • rename 's/(\d)_-_/0\1-/' *.mp3 # 使用變數
  • rename 's/(\d)_-_/0$1-/' *.mp3 # 使用變數

中間 ' ' 包起來的就是 regex 語法, 然後是對 *.bak 的檔案做改名的動作, 詳細可見 man rename.

PHP臭蟲月(Security)

關於 Etefan Esser 不滿 PHP Bug 修復速度太慢, 於是於 2007/3/1 開始, 連續一個月, 打算一天貼出一個以上的 Bug, 到今天已經貼出 18 個了. 詳可見: the Month of PHP Bugs

他也不是只丟出來就算了, 同時還是有修復的計劃, 詳可見: Hardened-PHP Project Homepage

Debian 上有將此包成 php extension, 安裝方法如下:

  • PHP4: apt-get install php4-suhosin
  • PHP5: apt-get install php5-suhosin

關於 suhosin 的描述是advanced protection module, 要不要裝就看自己決定囉, 裝完後, 若有 apache 的記得 restart apache.

閱讀全文〈PHP臭蟲月(Security)〉

透過 PuTTY 的 Tunnels 當 Broswer Proxy(Security)

在外面使用無線網路(wireless/wifi), 突然想到 gslin 長輩有寫一篇用 PuTTY 的 tunnel 安全地瀏覽網頁, 在搜尋的時後, 沒想到我也有寫過一篇SSH Tunnel, 但還是長輩那篇寫的比較清楚, 而且還有圖片教學, 簡單記錄一下設法.

閱讀全文〈透過 PuTTY 的 Tunnels 當 Broswer Proxy(Security)〉