取消 WordPress 的符號自動替換功能

使用 WordPress 以來,總是很討厭它把一些符號自動替換掉,例如會把 換成 html entities 。

在網路上找到一些方法,大多都是修改 wp-includes/formatting.php 來處理文字替換 (大概在 5x 行的地方)

但我總覺得這樣不太好,因為這種改法每升級一次就得改一次,實在是太蠢了。

後來我找到比較正確的解法:編輯佈景主題裡面的 functions.php 並加入以下程式碼:

總算解決了符號自動替換的問題。

HTTP Response Headers 的 X-Frame-Options

現在新的瀏覽器都支援解讀 HTTP Response Header: X-Frame-Options 這個條件,因此我在自己的伺服器上面加了這個選項,主要是我的網站不想被人家用 frameset 或是 iframe 包起來。

There are two possible values for X-Frame-Options:

DENY
The page cannot be displayed in a frame, regardless of the site attempting to do so.

SAMEORIGIN
The page can only be displayed in a frame on the same origin as the page itself.

ref: The X-Frame-Options response header

如果是 Apache2 的話很簡單,不用改程式,可以直接用 Module 做掉:

1. 在 Apache2 啟動時一併載入 mod_headers.so (如果是 debian 可以用 sudo a2enmod headers 來啟用)

2. 自己新增一個 conf 檔,裡面寫上

Header always append X-Frame-Options SAMEORIGIN

至於選項要是 SAMEORIGIN 還是 DENY 就看需求而定,之後重起 Apache2 就完成了。

eat your own dog food – 吉列控油礦物潔面乳試用包的爛包裝

在國外有句諺語,叫做 eat your own dog food ,直接翻譯就是「吃自己的狗糧」,這句話本身想要表達的意思是「如果公司打算讓顧客買自己的產品,那至少公司自己也要願意使用這些產品」。

這句諺語今天得到了很好的實例驗證:
Continue reading “eat your own dog food – 吉列控油礦物潔面乳試用包的爛包裝”

ufw 防火牆規則的順序問題

今天晚上感覺機器突然變慢了,查了一下 access.log 發現有個從大陸四川來的 ip (125.66.125.201) 狂戳我的機器存取一個八百年前就刪掉的檔案。

所以我下了 ufw reject from 125.66.125.201 ,然後重新載入 ufw ,不過 HTTP 的 request 還是一直灌進來…

我只好再下 ufw status 把規則都打開來檢查我剛剛下的 rule 有沒有新增進去,結果發現

Status: active

To                         Action      From
--                         ------      ----
.............
80/tcp                     ALLOW       Anywhere
Anywhere                   REJECT      125.66.125.201

原來是允許 TCP 80 的那條 rule 優先於阻擋的惡意 ip 的 rule ,所以手動調整一下順序,把阻擋惡意 ip 的 rule 放到第一位:

sudo ufw insert 1 reject from 125.66.125.201

收工…

備註:有兩種阻擋方式,分別是 reject 和 deny ,reject 就是直接忽略所有封包,至於 deny 則是會通知送出封包的人:「他的封包被拒絕了」,基本上直接 reject 就好了。

update: Sometimes it is desirable to let the sender know when traffic is being denied, rather than simply ignoring it. In these cases, use reject instead of deny. from ufw man page

這邊我之前寫錯了,剛剛重新翻一下文件,應該是 reject 會讓發送者知道被拒絕,而 deny 則是直接 drop 封包。在行為上: reject 會讓 client 直接得到 “Connection refused” ,而 deny 則是會讓程式一直等到 timeout 。

感謝大神開示 (詳見本文 comment #1)

Simplism 電容式觸控筆使用心得以及改造

前陣子我買了一支電容式觸控筆來寫字,但買回來之後我才發現有一些問題:首先是電容式觸控筆在 iPad 螢幕上面的接觸面積必須大於 6mm 才會有感應,接著橡皮頭的觸控筆會有接觸不良的問題(灰塵或是橡皮頭壞了),另外觸控筆本身的滑順程度也是個很重要的指標,一旦不滑順了,寫字效率就會降低許多。

我先前以為市面上橡皮頭的電容式觸控筆都是一樣的,但在做了功課之後才發現我錯了…就算橡皮頭長得一樣,寫起來也是天差地遠。 (詳見 觸控筆採購指南 )
Continue reading “Simplism 電容式觸控筆使用心得以及改造”