E-M5 12mm 25mm

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

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

繼續閱讀

分享到 評論

nginx 設定檔規則概要

這篇是記錄一些 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 的用法大約如下:

繼續閱讀

分享到 評論

Linux cgroups

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 log 檔

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。

分享到 評論

高寫入系統 Linux 效能調教

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

繼續閱讀

分享到 評論

大腸鏡檢查 - 輝雄診所

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

繼續閱讀

分享到 評論

popclip upgrading to Mountain Lion

最近把 MacBook Pro 從 OS X 10.7 (aka. Lion) 升級成 OS X 10.8 (aka. Mountain Lion) 之後,大部分的軟體都還蠻無痛升級的,其中 PopClip 在升級之後就開始秀逗秀逗,在 Safari 裡面有時 Work 有時不 Work (就是不太靈敏-偶爾會出現彈出選項,偶爾又沒有),官方有一個解決方法是把原本的設定刪除掉讓她重新產生即可。步驟如下

繼續閱讀

分享到 評論

nginx cache - last step of optimization

最近在把敝單位的 Web Server 從原本的 lighttpd 轉換成 nginx,當然除了複雜的 rewrite rule 要寫,還有就是想盡量榨出 nginx 的效能及所有功能,而 nginx 除了很多參數可以調整之外當然也有更多內建的功能有點類似現在的 All-in-One 小巧但是功能完整!

調整了很多參數之後,說實在的也不知道有什麼可以調整了,查一查網路發現:對呀! nginx 有 cache 的模組可以用阿,因為這次轉換的機器有 php 的部分,而且大部分是出圖跟利用 php 來做 javascript 模組的合併(就是所謂的 combo loader),這些幾乎都是做一次就不會在更改結果的,所以就查了一下 nginx 的 fastcgi cache 的設定:

http 的 section 加入

fastcgi_cache_path /dev/shm/cache/ levels=1:1 keys_zone=PHP:8m inactive=60m max_size=256m;

然後在 location ~ \.php$ 的 section 裡面加入

繼續閱讀

分享到 評論

squid nginx http1.1 gzip

在 nginx 中要啟用 gzip 非常簡單,只要在 http 的段落裡面加入

gzip  on;
gzip_http_version 1.0;
gzip_comp_level 9;
gzip_proxied any;
gzip_min_length 1400;
gzip_types text/css application/x-javascript text/javascript;
gzip_vary on;

但是加了之後,因為我們前端還有先過 squid,結果發現怎麼有的 css 檔就是沒有被 gzip,但是有些 js 檔卻又有,在網路查到原來是還要在 squid.conf 加入

cache_vary on
broken_vary_encoding allow all

這是因為啟用 gzip 後,HTTP Header 也會加入 Vary:Accept-Encoding,加了上面的設定才可以讓 squid 保存 gzip 的內容,不會很自作聰明的解壓縮在傳給 client 端,不過網路另有一說是因為 squid 不是完整的支援 HTTP1.1 的 protocol,所以在面對 gzip HTTP1.0 跟 HTTP1.1 的版本的時候就會有問題,不過我有在 nginx 加了 gzip_http_version 1.0 了還是一樣有問題,加了那兩行才 ok。

繼續閱讀

分享到 評論

ifconfig.me - the web ifconfig

前幾天公司同事在問我們的機器出去的 public ip 是多少,突然發現原來大家好像都不知道有一個方便的網站可以查,對於會 Unix 的來說網址是在好記不過了,就是跟 Unix 看 ip 的 ifconfig 同樣的名稱 http://ifconfig.me

ifconfig.me 可以取得你現在 ip 資訊的網站,不過他跟一般顯示 ip 的網站不同的是他功能比較強!

除了會顯示一些基本的資訊

他還支援了不同的網址只顯示需要的部分,比方說我們可以在 Terminal 打 curl ifconfig.me/ip 就會得到 61.219.37.20 ,又或者 curl ifconfig.me/port 就可以知道本地端出去的 port 51081,如果有經過 Proxy 的話 curl ifconfig.me/forwarded 還會顯示 61.219.66.125, 172.30.4.166, 61.219.37.20

甚至更有趣的是他也支援 XML / json ,網址分別是 http://ifconfig.me/all.xmlhttp://ifconfig.me/all.json 詳細的內容可以看 [ifconfig.me](http://ifconfig.me %}

分享到 評論