2014/10/31

我的婚禮攝影

結婚也快半年了,一直想找時間分享關於婚禮攝影這件事情,但忙碌愉快的婚姻生活讓我拖稿許久,先聲明一下,這是我自己長期下來的感受,或許每個人有每個人的看法,大家還是可以選擇自己舒適的方式進行,結婚一生一次,在這個重要的時刻,還是要尊重聽取雙方的意見,快快樂樂地進行婚禮才對。

相機發達的現代,人手一台單眼的朋友應該不在少數,所以常常會看到托自己朋友幫忙拍攝婚禮的情況,我自己之前就常常被找,所以感受是最深的,來說說我的經驗談。

我想好好的參加

基本上,被找去幫朋友拍攝結婚過程當然開心,不過這也代表了你準備裡裡外外東奔西跑,全神貫注在攝影上面,其實這樣很累,也沒有辦法好好享受朋友重要的人生過程,時常得觀察現場狀況作出臨場反應,畢竟你不是拿這個當職業,很少人能夠每個場地拍超過三次,也就是說,可能每一次的拍攝對你來說都是「挑戰」,而這個挑戰,是你好哥們或好姊妹人生最重要的時刻,壓力可想而知。

我不能出包

我想很少有業餘的朋友身上會背兩台相機的,我自己就沒有,所以每一次的「挑戰」基本上都有一定的風險存在,相機要故障可以掛點的零件太多了,如果沒有萬全的準備,每一次的幫忙根本都是個賭注,求神拜佛我的機器不要出事,不然我該怎麼交代,專業的攝影師每次出機會準備兩台甚至三台的相機以備不時之需,這是一般人不可能做的事情。

我的東西真的行嗎

拍照這件事感覺好像都一樣,不就按下快門然後記錄當下嗎,其實不然,各種題材都有其精專的地方,你商攝拍的好人像不一定,人像拍的好風景不一定,風景拍得好的食物不一定,婚禮攝影尤其困難,因為你要面對的是人,人變化的排列組合根本是無窮大,有沒有經驗差很多,沒有拍出當下人與人的自然感情跟現場的氣氛,控光、構圖、顏色那些就不重要了,攝影眼是很難培養的,而通常被找的朋友可能只屬於男方或女方的朋友,假設是男方的朋友可能跟男方熟,所以一些親朋好友還可以做些微引導,女方那邊在不熟的狀態下你可能從頭到尾只會聽到「看這邊」,「一、二、三」,「在一張」,這三句話。

我的工具足以面對這一切嗎

攝影環境的光線其實很難掌控,尤其是遇到那種有各種投射燈的餐廳,控光、色偏都可能是一大麻煩,雖然單眼人人有,但你確保自己有足夠的設備(閃光燈、鏡頭)來應付這一切嗎?

基於以上幾點我長年下來的經驗,我自己的婚禮決定好好找一個專業的婚禮攝影,因為我想要我的好兄弟好朋友好好的 enjoy that moment,而且我希望他們全部都出現在照片裡面,被你找去當攝影師的好朋友,好兄弟,往往都消失在你的照片中,這點非常可惜,而且對我來說,我認為婚禮的照片可能是結婚過程第二重要的事情,僅次於婚紗照片。

我跟老婆網路上找了很久很久,一比再比,老婆基本上比較尊重我想法,而我個人偏好日式風格,照片輕鬆有韻味那種感覺,於是我們找上了自然捲

自然捲位於板橋,是幾個朋友自己出來創業的自助婚紗公司,少了大公司的束縛跟規範,他們可以盡情做自己想做的事情,跟我的主攝影師 Evan 聊天當中,我發現他視幫客人拍攝這件事情為一種玩樂的過程,一種開心的態度,當你真正喜歡自己的工作時,你是不會看輕他的,當你把新人當作同樂的朋友時,你是不會辜負他的,我們來看圖說故事吧。

專業的攝影師是會創造畫面的

專業的攝影師是很會利用所有空間的

專業攝影師會在對的時間做對的事情

專業攝影師不會錯過重要的時刻

所以如果可以的話,讓這一生中少數幾次你可能會願意花錢在照相,並且可以男的帥女的美的機會上,聘請個專業攝影師吧,我推薦自然捲,你會滿意的 :)

自然捲-攝影軽美学
22064 臺北市新北市板橋區實踐路93巷3號
週二 - 週日: 13:00 - 21:00
02 8961 2090 (採預約制)

2014/10/20

Xdebug Setting

軟體網址

WinCacheGrind

php.ini

[xdebug]
xdebug.remote_enable = off
xdebug.auto_trace = off
xdebug.auto_profile = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%u.%H_%R
xdebug.profiler_output_dir = "c:/wamp/xdebug_log"

參數帶上 XDEBUG_PROFILE 就可以產生檔案。

Request Many Ajax By Deferred Tip

jQuery Deferred 可以讓 user 達到同時使用許多 Ajax request 時,等待所有 request 完成後再執行功能的目的,大部分的範例都是這樣:

$.when($.ajax('xxx.php'), $.ajax('xxx.php'))
 .done(function() {
  cosnole.log('all done');
 });

程式會等到兩個 Ajax 都執行完畢後才觸發 console log,假設今天我們遇到的情況符合以下條件:

  1. 超過兩個以上的 ajax request
  2. 有一定的邏輯

我們不會希望有十個 request 就在裡面塞十次 code,可以利用一種寫法來達到這個目的

deferred.js

$(function() {
    load()
        .done(function() {
            console.log('all done');
        })

    function load() {
        var results = [];

        for (i = 1; i <= 3; i++) {
            result = $.get('ajax.php').done(function(i) {
                console.log(i + ' is done');
            });

            results.push(result);
        }

        return $.when.apply($, results);
    }
})

ajax.php

<?

sleep(2);
echo rand(1, 999);

js 的範例是指呼叫了 ajax.php 三次,當 array 完成時,回傳 $.when.apply 的結果,使用這個 function 會將所有完成的行為視為 deferred 物件傳回,所以 done 就會有所反應,當然也可以寫成這樣:

$(function() {
    var results = [];

    for (i = 1; i < 3; i++) {
        result = $.get('ajax.php').done(function(i) {
            console.log(i + ' is done');
        });

        results.push(result);
    }

    $.when.apply($, results).done(function() {
        console.log('all done');
    });
})

寫成 function 彈性比較大一點,得到的結果如下

923 is done
144 is done
all done 

2014/10/02

Git Export By Commit Range

git archive 指令可以將檔案匯出一份乾淨的程式碼,不會有任何的 repo 紀錄,我最常用的壓縮成 zip。

git archive --format zip --ouput "file.zip" master

如果想要及時解出一個乾淨的資料夾,可以使用 tar 的功能。

git archive master | tar -x -C /folderName

如果我們有更新檔案想要傳給客戶,但是每次都把整個資料夾 zip 過去對方要覆蓋的話也很麻煩,有一個方法可以指定範圍來壓縮或者是 tar 乾淨的目錄,假設今天要壓縮的範圍是 。

# 首先使用 git log 指令來查出你要更動的範圍
git log --name-only

# 找到了這次變動需要匯出的檔案,範圍是 78428a 到 c8cd230 指令為
git archive --format zip --ouput "file.zip" 78428a $(git diff --name-only 78428a^..c8cd230)

這樣就可以匯出這個範圍 commit 的檔案了。