What have you found for these years?

2012-12-20

rubyconf.tw/2012 二三事唔 (1)

想看正常心得的話請看:
2225. 12-20 rubyconf.tw/2012 二三事唔 (0)
這篇會寫得非常個人了。



該從何處說起呢。其實我原本沒有想要投稿的。一個可能的原因是上次 functional programming
那次沒講得很好,投影片也搞得一團亂。很多事情都不斷讓我覺得隨便,差不多就好了,現在我只想
靜靜地過我自己的日子。像是這種感覺吧。不過既然不少人希望我投,除了我自己懶惰外,我也找不到
太多不投的理由。既然如此,我就看看要投什麼好吧?

於是開了幾個題目出來,看看大部分的人對哪些比較有興趣。雖然沒什麼人回答,但總之最後就是這個
題目。這也是四個裡面最難的題目,我完全沒有把握有辦法講。最後我也深深體認到自己還不足以回答
這個問題。不過這是後話了。總之,與 ET Blue 討論了一陣子,就像上篇提到的,有種我想說的
說完了,對方懂了,這樣就好了的感覺。但當然也不是這樣兒戲,既然應該是有可能可以講,也把一些
圖解畫出來了,到底還有多少不投的理由?

後來就開始寫投稿信。內心多少有一些期盼被 reject... XD

那時時間還很充裕,隨便排一些行程表,也覺得沒有問題。但理所當然,也是拖到最後兩、三週才開始
真的緊張起來。怎麼說呢,正由於這個題目太難了,因此到底怎麼傳達想法,也就變成很難的課題。
與其說是在做投影片,其實不如說是在思考要怎麼進行,投影片只是一種投射下來協助表達的工具。
圖解事實上也是這麼一回事,這些全部都密切相關,沒辦法真的分頭進行。

也就是說,製作過程變得很不順。硬想把息息相關的步驟切開,反而變成反覆重做。其實這也明確地
說明了只能講自己做的投影片,別人做的不行,除非事先就已經知道對方要怎麼講,並照著對方的方式
講。同時,這也表達講者可能得屏棄一些個人風格,因為這些都是息息相關的,除非只是要做個照本
宣科的演員!

所以我雖然說投影片是 ET Blue 做的,事實上應該說是我們一起做的。我必須想好流程,想好傳達
方式,想好要放什麼圖解,想好圖解是要傳達什麼事情。很多東西都是不斷反覆修改的。但其實也不是
說 ET Blue 就完全照我所說的下去畫,那樣太無趣了,事實上也很困難。有些東西要真的下去做
才會知道困難的。這也是為什麼畫藍圖然後照著設計稿下去寫東西非常容易失敗的原因。魔鬼都藏在
細節裡面呀。

當然,另一個想法是,誰在乎那些細節?有多少人會專心聽?有多少人會注意到那些細節正確性?
但如果就這樣隨便做過去,那就不會是我做的東西了。同樣,對 ET Blue 而言也是這樣。因此
我們在細節上搞了非常久... 久到根本就沒辦法把東西做完 XD

另一方面,對我來說,我希望所有一起做的東西,大家都可以各自發揮自己想要著重的細節。尊重
專業——身為認為自己有專業的東西,害怕所謂外行引導內行的人,無論如何都希望這一點絕對不能
被違反。當然啦,如果出來的東西跟自己的想像差太多,恐怕還是有點困難。這點大概也要慶幸
我們的偏好和想法比較接近一點,因此合作起來感覺是還算順利。除了進度掌握的問題以外...(茶)

原本是用 googledoc 隨便拉草稿。後來改用 libreoffice, 老實講,我覺得還滿醜的..。
剛看到的時候說實在有一點不能接受。但由於上面的堅持,我決定假裝是可以接受的。除了有幾點
我真的沒辦法接受,希望能調整一下。那時候我確實有點擔心出來的投影片會跟我想要的風格差距
很大 XD 還好後來換成 indesign 後,真的是眼前為之一亮,我還滿喜歡這種粉色系的風格 XDDD

我舉了幾個例子說明我還滿喜歡這種風格的,分別是:蟲師、奇諾之旅、電腦線圈、夏目友人帳。
雖然有幾個編排還是跟我想像的不一樣,不過也沒什麼不好,就這樣吧!

我不知道大家喜不喜歡這種粉嫩粉嫩的,不過我覺得 ET 說得沒錯,其實只要讓講的人覺得順,
不會看到就覺得卡卡的,這樣就好了 XD



*

中間有一段我真的覺得很苦。大約是開始前的倒數第二個星期。這時候的進度大概是 googledoc
快要弄完,但正式版完全還沒開始製作的時候。三個章節大概只完成第一章,比較難的第二章和
第三章進度都不多。要講的事情早就知道了,草稿很快就寫完,可是到底該怎麼表達,真的讓我
苦思許久。

我有點遲疑要不要講這些,一方面是我向來不想在公開場合抱怨這些,另一方面是我覺得應該很難
找到更好的地方。事情大概是這樣,那時候,和那之前,公司很多人覺得 server 有問題。問題是
我怎麼就看不出來有問題。我一直覺得運作得好好的,雖然中間經過不少實驗,有些現在看來確實
不大妙,例如 activerecord 的 connection pool 沒有考慮到 fiber, 因此使用 fiber
應該會有很大的問題才對。也確實那時候一直有一些很怪的錯誤。由於錯誤率也不高,我也就沒
放在心上。

網路服務的東西做久了,看到一些莫名其妙的錯,我已經很習慣會自動忽略。原因很簡單,系統
太過複雜,太多環節可能會有狀況,很多狀況並不是我能控制的。再加上我們東西又是跑在 heroku
上,太多東西是我們看不到掌控不到的。與其在那邊空操心是發生什麼事,不如直接假設是某個
控制不到的地方有問題,等一下可能就恢復了。事實上我認為確實很多是這樣,在那邊空操心只是
浪費精神而已。

以前自己弄 gentoo linux 也一堆神秘事件呀。連自己搞都有神秘事件了,更遑論一堆東西都
無法控制的 heroku? 根據經驗他們也確實有很多問題呀。啊我說他們是包含所有其他的 service.
EC2 都有可能死了,整個系統那麼複雜,我單單發燒又怎麼會有哪個醫生知道我是為什麼發燒?

其實這是優點也是缺點。缺點自然是自己無法檢查,而優點也是自己無法檢查,如果真的有錯,
那他們很可能會在未來修好。我也不是超人,如果能這樣解決,我也覺得這樣就好了。因此神秘的
錯誤基本上我都是視而不見,除非錯誤率太高,不然我總是當成可預期的錯誤之一。我痛恨花了許多
時間調查,結果最後發現是別人的錯,我動不到,後來就自動被修好了。嗯,更糟的是還搞不清楚
到底是不是別人的錯,反正最後也是修好了。再更糟則是依然沒修好,也依然不知道為什麼。

當然,還是有不少東西是 application 本身的 bug, 例如上面提到的 fiber 狀況。我是在
換了 thread 之後重新閱讀 activerecord 的程式碼,才意識到這件事情。說來這也是自動被
修好了,只是是自動被我修好了。我原本只是單純想把 fiber 換成 thread 而已,非常單純。
不料換成 thread 後神秘問題就修好了。

怎麼說呢,當然如果我當時花時間去調查那些,最終可能會注意到是 fiber 的問題。可是我恐怕
就得在那上面虛耗很久,也很可能最後發現還是 postgresql 的問題,跟 application 無關。
抱歉,我不想賭我自己的時間和精神。我認為那錯誤率低到不值得我把整個系統翻過來調查。事實上
當時我也不知道要從何調查起。本來很多時候,找到問題就是最困難的一步,要修都很簡單,看到
錯誤之後,立刻就知道幾十萬行裡,只要改一行就可以了。

總而言之,我覺得用 thread 挺好的。當然中間還有一點錯誤要修,但不都修好了嗎?

其實講這些有點離題了,確切的問題不是這個。重點是,我一邊在苦惱投影片要怎麼做,一邊公司
又希望我到辦公室解釋運作好好的系統架構,在我看來是個一點都不緊急的事情。我所感受到的,
就是不斷希望我修一個我看起來沒問題的系統。同時,事實上我早就解釋過無數次了,只是別人
可能記不起來,我又得不斷重複解釋。就這樣讓我覺得一直在原地兜圈子了一段時間。
(文件?網路上到處都是呀。程式碼也都在那邊)

好不容易,我終於說服公司在 rubyconf.tw/2012 結束之後,再來解釋一些細節。於是在結束
之後的兩三天裡,大抵上把所有公司可能不清楚細節的東西,都全部講完了。好吧,其實我不知道
是不是講完了,至少沒有再問我更多問題了。中間其實也鬼打牆了好一會,我聽不懂對方在問什麼,
一直執著在一個不重要的細節上面,那細節細到我要仔細看程式碼才知道,然後又說不要看程式碼,
我真的搞不懂在鬼打牆什麼。要知道看程式才知道的細節,又不要看程式,那我是能說什麼...

喔對,還有另一個很鬼打牆的事。一個人說另一個人有很多問題要問我,實際問的時候又說沒有問題...
就像我媽常常會叫我跟誰誰誰打招呼,結果那個誰誰誰根本沒有在看我,完全沒放在心上。我真不懂,
直接一點行不行?有問題直接問行不行?為什麼要轉一大圈結果最後發現其實根本沒問題??
想跟我打招呼就直接跟我打招呼行不行?我又不是不會回招呼?

再再加上那時還有一段時間家裡有點事情,搞得我覺得很心力交瘁,虛耗精神又沒辦法把投影片弄完。

所以才忽然在 twitter 上說想要想想未來的事。上次在 rubyconf.tw/2012 居然被問到這件事,
我也有點意外 XD 支吾了一下,不知道要怎麼把這一堆事情交代出來,只好簡單地說因為很累,
所以想想想看有沒有可能有什麼改善的方式。怎麼說呢。用嘴巴寫程式很簡單啦,畢竟戰場上細節
惡魔都還沒上陣,就先離場了。專業就是在那些細節上呀。

同時,我當然也知道,不會有什麼公司可以讓我在家裡做投影片一個多禮拜。但這也不代表我覺得
很累了並不真的是很累。我只覺得我想休息一段很長的時間,不管是玩遊戲也好,認真寫程式也好,
至少不要再在那些不重要的事情上來回爭辯。這真的讓我覺得好累。做投影片那段時間都快到極限了。

當然,現在那種緊繃感已經散去很多了。至少我暫時不用再弄投影片了。可是老實講,我現在還是
覺得滿煩的,很多事已經覺得做不太下去了。好像那種印象產生了後,要消去需要花費很長的時間
或是精神。就像我忘不了某些東西,錯過的機會也永遠不會再來了。明明只是一念之間,理智也知道
那沒什麼,偏偏感智上就是無法接受,沒辦法再一次地,保持原本的心情,或是改變當初的心情。
好像刻下去了,就是刻下去了。

我現在其中一個目標,是希望把目前的 eventmachine + thread pool 的方式 merge 回
rainbows 裡。這個 rainbows patch 是第一步。我不知道我有沒有足夠的能耐,也不知道
有沒有足夠的時間,甚至是足夠的精神能夠完成這個任務。但我還是想證明點什麼。



*

我想過什麼樣的日子?把未來變成什麼樣子?我第二想要的是什麼?大概依然是老樣子,我只確定
我不要什麼。我想我恐怕是不可能回到朝九晚五了。如果不愁吃穿的話,我大概也不想工作了。
如果能只做 open source 就好了。不過我暫時還沒有能用這個賺錢的能耐,雖然我並不認為
我的程式會比較差。但要賣,無論如何門面還是非常重要的,至少可以跟產品品質相提並論。
而我向來不擅長這個,也不怎麼能夠花心思去處理這些。打從心底覺得厭煩呀。我也不知道其他人
想要看到的到底是什麼。

因此說到底,其實我也只想任性地做自己想做的東西罷了。從這個角度出發,恐怕是不可能能夠
有什麼結論。事實上我也並不怎麼在乎能有什麼結論。太多東西不會有結論,也有太多東西結論
就這樣擺在我眼前,我卻無法接受,徹底在內心拒絕那樣的結論。每天每天假裝其實不是那樣的。

可能至少至少,我自己很清楚那不是真的吧。雖然我仍然把那當成真的。
呃很明顯我離題了,那跟我自己到底要做什麼並沒什麼關係。

總之另一個方向,就是走跟其他人接觸的方向了。例如弄些教學,不管是書面上的,或是現實上的。
但這又面臨兩個問題,第一個仍然是像上面所說的賣相問題,誰要?另一個則是我不確定這會不會是
我有辦法持之以恆的事。我很確信我沒辦法很認真地完成一個長篇的文字作品,我有太多斷尾的
東西了,同時,每次想要繼續接下去,都會覺得有無比壓力與困難。這我恐怕是高中時就知道了。

做遊戲?恐怕是比寫文字還要困難許多... 我的毅力終究只夠完成小規模的東西。說來說去,
還是隨便寫程式是最簡單的呢。有時候也真的很慶幸我有辦法寫。有能第一手做出東西賣的能力,
真的很幸運。在最不幸的時候,也能完全仰賴自己做出東西。

無論如何,大概不至於餓死,結論大概只有這個吧。

4 retries:

ET Blue said...

雖然對你來說過程很痛苦,不過對我來說卻是很歡樂,因為學到太多東西了,不好意思 = ="

前期榨腦汁的階段除了當聽眾發問以外其實幫不上什麼忙,自然是很輕鬆,除了有點擔心進度、擔心不知道如何激勵你以外... 至於後面製作投影片的階段,使用不同工具重複做投影片這件事情我覺得 ok,當然如果從頭開始就統一用 keynote 的話是可以避免這種情況,不過這次既然已經確定沒辦法用 keynote 製作(同時也想嘗試不同工具,而且又需要線上協作)的話,投影片做兩次(規劃跟發想階段做一次,完稿再做一次)一開始就是註定的了,對這點我非常的認命... 如果下次用 keynote 的話,你就可以草稿跟完稿在同一個檔案內進行了,然後,可以改善的部分就是,對,跟你說的一樣,要提早開始開 Illustrator 畫正式的圖解。

不過這又有個問題,就像講話的人要知道自己在說什麼別人才有可能聽懂一樣,畫圖的人也必須瞭解自己要畫的是什麼,也就是說,提早開始畫圖的話你必須在構思演講內容的早期就逐一對我詳細解釋你想表達的內容究竟是什麼,即使這些內容有一半會在正式演講中捨棄掉,你還是得花時間教我。這個教學的過程會非常的費時... 身為被教的人我當然是非常樂意啦,但對於要準備演講還要教人的你來說可能就會很疲倦了。所以這次一直等到你在試講時敲定內容後才開始畫圖,畢竟當時時間已經不夠了,如果在你敲定內容之前就動手的話變成你在焦頭爛額之餘還要教我,那大概會死人吧?不過要是時間許可的話,其實我原本想在 conf 前一個月就開始動手畫圖的說 XD 說來說去這一切都要怪萬惡的 GW2 呀...

過程的不順我想主要還是歸因於題目很大吧?因為 survey 的階段太長了。要是試講的那份草稿提早敲定,那我們就可以悠哉的一邊畫圖解一邊調整投影片了,把最後一週的時間拉長為一個月就不會覺得不順啦 XD

總之以初次合作來說不管是過程還是結果都已經非常令我滿意了,畢竟我從沒這樣幫別人做投影片過...

btw,剛開始覺得醜幹嘛不說,這樣我可以早點開 ID 的說,就不用浪費時間在 LibreOffice 身上了。你說的互不干涉原則不適用於這次的情況,畢竟我們不是在一起開發什麼產品而是在準備演講,一場演講裡面,聽眾最大,講者要服務聽眾,然後後勤服務講者,身為後勤的目的就是要讓站在前線的人盡量在各方面都順心如意,這樣你才能毫無後顧之憂的去服務聽眾。所以沒有互不干涉這種事情,身為第一線的你要好好的指揮我呀!下次知道了呴!

好吧... 那我也來反省,其實我早就覺得畫圖會來不及了,因為根據經驗圖絕不是畫了就好,一定會大幅修改。那時候雖然很緊張來不及畫圖,但不想增加你的壓力,所以一直沒有催你,想說之後再來開 turbo 來趕稿的話應該可以應付... 就這樣拖著直到最後覺得連開 turbo 都可能來不及了才跟你說。沒想到這樣似乎反而有激勵的效果? = =? 早知道我就早點講了 QAQ 那來打勾勾好嗎?以後我們雙方都不要自己偷偷堅持什麼奇怪的原則,如果有什麼原則要遵守,也是要雙方都討論過有共識的原則,而不是為了滿足自己的龜毛而偷偷地單方面地在心裡設立的原則。

#

世界上有很多有趣的事情是無法單打獨鬥地完成的,能找到合的來的玩伴一起做的話是最棒的了... 雖然我最近也是因為工作的事情而有點... 不過等恢復之後,精神和時間許可且又剛好有合適機會的話,我想繼續跟你一起玩!不知道到底能一起玩到什麼規模,也許可以幫助彼此達到各自的夢想也說不定。(好吧,我知道不太可能啦,不過死馬當活馬醫嘛 = = ...)

Lin Jen-Shin (godfat) said...

沒什麼好不好意思呀,又不是你從我這邊拿走什麼,東西都是複製過去的(?),我沒損失 XD

至於解釋嘛,只要聽得人能聽懂,我向來是樂意也喜歡解釋的,所以這點不用擔心。

另外說真的,焦頭爛額至少有一半是因為公司的關係。

至於剛開始覺得醜為啥不說,因為那時已經沒啥時間啦,我只想把東西先確定下來 XD
再加上我也不確定你用 indesign 做到底合不合適,你不也說之前沒拿來做過投影片嗎? XDD
另外則是我是想說我可以自己調整,像是字型我就調了很多,我不能接受那種瘦長的字.. XD
顏色什麼的,其實我也是自己在改,只是覺得真是天殺得難改呀...

至於那條線要拿捏在哪裡,隨著合作次數多的話應該就會慢慢知道啦 XDXD
欸,說真的默契這種事真是無價之寶呀......

下次等你來寫 ruby 呀~~ XDD
倒是才想起來這個 http://opalrb.org/
也許你可以寫 ruby 但跑 javascript..

ET Blue said...

說真的我也覺得 LO 真的很難調,那些可以提高質感的特效,LO 全部都沒有,哈。所以那時候其實也很猶豫到底要不要冒點小險換軟體,雖然沒用 ID 做過投影片,但對軟體也還算熟,至少是熟到可以教別人的地步... 不過同時又沒有百分百把握時間絕對趕的及。還好你支持試試看 ID,我才突破那個猶豫的狀態然後放手去試,結果毫無困難一下子就弄好了 = = 然後就想自己估計事情的時候是不是都太保守了點,把不確定的東西都想像成洪水猛獸似的...

後面編排你想改的地方應該是有很多手寫字的部分?嘛,反正當時也顧不得那麼多了 = =" 倒是這次的版型中你喜歡的部分,比如公主色封面那些的,底圖可以出個點陣圖檔,讓你之後直接在 keynote 裡面用。

才開始寫 ruby 沒幾天光景,我覺得真的很難回去寫 javascript 了,以後真的需要的話大概真的會這樣寫 ruby 編 js 吧 = =" 不過我現在有個問題,就是腦袋裡的程式概念大多還是 js 的,要再研究一下 ruby 的基本概念跟 js 有哪些不同,不然有時候會覺得好像漏了什麼卻又說不上來。他們的物件族譜(?)好像長的不太一樣...

Lin Jen-Shin (godfat) said...

XDDDD 不會呀,你還是試了 XD

我想改的那個是說 LO 時,ID 時已經沒想太多了 XDDDD

物件族譜當然不同,完全不一樣 XDDD
嚴格來說 ruby 會複雜很多,js 其實這部份很單純,沒啥東西

Post a Comment

All texts are licensed under CC Attribution 3.0