2/20/2010

Essential English Words for Technology Evangelist

Here I summarized some most used(also most likely misused) technical English word in my daily activities. Also Punctuation and Number terms are listed for further reference.

Part I - Paired Words

Homogeneous/Heterogeneous
- Homogeneous[ˌho-mo-ˈjē-nē-əs]: of the same or a similar kind or nature
- Heterogeneous[ˌhe-tə-rə-ˈjē-nē-əs]: consisting of dissimilar elements or part

Synchronous/Asynchronous
- Synchronous[ˈsiŋ-krə-nəs]:of, used in, or being digital communication (as between computers) in which a common timing signal is established that dictates when individual bits can be transmitted and which allows for very high rates of data transfer
- Asynchronous[ā-ˈsiŋ-krə-nəs]:of, used in, or being digital communication (as between computers) in which there is no timing requirement for transmission and in which the start of each character is individually signaled by the transmitting device

Deterministic/Non-deterministic
- Deterministic[-ˌtər-mə-ˈnis-tik]:a : a theory or doctrine that acts of the will, occurrences in nature, or social or psychological phenomena are causally determined by preceding events or natural laws b : a belief in predestination
- Non-deterministic: the opposite of deterministic

Intuitive/Heuristic
- Intuitive[in-ˈtü-ə-tiv]: known or perceived without evident rational thought and inference
- Heuristic[hy-ˈris-tik]: involving or serving as an aid to learning, discovery, or problem-solving by experimental and especially trial-and-error methods

Ambiguous/Ambitious
-Ambiguous[am-ˈbi-gyə-wəs]:capable of being understood in two or more possible senses or ways
-Ambitious[am-ˈbi-shəs]:having a desire to achieve a particular goal

Linear/Exponential/Polynomial/Order of Magnitude
- Linear[ˈli-nē-ər]:of the first degree with respect to one or more variables(线性的)
- Polynomial[ˌpä-lə-ˈnō-mē-əl]:a mathematical expression of one or more algebraic terms, each of which consists of a constant multiplied by one or more variables raised to a non-negative integral power (as a + bx + cx2)(多项式的)
- Exponential[ˌek-spə-ˈnen-chəl]:expressible or approximately expressible by an exponential function; especially : characterized by or being an extremely rapid increase(指数级的)
- Order of Magnitude:a range of magnitude extending from some value to ten times that value(数量级)

Supplementary/Complementary
- Supplementary[sə-plə-ˈmen-tə-rē]: added or serving as something that completes or makes an addition(增加的,额外的)
- Complementary[ˌkäm-plə-ˈmen-t(ə-)rē]:mutually supplying each other's lack(互补的,补缺的)

Mandatory/Canonical
- Mandatory[ˈman-də-ˌtr-ē]:containing or constituting a command(强制的)
- Canonical[-ni-kəl]:conforming to a general rule or acceptable procedure(规范的)

Preliminary/Elementary
- Preliminary[pri'liminəri]: something that serves as a preceding event or introduces what follows(初步的)
- Elementary[.elə'mentəri]: easy and not involved or complicated(基本的)

Involve/Evolve/Evaluate/Revolution
- Involve: to engage as a participant
- Evolve: undergo development or evolution
- Evaluate: place a value on; judge the worth of something
- Revolution: a drastic and far-reaching change in ways of thinking and behaving

Theorem/Law/Axiom/Lemma
- Theorem['θiərəm]: an idea accepted as a demonstrable truth(定理)
- Law: the collection of rules imposed by authority(法则)/a generalization that describes recurring facts or events in nature(定律)
- Axiom['æksiəm]: a proposition that is not susceptible of proof or disproof; its truth is assumed to be self-evident(公理)
- Lemma['lemə]: a subsidiary proposition that is assumed to be true in order to prove another proposition(引理)

Principle/Principal
- Principle['prɪnsəp(ə)l]: a rule or standard especially of good behavior
- Principal['prɪnsəp(ə)l]: main, or most important/any one of the most significant participants in an event or a situation

Personal/Personnel
- Personal['pɜrsən(ə)l]: relating to a specific person rather than anyone else/the personal column in a newspaper or magazine
- Personnel[.pɜrsə'nel]: the people employed in an organization, business, or armed force

Illegible/Eligible/Tangible
- Illegible[ɪ'ledʒəb(ə)l]: impossible or very difficult to read
- Eligible['elɪdʒəb(ə)l]: entitled or qualified to do, be, or get something
- Tangible['tændʒəb(ə)l]: capable of being given a physical existence

Paradigm/Diagram/Chart
- Paradigm: an example that serves as a pattern or model for something, especially one that forms the basis of
- Diagram: a simple drawing showing the basic shape, layout, or workings of something
- Chart: a diagram or table displaying detailed information

Compliant/Complement/Compliment
- Compliant: designed to follow a particular law, system, or set of instructions
- Complement: to complete, perfect, or go well with something else
- Compliment: to say something nice to or about someone

Consecutive/Continuous
- Consecutive[kən'sekjətɪv]: following one after another, without interruption, successive
- Continuous[kən'tɪnjuəs]: uninterrupted in time, sequence, substance or extend

In a Nutshell/Cookbook
- In a Nutshell: in very few words, getting right to the main point
- Cookbook: a book containing detailed directions for a process of any kind

Nuts and Bolts/Pros and Cons
- Nuts and Bolts: the most basic components, elements, or constituents of something
- Pros and Cons: the advantages and disadvantages of something

Consensus/Quorum
- Consensus[kən'sensəs]: agreement among all the people involved(一致意见)
- Quorum['kwɔrəm]: the smallest number of people who must be present at a meeting to allow official decisions to be mad(法定人数)

Empirical/Theoretical
- Empirical: based on real experience or scientific experiments rather than on theory
- Theoretical: based on theories or ideas instead of on practical experience

Systematic/Ad hoc
- Systematic: carried out in a methodical and organized manner
- Ad hoc: done only when needed for a specific purpose, without planning or preparation

Authentication/Authorization
- Authentication: the act of proving or showing that something is real and not false or copied
- Authorization: the process which aims to confirm that somebody has permission to do something or be somewhere

Orthogonal/Causal
- Orthogonal[ɔ:'θɔgənl]: statistically unrelated (正交的,无关的)
- Causal['kɔz(ə)l]:involving or constituting a cause; causing(因果相关的)

Part II Single Words

Prune
- to remove something considered unnecessary or unwanted

Dilemma
- a situation in which you have to make a difficult decision

Spin Off
- a product made during the manufacture of something else
- a company "splits off" sections of itself as a separate business

De Facto
- acting or existing in fact but without legal sanction

Part III - Abbreviation/省略词组

- VS Versus
- I.E. Id Est, that is to say
- E.G. exempli gratia, for example
- A.K.A. as known as

Part IV - Punctuation/标点符号

, Comma/逗号
; Semicolon/分号
: Colon/冒号
. Dot/Period/句号
" Quote/引号
- Dash/Hyphen/连字符号
_ Underscore/下划线
... ellipsis/省略号
/ Slash/斜线
() Parentheses/圆括号
[] Bracket/方括号
{} Brace/花括号
<> Angle Bracket/尖括号
| Vertical Bar/单竖线
‖ Parallel 双线号
* Asterisk/Star/星号
& Ampersand/and符号
^ Caret/脱字符
% Per Cent/百分号
‰ Per Mill/千分号
$ Dollar/美元符号
# Pound/井字号
@ At/地址符号
~ Tilde/Swung Dash/波浪号/代字符号
` Grave accent/Back Quote/重音符号/反引号
+ Plus/正
- Minus/负
x Multiply/乘
÷ Divide/除
∞ Infinity/无限
∵ Since/Because/因为
∴ Hence/所以
∷ Equals/等于
∪ Union/并
∩ Intersection/ 交
∫ Integral/积分
∑ Sigma/Summation/总和
℃ Celsius System/摄氏度
§ Section/Division/分节号

Part V - Number

10^1 - ten
10^2 - hundred
10^3 - thousand/kilo-
10^6 - million/mega-
10^9 - billion/giga-
10^12 - trillion/tera-
10^15 - quadrillion/peta-
10^18 - quintillion/exa-

10^-01 - tenth
10^-02 - hundredth
10^-03 - thousandth/milli-
10^-06 - millionth/micro-
10^-09 - billionth/nano-
10^-12 - trillionth/pico-
10^-15 - quadrillionth/femto-
10^-18 - quintillionth/atto-

semi-/半
uni-/一
bi-/二
tri-/三
quad-/四
penta-/五
hex-/六
hept-/七
octa-/八
nona-/九
dec-/十

2/15/2010

Behind Avatar's Fancy Special Visual Effect

Since 12/18/2009, Avatar has attracted all people's eyes on this planet. I watched a 3D IMAX version of this film some time ago. After seeing those fancy special visual effect, I can't help wondering how they accomplish that and what computer hardware/software they had used.

The special effect of Avatar is mainly made by Weta Digital(alongside with ILM), who had also made Lord Of The Ring, King Kong etc. Data Center Knowledge and Information Management both have some great articles([01] - [07]) about the IT infrastructure that supports the making of Avatar.

Here, I try to summarize core information gathered from these posts and focus on the IT related aspects. For the making of special effect itself, see "Avatar - The Game Changer" please.

Part I - Hardware Configuration[3][7]:

Cluster
- HP
Cluster Platform 3000BL
- 34 Water Cooled Racks(from Rittal), each with 4 HP BladeSystem Chassis
- Each Chassis consists of 16 Blade Servers
Blade Server
- Type: BL 2x220c
- 2 Nodes, each with 2 4-core processors
- totally 34 * 4 * 32 * 2 * 4 = 34, 816 cores
RAM
- 104 T
Network
- 10G Ethernet Network from Foundry Networks(now acquired by Brocade)
Storage System
- 3P Network Area Storage
- FAS6000 and FlexCache from NetApp
- Titan Server from BlueArc
Space Size
- 10,000 square feet
Cooling System
The industry standard, raised floors and forced-air cooling, doesn't work because the blade server is very dense. Weta's innovative solution consists of two parts:
- Enclosed, Water Cooled Racks where the hot air is sucked into a radiator and cycled back through the front of the machines.
- Run the Machine Warm (~25 C), which modern computer doesn't mind.

Part II - Movie Rendering

"The main activity in a visual effects data center is called rendering,the process of turning the digital description of an image into an actual image that can be saved to disk and eventually written to film or another media. And the banks of computer is called render wall."[01]

Software
- OS: Linux
- Job Management: Pixar Alfred

Job System
- In HPC or MPP community, each job is huge. But when doing move rendering, you faces with large amount of relatively small tasks. In any single job, there might be thousands of interdependent tasks. As soon as CPUs on the render wall are freed up, new tasks are fired at idle processors.
- The queuing system is a Pixar product called Alfred, which creates a hierarchical job structure or tree of multiple tasks that have to run in a certain order.

Work Flow
"The artist shows their work, the director wants more of this or that and it goes back and forth many times,” says Wilkie. “It’s the review cycle that drives the way things look and that drives our job work. In that way each tiny bit gets better and better, then perfect, and we move on to the next item.” [01]

Processing Scale
- Job Scale : 10K jobs and 1.3~1.4 M tasks per day
- Data Scale : 12M/Frame, 288M/Second and 17.28G/Minute ...
- Speed : 7~8 G/Second for about one Month

[Reference]

- Data Center Aspects

01. Processing Avatar
02. Data Center Lessons from Avatar
03. Data Crunching Powerhouse behind Avatar
04. One Data Center to Rule Them All
05. Overheard: Avatar's Data Center
06. Data Center Plays Supporting Role in Avatar
07. Avatar, Hollywood and the Data Center
08. Weta Digital's Cluster Ranking among Top500 systems

- Special Effect Aspects

11. Avatar, the Game Changer
12. ILM Steps Into Making Avatar Visual Effect

- Partner's News Report


21. HP - Behind the Magic of Avatar
22. NetApp - Weta Digital and NetApp Bring Avatar to Life
23. BlueArc - BlueArc Storage Solution Powers Visual Effects Behind Avatar

- HP Blade System

31. HP - What is a Blade?
32. HP Cluster Platform 3000BL DataSheet
33. HP Official Page on BL2x220c
34. BL2×220c Video Introduction
35. Blog on Inside BL2X220c

2/02/2010

Collection Framework in .Net/Java/C++

Collection framework is an essential part of modern programming platform library and it's used in daily coding work as developer. But C++, Java and .Net use different terms to represent collection concepts, if you have to switch your coding environment among these platforms, you may feel confused sometimes.

In this article, I will try to summarize those collection framework related terms and concepts in each platform and give a uniformed taxonomy table for convenient referencing.


-->
C++
Java
.Net
List
Array Backed
[unsynchronized]
[synchronized]
Link Backed
[link list backed]
Deque
[var array backed]
[opt-bounded link list backed]
[link list backed]
N/A
Queue
[fix array backed]
[var array backed]
[unbounded link list backed]
[unbounded q with delaying]
[opt-bounded link list backed]
[opt-bounded link list backed]
[unbounded link list backed]
[unbounded, ordered]
[var array backed, ordered]
[a rendezvous channel]
Stack
Set
[ordered, tree indexing]
[ordered, hash indexing]
[ordered, skip list backed]
[CopyonWriteArraylist backed]
[compact, ordered]
[hash table backed]
[hash table with insert order link]
[TreeMap backed, sorted]
[Has Math Set Operations]
Map
[thread-safed hash map]
[skiplist backed, sorted]
[compact sorted]
[unsynchronized]
[synchronized]
[hash map with double links in insertion order]
[Red Black tree indexing, sorted]
[hash map using weak keys]
[var array indexing]
[var array indexing]
[hash indexing]
[hash indexing]
[binary tree indexing]
[link list indexing]
[hash and var array indexing]
Bit


From the upper table, it's clear that .Net lag far behind Java in terms of collection framework, especially when thread contention and synchronization are considered. In my personal perspective, the most critical problem of .Net collection framework is its lacking of well considered design - the name convention is in chaos and misleading, limited flexible implementations of each collection interface.

[Reference]
Java
01. wiki on Java Collection
02. Java Collection Tutorial
03. Java Collection Documentation

.Net
11. System.Collections
12. System.Collections.Generics
13. System.Collections.Specialized

C++
21. STL summary
22. STL in VC++