Drake's Weblog

1 minute read

這是一篇文章聊到「怎麼讓程式碼與程式員之間的關係,從原來的一對一擴展成為多對多的樣貌,進而從中獲得好處」的文章,撰文者 qing 是一位非常認真汲汲於 programming methodology 與 java programming 的 guru,同時也是我非常敬愛的新竹中學軟體研究社學長。
文章中提到的 XP,也算是發表好幾年的方法論了,而且我猜,說不定太極影音的 MIS 系統開發組就採用了不少裏頭提到的方法。我在大五參加遊戲設計比賽時,也採用過 pair programming 來試驗成效,大抵來說,的確是減少了一些不必要的邏輯錯誤或 typo,同時 debug 的成效也比一個人埋頭苦幹在十多萬行的 c++ 程式碼裏頭來得快多,但我想 pair programming 最直接的助益,就在於有另一個人和你一樣,對一個系統或一大段程式碼的夠了解,足夠到可以和你討論一些細節或延伸的想法與設計,這大大地讓 programmer 擺脫了「I am programming alone without anyone figuring out what I was/am/will be doing…」,非常有趣的經驗。
最後一段的「讓每個成員寫出一致風格的程式碼」,讓我忍不住想到印度的斯巴達式資訊教育~

1 minute read

同事 ypcat 今天下午過來,突然說了段話:
我前幾天與一位高中同學踫面聊天,他是讀台大電機的,然後他來修了我們系上(資訊系)的課程,下了個評言:台大資工系給人的感覺,有點混混的。
不知道為什麼,我並不想反搏,但也沒有完全同意就是。只是在和他聊這個話題的同時,我腦子裏一直在想的是「我在太極的這段日子,是否也讓人覺得有點混混的,或是愈來愈混,或是愈來愈沒有什麼明顯的成果出來了…」
工作久了,會發生一件有趣的是,那就是「你會慢慢升官」。撇開「升官發財」這件事來說,只要你的表現 ok,因為待得久了,自然了解夠多的細節與公司文化,自然知道怎麼跟不同部門的人事溝通與互動,自然曉得每一位主管的個性與風格,然後你又沒有黑掉(這點存疑,因為我本人不太理會黑不黑這種事),加上又不排斥接手一些管理階層的工作的話,「升官」這件事,是遲早的事,所以「升官」其實不是件多麼酷的事。
上述是以一種非常「消極面」的態度來看待這件事情,但這種說法,非常受台灣島國人民的愛載,因為大部分的人都會在工作中,意識到自己是基層員工。而基層員工,最不愛的就兩件事:公司與主管。所以這類「消極的說法」,某種層度上,還挺受歡迎的。
ypcat 提到,因為高中填鴨式教育的關係,其實他到現在,對於高中的東西還算挺熟的。如果說,現在突然被抓回去考大學教的演算法,可能會很糟,但是如果考的是高中數學的話,那可能還會有不錯的成績。
他的這段話,讓我想到,我有一段時間,覺得我的英文程度,從高三後就每況愈下(希望這個成語沒有用錯),到了研究所,勉強以英文撰寫完碩士論文後,就真的是「愈來愈下」了。這實在很弔詭,究竟是發生了什麼事,讓自己覺得目前所會的東西,比以前來得少之又少?
生活本身就是一種學習的過程,在學習怎麼社會化與職場化的同時,正慢慢流失其它方面的學習動機與動力。在與 ypcat 的一席聊天後,我深刻地覺得年過三十的我,來日不多,得加把勁兒去感受與體會,然後從中擇一出來,好好地深入。
我永遠記得,高中英文老師說過:「學習英文,不是透過 learning 來的,而是透過 pick up。所以你得隨時隨地都在學英文,一點一點地撿,一點一點地使用,然後再一點一點地消化,變成你日常生活中的一部分…」
學習其它事物,何嘗不是如此? 附上我最近非常愛的一個桌面。

1 minute read

一封來自公司福委會的信:
各位同仁大家好:
瓦力(WALL•E)是皮克斯(Pixar)的第九部動畫長片,由海底總動員(Finding Nemo)的導演Andrew Stanton所執導,是一部描述一台打掃機器人「瓦力」的動畫。
皮克斯的動畫一向都是有著好口碑、老少咸宜、適合全家觀賞的好電影,其動畫的技術與技巧更是同仁們值得學習觀摩的好對象。為了讓各位同仁有機會在第一時間觀賞到這部皮克斯的年度鉅作,並給予各位同仁最好的觀賞品質,公司及職工福利委員將於電影首映日7/25晚上包下西門町的今日數位影城第一廳,並且提供爆米花及可樂,讓大家吃的安心,看的盡興。
為了能讓各位同仁可以跟親朋好友一同觀看「瓦力」,此次活動將會發給每位同仁兩張該場次的電影票,除了各位同仁自己以外,還可以另外邀請一位您的家人、朋友、伴侶一同前來。
由於本電影欣賞會屬於包戲廳的性質,因此自由入座,毋需劃位。
詳細的場次時間(會在晚上7:00~7:30之間開始)及交通資訊,將會在下週初另外公佈,並且同時發放電影票。敬請
各位將時間空出來,感謝各位。
職工福利委員會關心您

1 minute read

同事裏頭(ycliao, kongkongna, naomi, bernald, …),有不少人在玩 Natura, LOMO LC-A, Holga 等非常神奇的玩具。透過這些底片相機,一張張飽合又帶些缺陷的相片……..,光是看它拍出來的照片就很吸引人了,更不用說親手把玩。
這類的相機,有一種約定成俗的說法 – Toy Camera。據說,最早也最為經典的,是一台叫 Diana camera 的,在六七零年代問世。
同事 ogawa 介紹了一個有趣的工具 – ToyCamera,透過它,就可以做出假造的 photography by toy cameras。
沒有 Toy Camera,就先玩玩這個啦。
Before:
After:
Links:
http://www.flickr.com/groups/toycamera/pool/tags/toycamera/ http://www.lightleaks.org/ one photo in toycamera.com

1 minute read

Quick Answer:
from pymel import * # Is the object.attr a source of a connection? len(object.tx.inputs()) > 0 # Is the object.attr the destination of a connection? len(object.tx.outputs()) > 0 # List an object.attr's source connection, meaning, list the input connection. # This will return a single object.attr. object.tx.inputs() # List an object.attr's destination connection, meaning, list the all output connections: # This could return multiple object.attrs. object.tx.outputs() # In other words, you can just use inputs() and outputs() to get if there is a connection # (source or destination), how many connections there are, and what they are!

1 minute read

無意間,在自由時報電子報看到了這麼一篇罷職求去—-想離開的是「人」,不是「公司」的文章,一時忍不住反覆看了兩三回。是因為,加諸在我身上的「研發小主管」身份的壓力使然? 還是則是一種「沒有道理的使命感」迫使我對這文章感興趣呢? 一時也回答不出來。
文章開頭提到:
資料顯示,高達65%的人是因為他們的主管而離職。我們大可以說員工是離開工作或公司,但事實上他們通常是開除上司。「公司」沒有錯待員工,是人錯待員工;有時同事惹出問題,也會促使他人求去,但員工的頂頭上司往往才是孤立他們的人。
大部分領導者都能讓員工在首次見面時留下良好印象,而且人們對新工作總抱持樂觀態度,希望終能成功。但時間一久,領導者的真面目會露出來,無法維持刻意營造的形象。如果老闆是個蠢蛋,員工遲早會知道。通常分為以下四類:
離開貶低他們的人 離開不值得信任的人 離開無能的人 離開缺乏安全感的人 太極影音的研發部門,說小不小,總個來說有十六七位成員,要弄個聚餐或是開個 RD 會議時,很是熱鬧;但說大又不大,因為專案與個人性向的安排,超過半數借調到 3D 動畫長片部門裏的各個角落:以動畫專案(Production)為主,研究(Research)與開發(Development)為輔。再加上最近因為專案(QQ)的關係,人事部門的同事非常努力地找人進來面試(非常感謝 Avery 的努力,因為找人這件事,實在是件很辛苦的事吶…),每次面試,除了要想這個人適不適合加入之餘,還得傷腦筋,是否讓團隊變大的同事,超過我們的能力所及,無法讓整個團隊正常發展,如果還因此讓研發人員心生離去或對這個產業失望的話,那我就真的是該死了。
一想到這,就覺得「呼…主管好像真的很複雜呢…而且還遠遠超乎我的想像。」
John Maxwell 的論點,和 Peopleware 裏的描述,有些地方很相像,只是 Maxwell 的對像比較全面,不分公司行號類別,而 Peopleware 著眼於科技知識產業。不論哪一個論述,都一再強調,好的主管,才能讓整個團隊發揮最大,甚至是超越眾人的想像,創造出讓人眼睛為之一亮的產品與成果來。而這類的工具書,為了讓看的_準主管或小主管們_知道怎麼做,所以常常是以「第一點、第二點、第三點…」「要注意的四個原則…」「要如下幾個步驟要執行的…」,這或許和西方文化,喜歡把複雜的事化為簡單而條列式的哲學有關。總之,就是會有「好幾點」你要注意的,只要你做好「這幾點」,至少會有一定的成果的。
這讓我想到,太極的 Animation Pipeline 有所謂的 checklist,每個部門有不同的清單,分別要檢查的事項不一,重要程度不一,影響所及也不一。這些清單是經過大大小小主管、組長、研發技術人員、製作部門行政人員等,就過去參與過的案子的經驗,一一條列出來的,很大很長的一筆清單。有的可以透過一些程式來檢查,有的要靠人為的方式處理,但總的來說,就是一份有「數十點注意事項」的清單。不過究竟執行得如何,還是得看人。
同樣地,不管是 Maxwell 或 Peopleware 的論述,真要做到這麼多點(像是要言行一致、清廉正直、明確且一致的願景、為員工爭取福利…),非常的不容易,尤其這是一個「在商言商,變化萬千」的資本主義下的商業行為,不是象牙塔裏的學術界,很多事很難一再堅持,加上動畫產業是一個活生生的產業(a vivid insustry),實在過癮極了與糟透極了。
總之,同事的離職,有很大的原因是主管不力,雖然這個說法太過草率,但大致我想表達的就是這個意思。為此,我得好好注意,怎麼做好一位讓研發部的同事,愉快且有發展的環境,不然,就對不起當初他們加入這個團隊時的那份心了。

3 minute read

簡答如下:
from pymel import * filter( lambda n: 'light' in n.classification(), ls(sl=True, dag=True, leaf=True)) 這邊我使用 pymel 這個 python module 來簡化一些細節。
對照於文章後頭引用的原文(使用 mel 作法,建議先閱讀後,再回過頭來想上頭的這邊兩行程式碼),使用 pymel 不需檢查 getClassification() 的回傳值是不是空字串,透過 python 的 in 這個 operator 就會自動幫你處理掉一些「例外」了,同時,還可能因此少寫一些 if else。寫程式時,如果能少一些判斷式(if … else … elif …, switch case …),就「程式的易閱讀性」這一點來說,就像是少了一些特例的處理,是個比較好也比較推崇的寫法。像是說,日後在做維護時,不需要一個一個 if else 看下去,一個一個了解哪些情況下,要做什麼檢查之類的,因為對於正在維護或是新增功能的 programmer,他會希望花最少力氣就完成這類工作。同時,心理頭要能很有自信,確信不會因為他寫的程式而造成不必要的 bug 出來。少一些 if else,就少一些這層顧慮,因為你等於是替未來接手的 programmer(這個人常常是你自己)幫了個大忙。
同時,藉由 Functional Programming 裏好用的 list operator: filter ,原本要寫上四五行的 for loop + if else,現在只要一個 filter 就成了,當然,再加上隨寫即可用的 lambda function,寫起程式來,輕鬆得很。這裏的好處,不是只有把原來要寫四五行的程式碼縮短成一行而已,它同時暗指了,讓 programmer 去習慣把一個 for-loop 的想法,一個以流程為主的邏輯想法(flow-oriented logical thinking),轉化為以資料為主的想法(data-oriented thinking),而且是以比較高階的資料結構來思考(一次以一整個 array 或 list 來想)。

1 minute read

真的是被嚇到了,國寶總動員裏的三個主角直接成了國立故宮博物院網站的首頁,真是愈來愈活潑的國家單位呀~~ 我們的故宮,真的是愈來愈年輕了,一點都不老。
首頁上明列了中文、英文、日文、韓文、法文、德文、西班牙文、俄文與簡體中文等多國語言的版本。我猜,會挑選這些語言,多少表示了,故宮的常客就是來自這些文化的人。一時好奇,跑去 wikipedia 的首頁看看資料量最多的前幾個語言,不少一致的呢。像是英文、德文、法文、日文、西班牙文及俄文。如果說,一個語言代表著一種文化,那上述的這些文化的人,應該有些特有的個性與特質的吧…離題了。

Recent posts

Categories

About

You're looking at Drake's words or statements. All opinions are my own.