0%

再次從 HOSON 團隊拿到了一個測試手把。

不同的是這次手柄是木質的 !

E-M5 的主人們不用再羡慕只有 E-P5 有限量版的木質手柄了 :P

借用一下 E-P5 木質手柄的圖

因為選用的木頭不同所以顏色是不一樣的,E-P5 是加拿大楓木,而版友所選的是質地經過測試很堅固的柚木。

設計團隊測試了柚木跟槐木,發現槐木還是軟了一點,他們更看過紫檀木,不過後來因為成本過高就作罷了。

註: 柚木在 wiki 裡面記載 「機械性質極強、乾燥性良好,收縮率小、木質強韌、耐久性高、對菌類及蟲害抵抗力強 … 木理通直、質地堅硬、細緻,材面含油脂之觸感,乾燥性良好,耐久性高,為所有木材中膨脹收縮最少者一,尺寸安定性佳。材面木紋美觀優雅、且加工容易、為世界上高級木材之一。」

閱讀全文 »

前幾天幫部門把原本提供 HTTPS 的 squid 換成 nginx,結果馬上被反應 Mac 上面的 Agent 不能連線但是又不知道為什麼,因為其他的瀏覽器 Chrome Firefox 不管作業系統 Windows Linux Mac 上的都可以連真的很弔詭,麻煩同事用跟 Agent 一樣的 Framework 重寫一個簡單的版本也不行,測了很久也找不太到癥結點,後來靈機一動,何不試看看 Safari … 結果果然不出所料… Unable to establish a secure connection XDDD 搞什麼連 Safari 也連不了,這樣子要 Debug 我就可以自己來了,不然要一直麻煩同事跟我對測不好意思,一開始先用 tcpdump 發現 Server 送 Certificate 給 Client 之後 Client 就自己斷掉 connection ?! WTF 這太沒有頭緒了吧,後來上網搜尋 ssl connection fail safari,結果一路看看看就看到了這個 HTTPS requests fail on sites which immediately close the connection if TLS 1.1 negotiation is attempted, on Ubuntu 12.04,起因是 OpenSSL 1.0.1 的一個 Bug,版上建議降成 OpenSSL 1.0.0 就可以了,因為我要啟用 nginx 的 spdy 所以一定要用 OpenSSL 1.0.1 才可以,不過秉持實驗的精神只好先解除這個功能,於是我就編譯了 nginx with openssl 1.0.0k,然後結果…靠背還是一樣 Safri 不能連其他都可以!不信邪改用 0.9.8y,結果在一模一樣的設定下這個 Safari 就可以連了 = = (這哪招),總之越來越神秘,只好先回到 nginx with openssl 1.0.1e,(就是死命要 spdy 就對了 XD),後來在沒什麼想法的情況下只好打開 nginx 的 debug mode error_log xxxxx debug;,瞧瞧裡面有什麼。

結果就看到

1
2
3
4
5
6
SSL handshake handler: 0
[debug] 7585#0: *1 SSL_do_handshake: 0
[debug] 7585#0: *1 SSL_get_error: 5
[info] 7585#0: *1 peer closed connection in SSL handshake while SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
[debug] 7585#0: *1 close http connection: 14
[debug] 7585#0: *1 SSL_shutdown: 1
閱讀全文 »

要幫 nginx 增加安全性的話,大概首推 modsecurity 這個模組了,不過目前他只有支援 nginx 1.2 穩定版,尚未支援 1.3 開發版,基本上具有下列功能

  1. 超過 16000 規則防範下列攻擊
    • SQL injection
    • Cross-site Scripting (XSS)
    • Local File Include
    • Remote File Include
  2. 可客製化規則,保護下列的應用
    • WordPress
    • cPanel
    • osCommerce
    • Joomla
  3. 包含了 OWASP Core Rule Set
  4. IP 聲望偵測
  5. Malware Detection

不過有一些在更簡單的功能,像是有時候會自己想擋一些 bot,或者要判斷合法的 referrer 才給過之類的就不在這個之內了,這時候我們可以利用 map 來幫我們做簡單的過濾。

閱讀全文 »

E-M5 的手感雖然有做出手把的弧形但是因為實在是太淺了,所以還是稍微差了一點,像我是手小的都覺得 E-M5 不好握的話,手大的應該就更難了,原廠賣的手把是跟電池底座一起賣的要九張小朋友多一點的價格,真的是見鬼了,而且不喜歡加個電池底座多一個累贅,不過現在救星來了! HOSON 團隊帶來了一個鋁鎂合金手把 MA-1

沒錯!他叫做阿魯把,是把不是八,剛看到時覺得挺妙的,作者補充說是阿嚕咪(aluminum)的手把啦~ 而且設計製造都是在台灣,純正的 MIT!

閱讀全文 »

三年前原本買了 GF2 + LUMIX G 14mm F2.5 ASPH 要給我妹,結果他竟然嫌棄說 14mm 沒辦法變焦… 0rz… 這實在是,結果後來還是買了一般的小 DC 給她 = =+,然後去年入手了 LEICA DG SUMMILUX 25mm F1.4 ASPH

大光圈的加持真的不是蓋的等效 50mm 也相當的好取景,但是最近對焦距離 30cm 真的稍遠不過他本來就被定位在人像鏡所以其實還好,整體來說還是超級棒的一顆鏡頭,只是去參觀室內的展覽(像是小叮噹誕生前百年特展)難免又被我妹嫌棄說為什麼拍照都要站這麼遠 XDDD,以下是 GF2 搭 25mm 拍出來的照片。

閱讀全文 »

這篇是記錄一些 lighttpd 轉 nginx rewrite rule 的實作與一些注意事項,最後會講一些 squid 轉 nginx 的技巧。

這裡先講一些跟 nginx rewrite 有關的重點。

首先 nginx 算是分成 locationrewrite,lighttpd 是有 url.rewriteurl.rewrite-repeaturl.redirect,其中 lighttpd 的 url.rewrite 就是 rewrite once 而 url.rewrite-repeat 則是重複一直 rewrite 的意思,這個則對應到 nginx rewrite 後面接的參數,也就是 breaklastbreak 就是 rewrite 到此為止不要再跑 rewrite 了,但是 last 就會在重頭跑 rewrite 一次,而且 last 也是 rewrite 這個 directive 的預設值,所以如果你的 rewrite 不小心變成 loop (nginx 預設是 rewrite 10 次後就噴 500)請加上 break。至於 lighttpd 的 url.redirect 其實在 nginx 也是透過 rewrite 完成的,主要是加 redirectpermanent 的參數,分別是回 302 跟 301。rewrite 的用法大約如下:

閱讀全文 »

cgroups 是 Linux 的一個特色,全名是 control groups,最簡單的概念就是控制資源的分配包含了隔離、記錄的功能,最早是由 Google 的工程師開發的,並且在 2.6.24 正式進了 Kernel,後來也陸續加了不少功能,而且在 3.3 之後又加了網路優先權(priority)功能。後來的 LXC (LinuX Containers) 就是用了 cgroups 的功能來的。

由於是從 Kernel 控制的所以幾乎什麼都可以管理,舉凡 blkio (管理輸入輸出的 block device ,像是硬碟、USB)、cpu (設定忙碌時能使用的 CPU time)、cpuacct (做統計用的)、cpuset (設定由那顆 CPU 執行運算)、device (限制能使用的設備)、memory (限制記憶體用量)、net_cls (似乎跟網路有關),管理的範圍是以 Group 為主,所謂的 Group 可以是同一個使用者、同一個群組、同樣的 Process。

最簡單使用 cgroups 的方式就是裝 libcgroup 來管理

閱讀全文 »

memcachedb 用的是 BerkeleyDB 每 10M 會輸出一次 log file,所以久而久之你的資料夾會充滿一堆 log.xxxxxxxxxx x 是數字,依序編列,在正常的 Production 環境大概不出三天就會比原本的 DB 還多了一倍的大小,如果沒有要還原的需求的話是不需要這些 log 的,清除的方法有兩個,一個是手動刪,一個是透過 memcachedb 清。

手動刪的話基本上就是用 find 就可以了,find /home/memcachedb_data/ -iname 'log*' | awk '{if (NR > 50) print}' | xargs -i -t rm -f {},如果是要透過 memecachedb 清則可以透過 telnet 或 netcat,指令是 db_archive。不過如果每次都要手動下未免也太累了,所以我們可以放在 crontab 裡自動化,要放在 crontab 裡面一定要搭配 netcat ,因爲 telnet 不支援檔案重導符號 < ,只要隨便開一個檔案填入下列內容

db_archive
quit

然後在 crontab 裏面增加 0 * * * * /usr/bin/netcat localhost 5566 < /root/cmd/memcachedb_rotate_logs 即可每小時自動清一次,其中 5566 就是 memcachedb 開的 port。

在我們使用 squid 的環境裡,常常遇到一個瓶頸,就是面對高 I/O 的環境底下,整個系統的效能表現會變的特別差,如果看系統的 CPU 線圖會如下(下圖爲 cacti 畫的日圖):

閱讀全文 »

每年九月一到就是年度的健康檢查,大概大家都是一片哀嚎 XD 不過其實也還好似乎年紀越大紅字越多好像是正常的,其實每年也沒什麼要注意的,我都只注意 GOT, GPT 而已,其他的向來都不會紅字,不過不幸的今年健康檢查竟然紅字出現在一個不可思議的地方…糞便潛血反應,當下的表情已經不是「囧」可以表現的了。既來之則安之,當下想的就是乖乖照大腸鏡,準備被「月工」吧 = =

閱讀全文 »