Trackback SPAM 是很討厭的東西;它不像 comment SPAM 可以用 captcha 或帳號/密碼來擋。Trackback 都是由 blog 軟體系統發出來的資料,所以要擋可以,必須考慮到這中間缺乏使用者的互動,否則就會連正常的 trackback 也擋掉。

感謝 Mark許多指教,讓我知道處理 trackback SPAM 常用的幾種方法:

  1. 不良的行為。
  2. DNSBL.
  3. 內容驗證。

我處理 trackback SPAM 的經驗還不夠,無法歸納出 trackback 中的「不良的行為」。因此,我往 2, 3 兩種方法裡面去進行。DNSBL 是許多郵件主機 (或客戶端程式) 用來判別的方式,不過不知道是不是我的處理方式有問題,所有進我這邊的 trackback SPAM 來源都不在這些 DNSBL 裡面。

DNSBL 無法擋掉進來的 trackback SPAM,所以就得實作內容驗證的程式了。幸好,這對 Python 來說是小菜一碟,利用 urllib2,不到二十行就解決了。內容驗證的要訣,根據 Mark 提供的原則,是去 trackback 來源的 URL 把 HTML 內容抓回來,在其中搜尋是否有我這個 blog entry 的 URL。這個原則很合理。一般會 trackback 我的人,在 blog 的內容裡面多半都會提到我的 entry (不然他為什麼要 trackback 呢),也通常會附上 entry URL。

目前內容驗證是這裡 anti-trackback-spam 的主力。為了要通過此處的 trackback 內容驗證,希望對此處 entry 進行 trackback 的朋友們,必須在寫完你的 blog,儲存好可以給別人看之後,再進行 trackback 動作。否則,trackback 內容驗證程式抓不到你的 blog 內容,自然會把你的 trackback 當成 SPAM 囉。

Posted by yungyuc at 17:09, 0 comment, 0 trackback.

WordPress CLI Theme 好酷,網站一進去就是 Command Line Interface 了。

好想要喔。

Posted by yungyuc at 20:54, 0 comment, 0 trackback.

對,我開始改這裡的程式了。所以紀錄一下編網頁的時候會用到的 autocmd:

au BufRead *.py set ai et nu sw=4 ts=4 tw=79
au BufRead *.html set ai et nu ts=4 sw=4
au BufRead *.htm set ai et nu ts=4 sw=4
au BufRead *.css set ai et nu ts=4 sw=4

再補一個 reStructuredText 的:

au BufRead *.rst set ai et nu ts=2 sw=2
Posted by yungyuc at 18:11, 0 comment, 0 trackback.
把 Python 分類到 dynamic language,看起來就比 scripting language 專業!

thegiive 真的很知道玩 dynamic language (這個名詞聽起來就比 scripting language 厲害多了吧) programming 的人對什麼會感冒:

光是「絕對不是 JavaScript 那種 SCRIPT 語言可以比較的!」這句話,就會被 PHP / Perl / Python 社群罵死,根本不用 Ruby 來補這一刀。

所以我就忍不住也想要來淌一下混水了 (雖然不想罵死誰) ... 很久很久很久沒這樣幹了呀 :D 從奇怪的角度來看,對我個人來講,這也算是個紀念 :p

» continue reading
Posted by yungyuc at 21:39, 8 comments, 1 trackbacks.

寫網頁程式時,要輸出到網頁上的資料常常會帶有 HTML 標籤,譬如 <html>blahblah</html>,或者資料內容「像」HTML 標籤,例如 <亂講>一通</亂講>。在 Django template 中,提供了一個 filter 來把字串裡的 HTML 標籤相關字碼轉成 HTML entity。這個 filter 就是 escape。相關說明見 Django 文件

用法很簡單:

<span class="message">{{ message.message|escape }}</span>

如果我們沒有在 message.message 後面加上 escape filter,那麼萬一 message.message 這個字串裡放了 <> 一類的字元,就會弄亂 HTML 排版。更有甚者,會造成 XSS vulnerability。

escape 是 Django template 處理字串資料輸出到網頁上簡單、好用而必要的 filter。我們會常常用到它。

Posted by yungyuc at 22:48, 0 comment, 0 trackback.

Thinker 在從 Dynamic 、 script 到 Python 中的

「 KISS; Keep It Simple and Stupid 」,何必將事情搞的很複雜,簡單點不是很好嗎?Template 只需要很簡單的資料置入的功能,何必弄來「能上天下海」的神力。

一言,深獲我心。Django template 強迫移除複雜程式邏輯的作法招致了許多反對的意見,但直到現在,Django 也沒有要改變的意思。ASP, PHP, CFM, PSP 這麼多種 server page,無論一開始多容易撰寫,後續的維護實在是令人頭痛;如果 template language 允許了多一點的可程式化邏輯語法,未來很容易就走進可怕的表現/邏輯混雜的混亂地獄。

那種程式碼很難看,要叫人看那種程式碼得付不少錢才成。

Python 字典是強大無比的概念。撰寫 Python 程式本質上就是建立字典、在字典裡查表的循環。呼叫函式用到字典、存取變數用到字典,最後,整理資料也是字典最好用。初學 Python 的時候只懂得把字典當作字串資料庫來使用,及至經驗累積多了,便慢慢把許多東西都放進字典裡去。一開始是變數,接下來是物件,後來連類別和模組都塞進了字典。偉哉。

合適地組合各種簡單的概念,便能構築強大的系統。

Posted by yungyuc at 15:32, 1 comments, 0 trackback.

Django 創造者之一的 Simon Willison 的 weblog 搬家了新家在 simonwillison.net,powered by Django。

新網頁下方的過往 weblog 項目分年列表真好看,有時間我也要來弄成那樣。

http://static.zooomr.com/images/534604_6a6e24605c_m.jpg
Posted by yungyuc at 10:10, 0 comment, 0 trackback.

本站不知道會新生幾次哦 (笑)。

總之,本小站從獨角戲成長為 multi-blog 了。從下班回家一直作到現在,總算把這個新生 Everyday Work 改到可以上線使用。我在前台加了 pagination,後台也加了些選項。接下來就慢慢寫、慢慢調、慢慢把新系統改成比較理想的樣子吧。

在轉換資料庫的時候才發現,我保留最多的資料不是 blog,而是 referer。為了要轉 referer 搞了幾十分鐘,最後我終於放棄。看來儲存 referer 紀錄的方式大概不太好,或是這種東西本來就是數大量肥,無論如何現在想把舊系統的 referer 轉過來太花時間,不切實際。重頭算起方便點。

而且 referer 本來就是站主看爽的而已;以後把它藏起來好了 :)

Posted by yungyuc at 22:15, 0 comment, 0 trackback.

程式語言人氣排名,還有分 A, B 級以及不入流 (笑)。這個有意思。Ruby 真的是大受矚目的程式語言,而 thegiive 的預估也神準無比,這個月 Ruby 確實打敗 PL/SQL,受歡迎度上漲到了 1.717%。

Fortran 在哪裡?2006 Nov. 時的受歡迎度是 0.392%,果然是個老掉牙的東西呀。Python 是 3.641%,還輸駱駝文 2.587%。

Posted by yungyuc at 19:23, 0 comment, 0 trackback.

不知道哪來的印象,可能是 Django mailing list 吧,說 Pro Django: Web Development Done Right 十月要出版。不過 Apress 網頁上還是高高掛著 NOT PUBLISHED。

即讀之則譯之。以下是這本由 Django 原創者之一的 Holovaty 與現任開發者 Kaplan-Moss 合著,Django 首部印行書籍之介紹的中譯:

Django,這個 Python 界中對等於 Ruby on Rails 的網頁開發框架,現在是網頁開發領域中最熱門的題目之一。在專論 Django:網頁開發的正道一書中,Django 創造者之一的 Adrian Holovaty 與 Django 首席開發者 Jacob Kaplan-Moss 將告訴你,他們是如何用這套框架創造出榮獲獎項肯定的網站。他們用三個部分的內容,帶你了解 chicagocrime.org 網站的建立。

本書的第一個部分介紹 Django 的基礎,例如安裝與組態,能讓你建立 Django 網站所需的元件。第二個部分深入 Django 較細緻的功能,像是非 HTML 內容 (例如 RSS 饋送與 PDF),以及快取與使用者管理。第三個部分會詳細說明 Django 許多的組態選項與指令,供讀者參考。另外,本書還包含了 7 個附錄,方便讀者查找組態選項與指令。本書對高人氣的 Django 框架,提供了極致的導覽與參考資訊。

我不知道這本書會不會有中文版喔,專論 Django:網頁開發的正道是我擅自翻的名字。不過,如果有出版社有意代理這本書,我倒是很有興趣接這份工作;請與我連絡。

Update: 我大概想起來是從哪看來 10 月這個時間了,或許是 Amazon 吧。不過現在再去看,預計出版日期改成 Mar 27, 2007 了。還有半年呀,是準備和 Django 1.0 畢其功於一役嗎。

Posted by yungyuc at 19:46, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1 2
© hover year to navigate month: powered by django