網絡技術日誌

關於 PHP, Linux, Open Source 及個人生活記載的網誌。

Entries for the ‘工作日誌’ Category

新年可以休息一星期

經過今天的工作後,下星期會休息,總算可以放鬆一下。 我很喜歡農曆新年,可以和一些平日很少見的親戚朋友聚一聚,而且過年的一個禮拜真正可以休息的時間,可以做一些平日很想做而沒有時間的事情。

Leave a Comment

程式從 setuid 轉用 sudo

今天是星期日,原本想好好休息一下,但下午回家後又不其然地開始工作。首先是將一些原本用 C 及 Perl 寫成的系統管理工具修改,理由是這些程式是用 setuid 來執行一些系統工作,例如 restart server,但這實在存有安全性的問題。現在改為使用 sudo 來實現,而 sudo 就是一個讓某些使用者以其他用戶身份 (包括 root) 執行特定指令的程式,如果有用 Ubuntu 的朋友應該不會陌生。 我只將原本的 C 及 Perl 修改,而實際上 sudo 也可以該 PHP 或其他 scripting language 執行一些系統管理工作。 然後傾好替一個網站做 maintain 的工作,但那個網站是用 JSP 寫成,還好只是 maintain,因為我的 JSP 語法已經忘記得七七八八,至於為何星期日也接到 job,因為那位合作伙伴與我一樣星期日也工作。

Comments (1)

沒有註解的程式碼

近日有一項工作是優化程式的執行速度,照慣例我要先看看程式碼才報價。開啟程式碼一看,雖然程式的縮排做得很好,但竟然完全沒有 comment。 當然面對這類程式,要維護實在要花點時間看程式碼,所以在寫程式時不管什麼理由,也該花點時間寫註解,這不單是為了往後接手的程式員著想,也是為了自己著想。試想想如果過了一兩年後要進行維護,我想連自己寫的是什麼也會忘記。還好這個程式有做縮排及命名變數及函數沒有馬虎,不然我想我不會接這個 job。 進度方面,現在已找到問題根源,但因為要更改 mysql 資料表結構,可能還要一兩天才做好優化及測試。

Leave a Comment

忙得透不過氣來

踏入 2007 年後真是十分忙,手上要完成的工作有很多,所以幾天也沒有貼文。 近來大致上是在做兩個 programming 的工作,以及 servers 方面的一些維護。上星期發現車子有起步打冷震,拿去車房換了機油及波箱油(變速箱油),以及車內的 Hi-Fi 收音機壞了一段時間,順便換了一個新機頭。 很時工作好像同一時間到來,但現在我也盡量在晚間不工作,以及星期天休息,始終人生除了工作及賺錢外,還有很多其他事情值得花時間的。

Leave a Comment

與基金有關的 Project

剛接到一單 project,是從 Morningstar 讀取客戶訂取的基金資料 XML 檔,然後做一個搜索介面,搜索基金及顯示基金詳細內容,最後做出基金的 PDF 檔給用戶下載。 現在 Morningstar 提供了十個 XML 樣式檔案給我做測試,正式推出後才會加入其他基金。我只需做 programming 的部份,預計不會用太多時間。我經常也到 Morningstar 瀏覽,只是第一次做有關基金的程式工作。

Comments (1)

連線今天已好轉

今天可以連上 OnlineNIC 登入,替客戶註冊及 renew domain,還收到經 2Checkout 的付款,只可惜大部份外國網頁不靠 proxy 還是看不到。 這幾天我沒有打過電話去 PCCW,大家都知發生什麼事,何須打去搵人出氣呢? 客戶是有權查詢修復進度,但我相信 PCCW 已經盡了最大努力,如果是平日經常斷線,我會十分不滿,但這次受無可預計的天災影響,那麼忍耐一下也不為過。

Leave a Comment

電訊癱瘓對我工作的影響

今天晨早開始工作,因為現在還未解決未能連到海外網站的問題,影響也是十分之大。 影響最大的是 domain name 的部份,香港域名未受到影響,但國際域名影響就大了,因為現在不能讓客戶在網站上查詢 domain 是否可以註冊,而且也不能登入 OnlineNIC 註冊及 renew domain。可能有些客戶在這幾天才繳費,而域名剛好在這幾天到期,可能會被 lock。還好一般上域名過期不到過一個月,重新 renew 也沒什麼因難。 現在有點身在互聯網孤島的感覺,內部完全沒有問題,但就「與世隔絕」。

Leave a Comment

解決 PHP Spam 問題

如果主機上寄存了一個以上網站,網站執行 PHP 一律會用 nobody 或 apache 身份,那麼當有人用 PHP 發送 Spam 的話,要找出是那一個網站很麻煩。 而且很多時不是網站持有人發送,而是 PHP 程式本身設計有問題,讓 spammers 可以利用一般的 form to mail 程式發送,在 Preventing spam when using PHP’s mail function 有詳細說明。 今天寫了一個 perl script,取名為 /usr/sbin/sendmail,並將原本的 /usr/sbin/sendmail 移到別處。當有人用 PHP 發送郵件時便可以用那個 perl script 記錄是那一個目錄,並寫入記錄檔。總算解決了一直困擾著自己的問題,下次遇到同樣問題就輕鬆得多了。

Comments (2)

MySQL 或 PostgreSQL 轉移到 DB2 Express-C

在 IBM Developer 看到這篇文章,值得收藏一下,有需要時可以用得上。 文章內不只是講述轉移的做法,還介紹了 MySQL, PostgreSQL 及 DB2 背後的運作模式 及 Storage engine 等內容,即使不需要移換 DBMS,但對於要管理 DBMS 的朋友也值得一看: Migrate from MySQL or PostgreSQL to DB2 Express-C

Leave a Comment

Qmail 使用 RBL 過濾垃圾郵件

有些機構提供 RBL (Remote Black Lists) 供 Email Server 阻檔垃圾電郵,這些 RBL 的好處是不用在本機加入大量 spam rules,而且免除更新的程序。在 QMail Scanner 配合 RBL 使用後,系統發現郵件符合 RBL 規則,那便不會接收該郵件,並把紀錄寫入 /var/log/qmail/smtpd/current 內。 以下是在 QMail Scanner 加入支援 RBL 的方法: 1. 開啟 /var/qmail/supervise/qmail-smtpd/run 檔案 2. 有一行是類似 "/var/qmail/bin/qmail-smtpd ",在這一行前面加上以下內容: rblsmtpd -r sbl.spamhaus.org -r bl.spamcop.net 3. 執行 qmailctl restart 重新啟動 Qmail。 4. 現在已經完成了,執行 qmailctl stat 查看沒有異樣便完成了。

Leave a Comment

我的工作環境

上星期買了一張新書枱及轉椅,書枱覺得很好用,因為以前的很細,現在的有四呎多。至於轉椅,我自己把一對扶手拆掉,因當鍵盤伸出來時會丁住扶手。 我的數碼相機前陣子壞了,還未找到合適的型號,只有用手機拍,所以拍得不太好。 這是日常工作的電腦。 而旁邊擺放著打印機、FAX 機及作 testing 的 server。

Leave a Comment

如何請 Google 不儲存快取

在 Google 的搜尋頁面裡面,每個網頁也有一個 "庫存網頁",這是 Google 把該頁面內容儲存下來的快取。如果想網頁繼續保留在搜尋結果,而不想 Google 快取你的網頁,根據 Google’s FAQ for webmasters 的講法,只要在網頁加上以下 META Tag,Google 便不會對網頁儲存快取: <META NAME="ROBOTS" CONTENT="NOARCHIVE">

Leave a Comment

手機監察伺服器運作

現在我的伺服器數量慢慢增加,管理上也跟以往有了改變,很多時就是為了監察伺服器的運作,家中的電腦幾乎是長開。昨天寫了一個小程式,可以產生簡單的伺服器資訊,用手機便可隨時隨地監察所有伺服器的運作。 以前有想過用 PPC 做流通上網,但 PPC 的體積比電話大得多,當沒有拿公事包外出的話,攜帶上很麻煩,因為我習慣將手機放在褲袋 (真擔心手機會爆炸)。所以到目前為止,對我來說流動上網還是用手機較方便。

Comments (2)

"Argument list too long" 問題

昨天升級 Email Server 的 SquirrelMail,當我將舊版本 SquirrelMail 下面的 data 目錄資料複製到新版本時,出現了 "Argument list too long",然後找了找,發現原來在 Linux 下用 cp, mv, rm 這些指令時,如果輸入的檔案數目太多會出現 "Argument list too long" 錯誤。 因為在 Linux Kernel 內對 command-line arguments 限製了記億體的使用,就例如在一個目錄下有很多檔案,如果用 "cp * /home/user/",那便會出現這個問題,以下列出兩個解決辦法: 1. 分開多個指令執行: 可以將檔案分成幾個指令執行,例如: cp [0-9]* /path/to/ cp [a-l]* /path/to/ cp [m-z]* /path/to/ 2. 使用 find 指令: 另一個方法是用 find 指令,可以一句便完成: find /file_from/* [...]

Comments (2)

用 mod_rewrite 防止偷圖

以前我有一位客戶,他的網站流量十分大,經過檢查後發覺大部份的流量都用在圖片上,這也無可厚非,他的圖片解像度比較高,但另一個原因是有人在其他論壇貼上他的圖片,而貼圖的方法是直接使用他的圖片連結。我問過他的意見,他不介面別人貼出他的圖片,直接下載圖片再重新上載的話沒有問題,因為每張圖片也有出現他的網站名稱,只是不想人家浪費了他的流量。 然後我覺得用 mod_rewrite 是較方便的做法,而如果你的網站也支援 mod_rewrite 功能,在 .htaccess 加上以下內容,也可防止給別人偷圖: RewriteEngine On RewriteCond %{HTTP_REFERER} ^http://www.anotherwebsite.com/.*$ [NC] RewriteRule ^/img/indieband.jpg$ http://www.mydomain.com/nkotb.jpg [R] 以上的第一行是開放 RewriteEngine,如果你的 .htaccess 已經有這一行就不用加上;第二行是其他網站的網址;第三行是將 /img/indieband.jpg 導向 /nkotb.jpg,而這個 /nkotb.jpg 可以是說明圖片出處的圖片。

Leave a Comment