Welcome to drakeguan.org

Mar
13

Interesting Python Shells

I've found several very interesting and active python shells. Each has it's own strength and the most often mentioned feature is syntax highlight, auto-complete and function attributes info.

Here they are:

IPython

ipython

bpython

bpython

DreamPie

dreampie

Interactive server-side Python shell

shell.appspot.com

Mar
10

偷窺 Maya 2011

Jefri 昨晚送來了幾則非常有趣的消息:Maya 2011 的改版

  • 採用 Qt 整個改寫 Maya GUI,這個謠言終於成真了。我還記得去年(2009)時,Autodesk 原廠有一組人來太極,與我們的 RD/TD/Effects 就 Maya 的「改進事項」做 survey, 我們依我們每個人注意到的提出一些項目來,最後再從中理出幾點比較重要的來。那時我很直接地問了「聽說要用 Qt?」,得到「這還沒證實」的答覆 ^^ 使用 Qt 代表了很多意義:
    • 多國語言化變得非常自然,中文化也就不是問題了。更直接的影響是,開發的 scripts, plugins 都可以有多國語言支援。
    • 跨平台的 Maya GUI 變得比較一致了,因為 Qt 並不是採用 native GUI framework 的作法,使得每個平台下的 GUI 都可以長得一樣,行為也一樣!!! 終於,我們擺脫了該死的 Motif!!
    • 更好用的 file browser 與 tab panels.
    • 更自然的 docking windows 與 floating windows.
  • pymel 將成為 Maya 2011 的 python modules 之一! 我想 Chad 的努力是最大的功臣,另一方面,Autodesk Maya Development 團隊沒有人有空撥力氣在這上頭也是原因之一。
  • Multi-Camera 變強了。因為 stereoscopic filming 與 autostereoscopy 的大量出現,加上 animation studios 一再強調“一組 2-cam rigging 是不夠的“(PS. Quantum Quest 在幾個 shot 裏頭,最多用了四組,就是八隻 camera),於是 Multi-Camera 一次提供這些要求。
  • Render View 是另一個值得注意的地方。直接提供 2D Pan/Zoom, HDR viewing, color profile (ex, gamma2.2/linear for output/input data), 搭配上 GUI 是用 Qt 寫的,所以即便是 Render dialog 也可以直接鑲嵌至 main window 裏頭了。

參考資料:

Mar
7

對的工作夥伴

工作的時候,你一定常常發現,坐在你隔壁的同事,關在專用辦公室裏頭的主管,或是放眼望去,盡收你眼底的下屬,他們每個人除了手邊的工作,都同時在忙著自己的私人興趣。這邊說的興趣,是在去除了像是開心農場、MSN、噗浪客…等的東西,也就是說,即使你把 web game, social network 或是 blog 等因素拿掉不看,每個人還是一樣忙著一些事情,與工作無關的事情。

Isn't Life Strange

忙著經營個人部落格;研究下一次出國遊戲計畫;認真回答雅虎奇摩智識家上的問題;研究怎麼寫一個 iPhone App;參加網路上數不清的贈獎活動;活躍於 babyhome, mobile01, gizmodo 這類社群網站上;或甚至在研究怎麼弄一個 startup 來…

這讓我想到前一陣子在看 Joel on Software 這本書,有一篇 The Guerilla Guide to Interviewing,裏頭指出,面試程式設計師,這件事看似複雜,其實只要抓住兩點就行:

  • Smart; 聰明
  • Get Things Done; 能把事情做完

因為聰明,所以知道遇到問題時,怎麼解決,更重要的是,以「不額外造成其它問題的方式解決掉」。「解決問題」,像是種短暫的現象,像是寫個小 script 。但很多時候,這個小 script 會在一週,一個月,或是一季過後,產生了更多的問題,於是得動用到兩三位工程師來了解狀況,最後再由其中一位,花上一週執行,才能把新產生的問題一一解決掉。

第二點更有趣了。Joel 指出一個「無法把事情做完」的例子:博士。如果你有遇過一些“博士“,他們很懂得分析一些問題的複雜性,然後會努力告訴你,這些問題,其實骨子裏是同一個問題,然後他們有什麼特性,應該套用什麼 pattern 或是演算法來一次處理…但是最後,他們卻寫不出一個足以應付真實世界多變的程式來。他們是學院聖殿下的產物,只是稍為太超然,活得太像神仙,而忘了民間種種凡人俗子要面對的,奇形怪狀的情況。

我想,還需要新增個第三點:

  • 熱愛手邊的工作,把一部分工作變成一種興趣與玩樂。

更正確地來說,會下班後跑去書店或圖書館找資料,上網 google 也是一定要會的,同時還會很積極動用他(她)的人脈關係來研究,或甚至回學校,厚著臉皮去找當年把他(她)當掉的教授請教的。我想擁有這種特質的人,同樣重要。

Mar
2

Design Patterns for UI

誰說 Design Patterns 只用在 computer science 的? Collection: Design Patterns

Design Patterns for UI

Feb
21

Autodesk Labs 計畫:Twitch -- 遠端執行你的 AutoCAD, Maya 吧!

先看看下頭的這一段 YouTube 影片,透過一個 Autodesk 正在試驗的 Project Twitch,你就可以使用 Autodesk 的機器,執行起 AutoCAD, Revit, Inventor 或是 Maya 2010,最重要的是,不用安裝,不用購買,不需要有好的機器,當然,就更不需要破解了。你只需要有夠 ok 的網路頻寬。

PS. 一開始得知這個消息,還以為 Autodesk 運用了 HTML5, WebGL 之類的技術,原來不是 :p 可惜是 Windows 平台限定,無法測試。

Feb
20

Functional Programming: Lisp

My first flux

What Made Lisp Different. The 9 original and new ideas embodied by Lisp, a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax, are:

  1. Conditionals.
  2. A function type.
  3. Recursion.
  4. Dynamic typing.
  5. Garbage-collection.
  6. Programs composed of expressions.
  7. A symbol type.
  8. A notation for code using trees of symbols and constants.
  9. The whole language there all the time.
Source:Hackers & Painters

在看 Hackers & Painters 過程中,稍為了解 C -> C++ -> Java -> Perl -> Python -> Ruby 的演化,一種“趨向 Lisp 的進步方式“。根據 Paul Graham 書中的陳述,這些語言一個一個發展下去,從最早的“執行起來快“的 C/C++,慢慢往“語言本身能力比較厲害“的方向走,然後最厲害的,就是 1958 年由 John McCarthy 發明的 Lisp 了。(正確來說,是他的學生 Steve Russell 實現了第一個 Lisp interpreter,有趣的是,這位 Russell 同時是歷史上,寫出第一個 video game, Spacewar!, 的作者!)

根據 The Pragmatic Programming 的說法,一位積極進取的 programmer 應該做的事情之一,就是每一陣子去學習一個新的程式語言,另一種有別於你已經會的程式語言。透過從骨子裏學習新的語言,除了可以喚醒你「初學程式語言的新鮮感」,同時可以讓你學到以不同的觀點看待“寫程式“。為此,我打算隔一陣子,來去學學大一之後就沒有再接觸的 Lisp 家族。

Feb
18

1980 年代的電腦圖學 - 3

發表於 1988, Renderman 成了描述 3D 場景的一種標準,由當時仍在 Pixar 的 Pat Hanrahan(現在在 Stanford)組織了當時大部分技術成型,並且給與了它這個名字。在那之後, Hanrahan 就遷移至 Princeton University 了。

說 Renderman 是一個標準,而不是一套工具或程式,是有道理的。它界定一個一致的界面,可以用來描述“幾乎“所有 3D 場景裏頭會有的物件,3D 模型、光源、鏡頭、大氣效果…等。一旦一個 3D 場景被轉成 Renderman 格式後,“理論上“,這個檔案可以被套用在任何一個“認得它的 renderer“上頭進行算圖。(譯注:重點在於,它是一個 open standard,而不是像 Microsoft Office 系列的 doc 這樣 close format;另一方面,因為 Renderman Interface 的設計,在一開始就保留了可供擴充的 Options, Attributes, RunProgram…等,是以有辦法向後相容個數十年也不成問題)也因此,對於程式開發者來說,只要他們有辦法讓他們開發的 3D 套件可以輸出 Renderman 格式的檔,就可以受惠於這個開發格式。自它公開了,就有 19 家公司替它背書,其中包括了 Apollo, Autodesk, Sun Microsystems, NeXT, MIPS, Prime, 與 Walt Disney.

Renderman 這個標準裏頭,另一個大功臣就屬 'shaders' 這個點子了。shader 是一小段程式碼,被拿來描述物體表面材質、燈光的特質、大氣效果…等。

Flight of the Navigator這之間,很多人來來往往於不同的公司與案子之間。Jeff Kleiser 在參與了 Tron (隔了二十多年,它的續集 Tron Legacy 將預計在今年, 2010, 上映)與 Flash Gordon 之後,跑去他哥哥(或弟弟,這就是我覺得英文討人厭的地方了,哥哥弟弟,姐姐妹妹不分~)Randal Kleiser 執導的 Flight of the Navigator (IMDb, Wikipedia )電影裏頭,擔任 Digital Effects Supervisor.

Feb
8

Vivid Animation Pipeline

It is really hard to make people realize the importance of animation pipeline, especially to whom not in this field. As long as you learnt something CG related and some 3D packages(ex, Maya), you will soon pick "animation pipeline", the industry term, up from somewhere and treat it as a normal process of a group of people.

The following image I borrowed from Computer Graphics Quarterly, Volume 44 is some kinda interesting stuff for you to visually perceive the routine process of lighting. In the right column is a normal lighting pipeline. You can tell it starts from opening a Maya, doing some shader init setup, shader setup, lighting layout, ... rendering and once again, ....

Test case, StudioGPU MachStudio Pro real-time workflow vs. traditional turn-based workflow

It might be the right time to build a animation pipeline 2.0 through much more strict viewpoint of computer scientists by making use of the present techniques from different fields, like cloud computing, mixing of gpu's real-time rendering and cpu's high-quality rendering, artistic driven modeling/shading/lighting, ...

Don't just rely on what you have from 3D/CG/CV softwares/packages because it starts changing and soon or later, your competitor will work in ten times speed than yours!

Syndicate content