Felix's profileWALDEN LAKEPhotosBlogListsMore ![]() | Help |
|
4/22/2008 java api 帮助文档 chm 1.5 1.6 中文版英文版Sun 公司提供的Java API Docs是学习和使用Java语言中最经常使用的参考资料之一。但是长期以来此文档只有英文版,对于中国地区的Java开发者来说相当的不便。目前Sun 公司正在组织多方力量将此文档翻译成中文,并于2005年10月31日在Sun 中国技术社区(http://gceclub.sun.com.cn/)正式发布第一批中文版Java API文档(包括java.lang和java.util类库API 文档的中文版)。经过将近10个月的努力,目前我们已经将Java SE 5.0的全部API文档中文化。开发人员可以通过Sun 中国技术社区的网站在线浏览相关文档,也可以将全部文档下载到本地以方便检索和使用。 J2SE DK & API下载 J2EE DK & API下载 JDK1.6API中文版(全)
JDK1.5API中文版(全) 相关网站 4/21/2008 找回 显示桌面 快捷方式把“快速启动栏”中的“显示桌面”删除的人实在不少,想找回这个快捷方式的方法比较烦琐, 打开“记事本”程序,在其中输入如下内容: 以下方法更好更方便: 其实除此之外,还有一个更加方便的方法:点击“开始→运行”, 在“运行”框中键入“regsvr32 /n /i:u shell32”回车, 在弹出框点击“确定”,当系统提示“Shell32中的DllInstall成功”时, 再次点击“确定”,“快速启动栏”里的“显示桌面”又回来了! PS:“收藏夹”里的网站是需要经常访问的,有没有想过把它贴到桌面上? 点击“开始→运行”,在运行框中输入“Iexplore -channelband”回车, 桌面上就会弹出一个“收藏夹”工具栏,非常方便。 F1~F12在Windows系统中的作用F1到F12。不过你知道所有这些键的作用吗?你知道这些键怎样为你节省时间吗…… F1: 如果你处在一个选定的程序中而需要帮助,那么请按下F1。如果现在不是处在任何程序中,而是处在资源管理器或桌面,那么按下F1就会出现Windows的帮助程序。如果你正在对某个程序进行操作,而想得到Windows帮助,则需要按下Win+F1。按下Shift+F1,会出现"What's This?"的帮助信息。 4/14/2008 Direct 3D 10 系统--概述与技术专业分析注:这篇文章是MS在SIGGraph上发表的论文,很好很强大,翻译很辛苦 点击http://download.microsoft.com/download/f/2/d/f2d5ee2c-b7ba-4cd0-9686-b6508b5479a1/Direct3D10_web.pdf下载原文 摘要 本文描述了第四代PC平台上图形图像单元(GPU)的系统构架。与上一代图形管道相比,新的管道有了重大改变,引入了一个新的可编程阶段(stage)用于生产额外的图元,并把图元流保存到内存中;扩展了所有可编程阶段的功能,涉及到顶点、图片内存资源,以及新的储存格式。此外,我们还描述了API、运行时以及实现新管道的着色语言的结构性改变。解决当前系统中的缺陷,是我们设计的基本思想。文章不但描述了重要设计抉择背后的原理,同时也描述了那些最终被否决的方案。 1.前言 过去10年,OpenGL和Direct3D所依赖的渲染管道构架已经取得了重大发展。最近5年中,随着从固定管道到可编程管道的过渡,发生了许多戏剧性的变化。虽然变化的进程很快,但每一步都反映出了设计者在通用性、性能以及成本上所做出的妥协。 我们一直在努力了解以及构建一个系统,来解决许多程序中对图形加速器的需求(呈现图形、CAD、多媒体处理,等等)。但是,我们更想把注意力集中在交互式娱乐应用中。这些程序需要管理数十亿字节的艺术品,包括几何体、纹理、动画数据以及着色程序,占用大量系统资源(CPU、内存、带宽),以可交互的速率渲染丰富的、充满细节的图片。在处理海量数据的同时,保证渲染的灵活性,是对设计者的重大挑战之一。在系统设计的方方面面,都可以反映出我们对这个问题的解决方案。 与上个版本的Direct3D一样,Direct3D 10同样是在应用程序开发者、硬件设计师以及API/运行时构架师三方的合作下设计的。在三年多的设计过程中,合作者之间详细的交流是无价的,让我们更深入了软硬件部署的代价,以及在大量不同硬件进行权衡。在开发Direct3D 10的过程中,调查显示应用程序开发者通常受以下限制的困扰,以及用来缓解这些问题的策略: 1. 状态(state)改变的代价过高。改变任何类型的状态(顶点格式、纹理、shader、shader参数、混合模式,等等)都会付出很大代价。优化方法通常是通过查询对象状态来排序,减少API状态改变次数;减少外观的改变;或者使用基于shader的技术,使用shader来决定状态。对于后者,例子之一就是把多张纹理打包为一张纹理地图(texture map)(也称为纹理地图集),通过纹理坐标变换,来索引相应的子纹理。 2. 硬件加速器性能变化太多。 应用程序不得不编写一系列分支语句,以保证在不同硬件上都能正常运行。这些问题会影响到程序的特性设置,资源管理,算法精度,以及储存格式。 3. CPU和GPU之间频繁的同步。传统的图形管道允许有限制的重新使用管道当前产生的数据,作为下一个处理步骤的输入数据。Render-to-texture就是这种机制的最好例子之一,所渲染的图片接下来能被当作纹理使用,最小化CPU的干涉。但是,产生新顶点数据,或者创建立方贴图就需要CPU与GPU进行更多的协调和通信,降低了效率。 4. 指令以及数据类型的限制。通常都以精度和所支持的流程控制指令来衡量vertex shader,同样的方法也用来衡量pixel shader,但是,无论是pixel还是vertex shader都不支持整数指令。此外,出于对pixel shader精确性的要求,还指定了浮点算法。应用程序要么不使用这些额外的功能,要么模仿他们的使用。基于表格功能的计算就是例子之一。 5. 资源限制。 纹理读取的次数、纹理范围、程序指令,等等,都受到限制。应用程序不得不压缩算法,或者把它们分为多个shader pass。因此,还出现了对自动划分shader程序的研究。 2.背景 我们的系统建立于PC,工作站以及游戏机平台上的应用程序可编程渲染管道。当前的图形管道分为两个编程阶段,一个用于处理顶点数据(vertex shader),一个用来处理像素或片断(fragment or pixel shader)。在Lindholm2001里描述了设计早期vertex shader的思想和折中。除了细小的差别以外,pixel shader也是按这样的轨迹来设计的。可以把顶点以及像素着色器的发展分为4代(包括Direct3D 10),如表一所示: 通过挖掘顶点和像素片断之间的独立性,硬件管道实现了很高的处理吞吐量。大多数顶点和像素着色器都是以并行的状态来处理相互独立的顶点和像素片断。典型的硬件实现中pixel shader的数量要比vertex shader多很多,反映出典型的渲染过程中,像素处理的工作量要比顶点多很多。与vertex shader相比,这种特性将影响pixel shader的性能,因为pixel shader被过多的复制了。 可编程管道直接使用了较低的抽象层,比如OpenGL或Direct3D。这些抽象层隐藏了不同硬件管道实现之间的差别,提供了一个方便的接口。对特定的平台来说,比如游戏机,它的硬件管道与PC平台相比是不同的,底层细节也是由这些抽象层来暴露。 我们把这些抽象层称为运行时(runtime),并且通过它所提供的API对他进行控制。运行时为设备提供了独立的资源管理(分配内存,控制生存期,初始化,虚拟技术,等等),所有纹理贴图,顶点缓冲,状态改变以及和硬件加速器的通信都通过特定设备的驱动程序来完成。对可变成管道来说,运行时还加入了对照色程序的抽象和管理任务。 由于早期可编程处理器对指令储存空间的限制,为了在有限资源内,最大化对硬件的控制,不得不使用类似于汇编的语言来编写照色程序。但是,随着硬件功能的增加,需要一种高级的编程抽象来提高程序员的生产力。一种与C类似,并且添加了对潜在渲染管道进行定制的编程语言满足了这种需求。此外,还发展出了一些其他的语言,利用浮点处理器和GPU内存带宽来完成渲染以外的一些计算,但是,我们不打算在这篇文章里对这些应用进行讨论。 虽然新的编程语言有必要与CPU编程语言(特别是C)类似,但我们还是进行了一些重要的修饰。举例来说,硬件结构和编译模型更像是一台虚拟机,汇编着色语言扮演了独立于硬件的中间语言(IL),而不是特定的机器语言。在离线环境下,Microsoft HLSL之类的高级语言被编译为IL,在程序运行时,通过驱动程序内建的翻译器,实时转换为目标硬件的指令。需要注意的是,OpenGL shading language使用了一种不同的方法来完成运行时的编译过程。 另一个重要的区别是,着色程序并不是孤立的程序,通过一个运行在CPU上的程序来协调渲染管道,它们通常是共同(in concert)执行的。 此外CPU程序还以纹理或填充寄存器常量的方式,为着色程序提供参数。 虽然本文没有具体描述特定硬件新图形管道的构架,但图形管道的设计很大程度上都是根据硬件实用性以及多硬件并行处理来设计的。此外,当前硬件实现的结构体系也将延续或者影响我们的设计。 3.图形管道 Direct3D保留了通用硬件加速器的3D管道结构。我们添加了两个新的阶段,并对其他的阶段进行了简化或者进一步归纳(generalized)。基本的图形管道如图1所示。为了保证文章的连续性,我们将讨论图形管道的每一个阶段,而不是只讨论新增的两个阶段。为了和以前的术语一致,使用了通用的术语,比如顶点(vertex),纹理(texture)以及像素(pixel),但需要注意,这些术语只表示普通用法中的某些特定含义。 Input Assembler(IA)从附加到顶点缓冲上的8个输入流中接收1D的顶点数据,并且把数据项转换为规范的格式(比如,float32)。可以为每个流指定独立的顶点结构,每种结构最多包含16个域(也称为元素,element)。每种元素可以由1到4个基本数据项组成(比如,float32s)。通过读取当前的有效流来装配(assembled)顶点。一般来说,将会连续的从顶点缓冲中读取顶点数据,但是,如果指定了索引缓冲,那么每个流将使用共享的索引来计算每个顶点缓冲中顶点数据的偏移值。指定索引可以带来额外的性能优化,顶点处理器将根据索引值计算结果,通过用索引值作索引的结果缓存,可以避免使用相同索引重新计结果(译注:这里的结果因该是指顶点数据序列)。 此外,IA还提供了一种机制,允许IA高效的复制对象n次。这种机制是实现instancing的解决方案,把包含k个顶点的数据块(block)复制n次。同时,将使用当前的实体(instance),图元(primitive),以及顶点id对图元数据进行“标记(tagged)”,在可编程阶段,可以访问这些id,以便计算变换,材质等参数。 Vertex Shader(VS) 通常用来把顶点从模型空间变换到裁剪空间。VS读取一个顶点,输出一个顶点。VS与其它可编程阶段一样,有一些共同的特性,包括支持扩展的浮点、整数、控制类型,可以访问128块内存缓冲(纹理)以及16个参数(常量)冲。我们会在第四节详细讨论这些通用核心(common core)。 Geometry Shader(GS) 把同一图元的所有顶点作为输入,产生新的顶点或者图元。输入和输出图元的类型不一定要匹配,但对着色程序程序来说是固定的。以发射额外图元对象的方式,GS程序可以增加输入图元的数量,每一次调用(per-invocation)最多产生1024个32-bit的顶点数据。三角形和线段被输出为连续的顶点带。在一次调用中,GS程序可以输出1个以上的图形带,或者删除输入的图元,不进行任何输出。GS程序同样可以在不产生新几何体的情况下,把额外的属性附加到图元上,比如为每个图元计算额外的属性。由于可以访问当前图元的所有顶点,因此,计算三角形平面方程(triangle’s plane equation)之类的几何属性将会容易。 除了输入图元之外,还可以处理三角形和线段的邻接顶点。每个三角形包含三个顶点,以及三个邻接顶点,而每条线段则包含2个顶点以及2个邻接顶点。对于三角形和线段来说,邻接顶点将作为顶点缓冲格式的一部份,当指定(渲染)了带邻接的图元拓扑之后,IA会对提取邻接顶点。 Stream Output(SO)将把GS输出的顶点信息复制为4个连续的输出缓冲子集。理想情况下,SO的输出能力(不带索引)应该和IA(8 streams * 16 elements)的输入能力相匹配,但硬件代价是不合理的。SO只能输出一个1~16元素的流,或者4个单一元素的流。此外, IA可以读取8或者16bit的数据类型,并把他们转换为float32,而SO只能写入原始的32-bit的数据类型。但是,数据类型转换和打包可以在GS程序中轻易实现,减少了固定功能的支持。 Set-up and Rasterization Stage(RS) 是一个功能固定的阶段,用来处理剪切(clipping),剔除(culling),透视划分,观察点变化,图元设置,裁剪(scissoring),深度偏移,以及片断(fragment)生成。现代GPU设计总是包含某种形势的早期深度处理(z-cull,hierarchical-z)。我们将明确讨论这种优化,因为对应用程序开发者来说,它变的不太透明了。RS的输入是单一图元的顶点以及属性,输出一系列像素片断。 Pixel shader程序指定了通过顶点属性插值产生片断属性的方式(no interpolation, non-perspective-corrected interpolation, or perspective-corrected interpolation)。现代GPU通常支持多采样抗锯齿。当一个片断不包含像素的中心时,需要很小心的指定属性赋值行为,因为中心点的值有可能超出范围。通过片断边界,可以使用赋值限定器(质心centroid)来指定所需的值。 Pixel Shader(PS)读取单一像素片断的属性,输出包含1~8个属性(颜色)以及任意深度值的单一片断。每个属性值(元素)要么被分别写入单独的颜色缓冲中(称为渲染目标),要么完全丢弃(不输出片断)。一般情况下,深度和stencil值来自于RS。PS可以可以替些深度值,但无法改变stencil值。无论是丢弃像素还是重写深度值,都有可能影响RS中的深度处理优化(depth-processing optimizations),因为这样做会改变片断的可见性。 Output Merger(OM)接收来自于PS的片断,执行普通的 stencil和深度测试操作,以及渲染目标混合。OM为一个统一的depth / stencil缓冲以及8个其他的渲染目标(属性缓冲)指定了约束点(bind point)。Pixel shader必须分别为每个渲染目标输出单独的值(不支持多点传送)。此外,所有的渲染目标都共享一种混合功能,但是,可以对每个渲染目标独立的激活或者屏蔽混合。 引用: 内存结构以及数据流 现代GPU很大程度上都在处理持续性(retained)的数据结构,包括顶点和索引缓冲,纹理贴图,渲染目标,以及depth/stencil缓冲。GPU通常把这些数据储存在直接连接到它自身的高性能内存系统中。数据结构的类型包括1D到3D的图片、 2D的立方贴图(所有贴图都可以选择是否包含mipmap层次),以及1D同族(homogenous)或不同族(heterogeneous)的索引以及顶点缓冲。为了提高效率,Direct3D 10对这些数据结构进行了统一,统称为资源。性能在两个方面得到了提升:首先,在一个单独的渲染pass中,可以增加处理数据的范围;第二,增加了易用性,可以在第一个pass中产生资源数据,然后在接下来的渲染pass中使用这些数据。 单pass渲染效率的提高得益于几个方面。首先是数组化资源(arrayed resources)。纹理以及渲染目标将被创建为一个同类型资源的线形数组(最多包含512个元素),并且作为纹理或者渲染目标,约束到图形管道上。用于处理纹理的着色指令将包含由着色器计算(shader-computed)的数组索引。这减轻了应用程序开发者把多张图片打包为一张纹理,以及控制纹理坐标选取子纹理的工作量。但是,纹理数组队对打(解)包尺寸不一致的的图片不一定有用,应为数组中的元素都应该具有相同尺寸。 当把一个渲染目标的数组约束到OM时,将为GS中的每个图元计算目标数组索引。这允许GS把图元分类(或者复制)到不同的数组元素中。使用一个pass,把环境渲染到包含6个2D渲染目标的立方贴图就是例子之一。当处理环境中的几何体时,由GS决定把图元渲染到立方贴图的哪个面,并且为每个面输出(issue)一次图元。需要注意,GS的渲染目标数据选择机制与PS的多渲染目标输出是独立的。 为了激活render-to-cube-map以及简化数组的使用,我们为资源引入了view的概念(resource are extended with the notion of a view),要么选择资源中的一个子集(e.g 选取数组中的一个元素),要么把额外的类型数据绑定到部分类型化(partially-typed)的资源上。对后一种情况来说Direct3D 10允许创建不受特定元素类型约束的资源(e.g float16,snorm 16,etc)。这在一定程度上允许了储存类型的“转换”,数据类型可以改变,但数据类型的大小不能变(e.g 不能把两个float16当作一个float32 来对待)。不能直接把资源约束到管道上;而需要通过view来绑定。同一资源的两个不同view可以同死约束到管道上。 在接下来的pass中使用渲染好的立方贴图是multipass渲染或重复渲染的一个例子,它们都是由Direct3D 10更加灵活的资源模型来实现。另外一个类似的有用特性就是render-to-vertex-buffer。实现方法之一就是把顶点缓冲作为渲染目标(使用一个view)连接到管道上,使用着色器中的一个阶段来计算新顶点数据,并且把它当作颜色熟悉数据传递到余下的管道,输入渲染目标。这种方法的复杂性在于:数据尺寸以及顶点元素类型一致性(4 x float32)的限制, 相对简单操作却需要使用管道的多个阶段(e.g VS and PS),以及如何把1D顶点数据映射为2D渲染目标的问题。Driect3D 10应用程序使用view来选择顶点缓冲中邻近的子区域,并把它作为宽度为n,高度为1的2D渲染目标,子区域的最大宽度为8K个元素。 流输出的特性提供了交替(alternative)处理连续1D输出的能力。流输出的特性之一就是支持丰富的输出格式,举个例子来说,可以输出相当于每个顶点16 x 4x float32个元素的数据,也意味着更大的缓冲(128MB vs. 128KB)。流输出不支持随机访问(分散scatter)输出流中的数据,相反渲染目标的方法却可以,通过绘制点和使用VS修改渲染目标点坐标的方法来控制寻址。出于这些原因,两种方法都是很有用的。 为了支持重复计算,根据资源将会连接到图形管道的哪一个约束点(bind points),我们放宽了资源系统规定参数(constraints)的范围(i.e IA buffer, VS/GS/PS texture, SO buffer,以及OM render targets),并把view作为适配器(e.g 渲染到一个单独的mipmap层次,或者3D纹理中的2D片)。然而,这些适配器并不是完全通用的:2D资源不能当作1D资源来处理,由单一元素组成的同族资源不能转变为非同族的资源,比如多元素顶点缓冲。这些限制主要是为了防止对整个资源结构的多重定义(reinterpretation),以便硬件实现优化储存层次。同样,同一资源不能同时作为输入和输出数据的限制仍然存在。 3.2 储存格式 虽然在着色器上操作的都是32-bit的数据(浮点或者整数),但是我们提供了丰富的数据储存类型来减少内存占用以及带宽。如果数据类型不是8-bit的整数倍,那么将被和其他类型的数据打包到一起,组成8-bit的整数倍数据。几乎可以使用所有格式来处理顶点缓冲,纹理,流输出(使用手动转换和打包),以及渲染目标。下表列举了这些数据类型。 Unorm,snorm,以及float16(half)是已经被广泛使用的格式。虽然float16对高动态范围(hight-dynamic range)图片的应用很有吸引力,但他需要消耗过多的储存空间,以及内存带宽。Direct3D 10提供了两种可选的32-bit打包方式:两个float11(R,G)和一个float10(B)的组合,以及一种共享指数?(shared-exponent)的格式—R、G、B每个元素9-bit,指数5-bit。这些类型被限制为正数,可以提供与float16一样地动态范围(10个数量级 order of magnitude)。对于低精度的情况来说,11-11-10的格式是渲染HDR颜色数据的目标(destination)格式,而共享指数的格式则被限制为用来进行纹理操作的源格式。共享指数的格式使用了一种比较复杂的编码方式来避免人工效果(artifacts),因此被限定为只读的。 除了这些简单的压缩格式之外,Direct3D 10还增加了一种4x4 texel block compression (S3TC) 格式。这种格式一到四元素的版本,分别可以提供8:1,6:1,以及4:1的压缩率。包含三到四个颜色元素的格式适合于低动态范围(low-dynamic-range)颜色,而二个元素的格式则适合于切线空间的法线图数据。 3.3设计考虑 另外还有几个构架设计决定也是值得讨论的。 与前一代的技术相比,Direct3D 10要求所有特性都必须由硬件来实现。但其中有两个例外的地方:代价昂贵的32-bit浮点纹理过滤,以及包含多采用(multisampler)抗锯齿的渲染纹理格式。这增加了实现提供者的负担,但也反映出应用程序开发者更注重性能,而不是如何解决特性难题。强调硬件对重要格式的支持,增加了他们支持各种不同应用程序的可能性。 从管道与核心API中移除了所有可以通过可编程体系实现的传统固定管道功能。包括顶点变换,光照,点精灵,雾,以及alpha混合。虽然使用软件可以轻易模拟固定功能的特性,但我们相信为了减少复杂性,应该通过其他的库来实现这些功能,而不是核心API。 尽管我们对管道进行了比较大的改动,但固定管道中一些重要的部分仍然存在。在早期的考虑中,我们曾希望把IA也作为完全可编程的部分,允许实现复杂的索引风格或者顶点布局(layouts),但最终我们认为这些额外的复杂性不一定是有用的。相反,VS的内存读取功能允许在VS中实现复杂的索引方案(indexing schemes);事实上,可以只计算顶点的id,而不从IA中读取任何数据。不管怎样,出于性能的考虑,我们仍然保留了一个强大的IA,它在管道中的位置和功能可以为硬件在管理与顶点相关的内存通信时提供便利。 对于GS来说,涉及到许多复杂的设计问题。其中,比较重要的管道性能权衡之一,就是在保持顺序操作的情况下实现并行。GS保留了输入数据的顺序,因此,多个并行执行的GS单元不能发射出超出顺序(out of order)的图元。这需要对并行的实现做一些变化:缓冲他们的输出,按照输入顺序依次处理整个缓冲。高效的缓存管理,可以根据输出数据的上限,以及GS程序的能力,来指定一个较小的(译注:缓冲)界限(bound)。1024个32-bit值的最大限度(ceiling)是硬件代价和有效放大率(amplification)的折衷,比如,挤出(extruding)三角形的边。毫无疑问,使用GS来进行更大的尺度缩放——比如镶嵌(tessellation)——是很有诱惑力的,但是,我们预料这将会导致性能的迅速降低。 在应用中,GS包含了和RS同样多的功能。虽然我们希望GS执行族划分(homogeneous devide),观察变换,等等。但在这些操作之前进行剪切是不切实际的,因此,在剪切时,GS-RS进行了划分。GS执行一些剪切设置,e.g 计算顶点到模型剪切平面(model clip-plane)的距离,之后,连同顶点在裁剪空间的坐标,一起传递给RS。由于没有精确定义过固定功能的RS顶点处理精度和准度设置,因此对GS来说,虽然误差不大,但无法精确模拟变换,来产生图片空间(image-space)的坐标。这限制了GS的通用性,无法实现一些基于图元的图片空间坐标的算法。 最后,固定功能对OM的限制也是经常讨论到的。OM单元是唯一的同时支持内存读写(read-modify-write)的阶段,这也是可编程单元经常需要使用的特性之一。有人曾提出把OM的功能合并到PS中。但是,管理复杂管道要承担的风险,以及最大化内存系统的效率的需求,都没有理由证明这种合并是有必要的。由于PS的计算都是在像素片断上执行,而混合(blend)操作是基于采样来计算,因此,多采样(multisampling)进一步复杂化了结构。促使PS依据采样粒度来执行,对性能有重要意义。此外,使用提前的depth和stencil遮挡优化,也能极大的提高性能。 Shader Model 4.0 在以前的Direct3D版本中,可编程管道阶段都是通过每个阶段独立的虚拟机来实现,i.e.,顶点和片断处理器。每个虚拟机都被描述为一个基于寄存器的冯.诺依曼式处理器(register-based Von Neumann-style),包含一组和汇编语言类似的指令,作为交互阶段之间的通信的输入和输出寄存器,通用寄存器(也称为临时寄存器),以及一组连接到纹理之类资源的资源绑定点。 Direct3D 10定义了一个称为“公共核心(common core)”的虚拟机,作为每个编程阶段的基础,如图3所示。这个虚拟机保留了以前模型中的许多特性,比如基本的4 –tuple寄存器,以及浮点运算操作,此外,还增加了以下特性: *32-bit的整数指令(数学运算,位运算以及转换); *通用和索引寄存器将使用统一的内存池(4096 x 4); *独立的不过滤或者过滤内存读取指令(加载和采样指令); *不相关(decoupled)的纹理绑定点(128)和采样状态(16); *支持阴影贴图采样; *多层(16)常量(参数)缓冲(4096 x 4); 以上几点,就是显卡功能的主要增加部分。这个统一的模型,能让GPU上各种算法,逻辑和流程控制指令更接近于CPU。寄存器,纹理绑定点以及指令储存空间都得到了显著的提升,将不会是未来几年,困扰开发者的问题。随着资源量的增长,为了不影响性能,硬件实现将发生一定的线性退化。 很显然,随着纹理绑定点的增加,并不需要增加相同数量的独特纹理过滤组合(unique texture filtering combinations)。相反,我们将减少采样阶段的耦合,用单独的对象和采样指令来指定纹理和对其进行采样的采样器。通过load指令,以非标准化寻址(non-normalized addresses)的方式,可以读取未经过滤的纹理。 满足常量储存空间的增长和高效更新常量的需求,是一个挑战。当前系统的问题在于高效的更新单独的常量单元,以及管道化(pipelining)更新的操作两方面。当需要在多个shader程序之间转换时,这个问题会更加严重,每一次都需要重新加载与新shader相关的所有常量。其中,很明显的解决方案之一,就是以不同的频率来每次更新一个常量组(e.g 每帧一次,每个对象一次,每个对象实体一次)。这样,我们就能把常量储存空间分为独立的缓冲,同时,把更新常量与把常量绑定到管道的操作分离开。分离这些操作,允许(注:硬件)实现更好的完成两种操作的管道化。因为这些操作将等同于处理纹理资源,我们考虑过随纹理移除(remove)或统一(unifying)常量。 但是,在许多重要方面,常量和纹理的引用方式是不同的。通常,常量的访问频率比纹理高的多,同时,对一组顶点或者像素来说,将使用相同索引。相反,纹理的访问频率则比较低,此外,索引值(纹理坐标值)也是不同的。这表示在实际的硬件实现中,处理常量和纹理的方式是截然不同的。 还有一个不太明显,但对处理核心来说同样重要的地方,就是数据的呈现方式,算法精度,以及(注:数据)行为和以前的版本相比,都有更加严格的规范。因为大部分人都只把着色程序,常量以及其他管道阶段认为是应用程序艺术创作内容的一部分,而没有认识到他们是执行引擎(execution engine)的一部分。因此,为了保证这些内容在不同实现间的可移植性(portable)以及不同代系统间的兼容性,有很大压力。当然,这也反映出了可编程着色所取得的成功。 我们尽可能的在所有地方都避免了使用自定义的行为,而遵守CPU标准。为了获得精确的行为,我们花了几年时间,转向IEEE-754[IEEE 1985]定义的单精度浮点数据呈现方式。对这一代的显卡来说,基本的运算操作(加,减,乘)都精确到1 ulp(而不是IEEE-754中定义的0.5ulp)。除法和平方根精确到2ulp。非规格化数将被近似为0 (Denormalized numbers are flushed to zero)(但是将被定义为float16类型的数据),并且完全实现了IEEE-754文档(NaNs,无限大)。部分差异是由于实现代价和实用性的考虑而产生的,在设计中,我们放在第一位考虑的是在不同硬件实现间创建良好定义的(well-defined)、一致的行为,其次才是在合理的硬件代价之下,提高精度。 其中比较大的设计决定争议之一就在直接采用IEEE-754特定行为(special behavior)。在前一代(shader model 3.0)的系统中,我们就引入了这一行为,但对于那些依赖于把NaNs近似(flushed)为0的系统来说,带来了一些与可移植性相关的问题。虽然我们考虑了添加一个独特的模式来允许特定的抑制(suppression of specials),但最终我们决定:让未来所有的硬件都支持这个功能,虽然在很长一个时期内都将付出昂贵的维护代价,但能在短期减少shader开发的复杂性。 这个严格的规范不仅限制了可编程单元,还将影响到过滤、光栅化,subpixel precision,数据转换,混合操作等各方面规则的定义。我们的目标有两个:对应用程序的开发者来说,保证行为的一致性和可预言性(predictability)。 为了实现这些目标,需要仔细讨论关于NaN-propagation,算法优化或者内存操作,包括0和1的系数???等等(Pursuit of these objectives necessitated detailed discussions about NaN-propagation, optimizations of arithmetic or memory operations involving coefficients of 0 and 1, etc)。总的来说,我们尽量在对性能有重大优化的地方达成妥协。 4.1 Stage-Specific Functionality 每个独特的着色阶段可能会有一些独特功能,来扩展普通行为。这些特点包括输入和输出属性寄存器的结构差异,以及额外的指令。对VS来说,16x4浮点数据元素的输入和输出结构,定义了公共核心。 GS可以读取上面这个值6倍数量的顶点,因为它不但必须读取一个三角形的所有顶点,还必须访问3个邻接顶点。由于GS可以输出一个以上的顶点或图元,它可以使用其它阶段的流模型:把值累积(accumulated)在输出寄存器,在程序结束时产生输出信号。我们添加了一条emit指令,作为把累积的结果输出给下一阶段的信号。同样,我们还增加了一条cut指令,作为一条图元带结束的标志。GS使用一条编译时配置指令(compile-time configuration directive)来指定最大输出量。每个输出的顶点都可以包含多达32个4 x float32的元素,作为RS的输入,并且接下来再作为PS的输入。这个值是vertex shader的两倍。这些额外的资源将把裁剪和剔除信息传递给RS,同时也可作为传递给PS的基于每个图元数据的额外信息。 PS有32x4个输入寄存器,但只能在GS处于激活(active)状态时才能完全使用它们。如果GS没有处于激活状态,那么PS只能使用来自于VS的16x4个值作为输入。这些输入值将包含编译时的指令,用来指定对每种属性的赋值(插值)方式。PS的输出直接连接到8个渲染目标上,因此,它有8x4个输出寄存器,外加一个深度寄存器。PS添加用于丢弃像素的指令,避免把这些像素渲染到渲染目标上,此外还将添加计算图像空间(image-space)微分(derivatives)的指令。只有PS阶段包含内建(built-in)的屏幕空间概念,因此,即使VS和PS都包含纹理采样的指令,但它们并不包含用来计算mipmap过滤的LOD指令,也不包含微分指令。当条件表达式在像素间发生变化时,在流程控制语句中的微分行为将会出问题(ill-defined)。因此,通过编译时的强制,不允许在非标准(non-uniform)流程控制中使用微分指令。 最后一组支持数据交换的特性是为IA和RS之类的固定功能的阶段而设计的。举个例子,IA产生一组系统生成的值(system-generated values):顶点,实体,图元id,同时RS产生一个值用来指定某个多边形是正面还是背面。类似的,RS接受来自于shader的系统插值数据(system interpreted values),比如图元中每个位置的纹理坐标,剪切和剔出距离,以及渲染目标数组索引。系统生成的值,声明为相应的系统生成名称(system-generated name)之后,作为可编程阶段的输入数据。相反,系统插值数据是通过在可编程阶段把输出数据定义为相应的系统插值值的名称(name of the system-interpreted value)来生成。这些值可能会在shader所用的众多输入输出寄存器中产生不利影响,因此某些情况下必须对它们进行定义,否侧将返回错误结果(e.g., RS需要从各种属性中分辨出位置信息)。共享其他类型的寄存器用来输入和输出保证了整体构架更加规则,同时避免浪费资源, 虽然在可编程阶段中创建一种机制来管理固定功能阶段(e.g. 混合模式,depth or stencil configurations)是很有吸引力的,但当前,我们我们只允在对一定阶段进行这些操作。 Core API and Runtime 我们把API和运行时分为了两个独立,但是完整的部分:核心API/运行时以及着色语言/状态管理系统。我们将讲述新运行时中几个比较重要的部分,以及与当前系统相比的变化。 核心API以及运行时作为硬件系统上的一个薄抽象层(thin abstraction layer),扮演了low-overhead的角色。可编程管线的转变和固定功能冗余功能的移除,戏剧性的简化了API和运行时。API为以下操作提供服务:分配以及修改资源;创建视图状态并把他们绑定到管线的不同部分;创建shader并且把他们绑定到管线;控制管线不可编程部分的状态;初始化渲染操作;通过检索统计(retrieving statistics)或资源内容,从管线中查询信息。 StateManagement 我们要解决的主要问题之一,就是减少应用程序到硬件之间传输指令的端到端的消耗。我们把指令分为两类:分配或释放资源的类型,以及改变管线状态的类型。其中,我们特别关心后者,因为他们在应用程序中将频繁出现。我们使用了一个简单的模型,来把这些指令传递给管线。运行时将为应用程序的指令分配一块内存缓冲。每条通过运行时到驱动的API指令,都将转变为特定的硬件指令,并储存到这个缓冲里。当缓冲被填满或另一个操作需要同步渲染状态的时候(e.g 读取一个渲染目标的内容),整个缓冲就被提交给硬件。 在过去10年的PC系统上,运行时模型几乎没变化。我们的目标是在不需要额外处理的情况下,把指令附加到缓冲中。在过去,这显然是不切实际的,因此,我们尽量了解其中的原因,并且寻找和修改设计方案,让我们的模型接近这个目标。 我们发现在运行时和驱动两方面,都有一些原因,会带来额外的处理。 *API和硬件之间的不匹配 *延迟处理的风格(deferred processing style) * 错误传输应用程序请求 上面三个原因中,第三个是最容易解决的,只要在应用程序开发者,运行时,驱动,以及硬件提供者之间达成一致,就能极大的改善情况(e.g 不是10%而是数十倍的提高)。 第二个问题涉及到传统的实现策略:当图元提交到管线时,分辨哪些状态改变是累积的。这样做的优点是可以成批的处理一组状态的改变,同时,相互独立的(非正交的non-orthogonal)状态实现可以一起处理,而不是每次处理相关改变中一个独立的状态。他还允许丢弃冗余状态。但是,这些功能都需要占用额外的CPU周期来记录改变,并且进行全局控制。非正交的灾难性例子之一,就是纹理绑定的改变,需要重新编译shader,以适应新的纹理格式。我们提倡尽可能减少对硬件状态实现的依赖性,把对冗余状态改变的处理,划分到运行时中一个可选的层来处理。 第一个问题涉及到多种类型的不匹配。重编译shader时的正交不匹配??就是例子之一(orthogonality mismatches as exemplified by the shader recompile example),当然还有很多种其他情况。原因之一与状态改变的粒度(granularity)有关。无论OpenGL还是以前的Direct3D本版,都把状态改变的粒度定义的非常精细(fine granularity),e.g,改变一个混合因子,或者改变一种采样模式。我们已经进行了许多尝试,努力把状态改变集中到一起,以提高效率,比如,使用OpenGL中的显示列表或者Direct3D 9中的状态块(state blocks)。虽然这些解决方案可以工作的很好,但是,我们选择了一种更简单的方法。丢弃固定管线的冗余功能已经大大减少了总的状态种类数量。通过分析,我们发现当前过细的粒度划分,并没有什么优点,因此,我们把分散的状态组织为了较大的,相关的,不可变的聚合体(immutable aggregates)成为状态对象(state objects)。这样可以建立一个清晰的模型,指明哪些状态应该是独立的,哪些不是,从而减少完全重新装配管线所需的API调用数量。我们发现使用了这些新API的程序,能提高匹配的准确性。 Direct3D 10定义了5个状态对象:InputLayout(vertex buffer layout),Sampler,Rasterizer,DepthStencil,以及Blend。这样的划分,反映了状态逻辑上的关系,如果应用程序需要单独频繁的改变某个独立状态,那么可以进一步对此进行细分。当创建状态对象时,驱动将为此状态创建相应的硬件表示(e.g,一组寄存器值),当对象需要绑定到管线时,相应的命令就被复制到命令缓冲中。某些硬件实现可能会在硬件中保留(缓存)状态表示,从而减少把API命令转换为硬件命令的代价。 在第四节中,我们描述了更新管线常量时可能出现的问题。他实际上只是管道故障(hazards)中,比较普通的一种。当某个值即将被使用,但之前的值仍在使用时,同样可能导致一些故障。解决这个问题通常使用的方法就是,使用额外的储存空间来保存新值,同时,重定向引用,指向新的缓冲。 另一种故障发生在从刚写入数据的资源中读取数据时。比如,把之前的渲染目标作为纹理来使用。当进行这样的交换时,要求渲染指令已经执行完毕,同时,所有数据已被写入渲染目标,这样才能从中拾取数据。与前面的描述的更新故障不同,read-after-write故障更难,或者根本不可能在API和运行时中解决。为了避免在这种情况下对管线造成延迟(stalling),应用程序在构建时,就应该尽量避免渲染操作需要立即读取之前渲染目标中的数据。 Validation and Error Handing 部分API设计的原则是避免发生错误,或者避免对某些使用频率较低,但代价很大的操作进行错误检查,比如对创建对象进行检查,而不是对使用对象检查。虽然我们对性能的需求,不允许通过API对已部署的程序进行过多错误检查。这里,我们的错误检测和报告策略是把错误分为两类,致命和非致命的。在任何版本的运行时中,都会对致命错误进行检测和报告。非致命错误的检测则是通过一个单独的监听层来完成,它对运行时来说是透明的。这个验证层最初是在程序的开发时使用,当部署程序的时候,开发者通常会屏蔽它。为了检测错误,它通常还会寻找和报告API的不理想(non-ideal)使用类型。可以对这个验证层进行控制,指定他对哪些错误进行探测和报告。 错误分化的方法确实有一点点模糊(ambiguity):哪些错误总是会被检测,哪些没有被检测出的错误将有怎样的行为?未定义的错误行为稍后可能会转变为一种unintended but relied upon (defacto) behavior。再者,如果运行时没有检测出某个特定的错误,那么驱动将忽略性能代价,尽力避免出现灾难性的硬件错误。我们将努力鉴别出这种错误,并且在运行时中对他们进行检测。另外,在渲染时,我们不会进行任何错误检查,e.g,错误检测将被延迟,直到一个Draw命令完成。致命错误保护扩了深度缓冲和渲染目标尺寸不匹配,同时把一个资源绑定到读取和写入操作上,等等,不致命的错误则包括:不匹配的shader类型联接(签名),以及数据格式声明不匹配。 在当前着色编成模型发展的阶段,捕获着色程序运行期间的错误代价是很大的。因此,我们定义了完善的行为,比如,当数组越界时返回0,来获得一致的行为。从长远来看,硬件将会支持异常机制。 Resource Mapping and Access API和管线设计比较复杂的问题之一,关系到如何在CPU和GPU之间共享资源。举个例子,无论Direct3D还是OpenGL都允许顶点缓冲映射到程序的地址空间中,而不管缓冲具体是分配在系统内存还是显存中。但是,分配的位置将会导致性能的巨大差异。现代图形加速器上,显存和加速器之间的带宽可能超过50GB/s,而PCI-E则只能为系统和GPU之间提供2.8GB/s的带宽。 此外还有一些其它的问题。比如,CPU对所访问的数据缓存与否,同样会带来很大的性能差异。同时,是否write-combine,也会造成同样的差异。另外,当GPU访问资源时,为了提高空间的一致性,资源加载的方法可能是form row-order to another(e.g, Morton, boustrophedon, or pi orders), or tiled [Blinn 1990; Hakura and Gupta 1997; Igehy et al. 1999]。我们认为这些方法本质上都是为了保证分割模式(tiling pattern)对应用程序透明,因此,当资源映射到CPU时,应该是以线形方式组织的。由于分割模式同时也依赖于访问模式,2D和3D纹理之间是有差异的,而且这种差异不仅仅是CPU和GPU之间的不同造成的。出于对性能的重要用影响,我们尝试暴露所有这些功能,但由于其本身的复杂性,却很难让应用程序真正获得性能上的提升。我使用了一个简单的模型,尽力提供了尽可能多的功能。 我们对特定资源的写入者和读取者进行了分类,e.g,GPU vs.CPU以及read vs. write。如果最初只有一位客户访问资源,那么问题就变得简单了,因为可以采取对主要客户比较有利的方式,来分配资源。同样,如果可以预知资源将被用来读取或写入,也会有很大帮助。幸运的是,这样的描述完全可以覆盖大部分典型的应用范围。比如,渲染目标和纹理主要由GPU进行访问,并且分别被限制为写入目标和读取资源。另一方面,顶点缓冲的使用就比较复杂了。虽然静态的集合体主要由GPU来读取,但是动态的几何体则常常作为动画的一部分,先由CPU来生成,在由GPU进行处理。这些操作将导致频繁的CPU写入和GPU读取处理。 Direct3D 10根据使用类型,把资源分为3类:default, immutable, dynamic,以及staging。Default对应比较简单的纹理,渲染目标,或者只由GPU访问的静态顶点缓冲。Default类型资源的初始化,通常需要复制另一资源的数据来进行。Immutable类型的资源不允许复制操作,但是在创建时,提供了另一种方法来进行初始化。Default和immutable类型的资源都不能映射到应用程序地址空间中,让CPU对它们进行访问。动态资源不但可以在管线中使用,也允许映射到CPU,进行只写的操作。适合于生成顶点数据,或者进行视频解码,等等。最后,staging类型的资源只允许CPU对其进行访问,但是,可以对它的数据进行复制。Staging类型的资源对于初始化或者获取只有GPU能访问的资源时比较有用。 为了检查资源可以绑到管线的哪个位置,将在创建资源时,对资源的布局(placement)和编码方式进行验证。这些分类包括:顶点缓冲,索引缓冲,常量缓冲,shader资源(纹理),输出流缓冲,渲染目标,或者depth/stencil缓冲。这样的分类有两个目的:为驱动提供资源布局的信息,简化使用资源时的错误检查。 HLSL 10 高级着色语言广泛,迅速的被人们所接受,无疑显示了这种语言的重要性。为了支持新管线的特性,我们对高级着色语言――HLSL也提出了一些新的目标。简单的说,我们希望应用程序开发者使用HLSL高效的开发程序,而不需要了解虚拟机的复杂细节,比如,寄存器名称或常量缓冲索引。我们把目标精炼为以下几个小点: 1. 应用程序不需要了解资源是如何配置和分配的。 2. 把bind-by-position作为主要的绑定机制,而不是现在的bind-by-name。 3. 程序员不再需要编写中间(汇编)语言代码 第一个目标主要用于解决下面这个问题:当前系统中,应用程序开发者需要学会控制常量储存空间中的参数布局。开发者需要对多个shader进行全局分配和布局(global allocation and placement),以便在多个shader之间共享某些变量。通过在每个管线阶段添加的多个常量缓冲,我们相信,编译器有足够的信息能自动对缓冲进行布局,当然,程序员还是要控制把参数分配到常量缓冲中的操作。我们对语言进行了扩展,允许把缓冲名作为参数的一部分,进行声明。 第二个目标则是设计思想的改变,主要与性能和未来的进一步发展有关系。Bind-by-name主要用于几个地方:对多个shader之间输入和输出数据进行匹配,让vertex shader的布局与vertex shader进行匹配,等等。虽然运行时可以让源数据和目标数据之间的名字匹配操作进行的比较高效,并且实现源—目标对缓存,但我们觉得这些只会带来不必要的复杂性,并且为运行时添加额外的负载。新系统中,将在多个方面发生变化。Shader的输出和输入将与签名(signature)相关,这和C总的函数原形有些类似。只有当前一阶段的输出和后一阶段的输入兼容时,管线才是有效的。兼容意味着输入和输出间element-by-element的对应。这里,我们允许下一阶段的管线,不使用上一阶段拖尾的(trailing)的输出数据。 Bind-by-postion通用影响到IA和SO阶段的顶点缓冲绑定。但是,对这几个阶段,我们将创建独立的对象来封装(encapsulate)绑定,让代价较大的匹配操作只在创建时运行一次。 第三个目标是比较具有争议性的,它表示我们的实现将不支持使用使用中间语言编写的shader作为输入。我们认为着色程序的发展已经达到了一定复杂程度,因此,手写的IL很难比编译器产生的代码高效。此外,当我们改进优化技巧,联接,以及与驱动的交互时,无法保证对手写IL代码的支持和兼容。作为诊断技术,系统将支持编译器生成中间代码作为输出,但是,我们不允许应用程序开发者修改编译器的输出,并把它注入到运行时中。 如何最优化编译器生成的代码性能,有很多问题。首先,是优化的范围,驱动可能允许把中间语言转换为特定机器语言时进行优化。随着shader复杂性的增加,确保开发者在优化之上,有充分的控制权,改变操作的执行顺序是相当重要的。特别是需要保证关键代码的恒定性(invariance),多pass算法应该能生成同样的中间值,以便把这些值复制到分散的shader中。我们考虑了几种在源码上指定中间值的方案,比如,要求以一种特定的方式来编译子程序,而不管这个子程序是否是内连的。但是,研究最终让我们选择了更加常见的方法:使用与驱动编译器相关的,可选择的,定义良好的优化级别。 请注意,我们首选的使用模型是在编写shader时,编译HLSL代码,在程序运行时通过驱动编译IL代码。这样的目的是希望减少程序运行时,编译shader所花费的时间。但是,在运行时再把HLSL编译为IL也是可以的。 HLSL-FX 10 我们注意到,编程管道的成功,改变了人们的观点,shader程序不但是引擎的一部分,同时,也是艺术家创作工具之一。为了适应这方面的应用,Effect(FX)系统对HLSL进行了扩展,允许使用它来初始化管线的固定功能部分。这和CgFX以及Cg所描述的方法很类似。虽然这些方法有共同的基础,但HLSL-FX是进行了革新的。我们的目标是,FX首先需要满足实时运行的需求,其次,才是作为内容创建者的工具。基于一些历史原因,这两者在很多方面都是由差别的。创作工具常常通过牺牲性能来换取灵活性,而我们的运行时则把性能放在第一位。 通过我们积累的经验和努力,FX系统在易用性和性能方便都有了充分的提高。最终FX,HLSL,API,运行时,以及管线都紧密的结合到一起,作为互补的解决方案。我们同样对频繁的状态操作进行了改变,分离了名字查找以及匹配操作。 再次来讨论处理状态改变的方式。构建应用程序的方法之一是渲染一系列几何体,每个几何体都有其各自的管线配置(一个Effect)。通过设置常量缓冲中的shader参数,纹理绑定,以及其他固定功能的状态,来传递参数给Effect。为了最大化性能,应用程序应该使用一个Effect来绘制所有物体。这是场景管理系统中,传统的状态排序解决方案。但是,对一个Effect来说,可能有几个层次的参数,比如,当前时间和观察点是属于per-frame的状态;纹理或顶点数据则是角色的静态状态;位置和姿势则是对象的动态状态,等等。我们使用了一个单独的常量缓冲来储存shader每个层次的参数,当绘制物体时,将直接绑定保存静态参数的常量缓冲,保存动态参数的缓冲则要经过更新后再绑定。 在实际应用中,应用程序并不能总是通过Effect来排序对象。通常还可能有其他的机制,控制着绘图,比如物体的远近程度,透明度,等等。我们已经把Direct3D 10系统状态改变的代价进行了充分缩减,因此,重新配置整个管道也是很高效的。 3/23/2008 全奖有哪些 经济资助 美国奖学金key word: 美国奖学金 经济资助 大家习惯把那些个经济资助都叫做奖学金,实际上呢~奖学金只是国外大学给学生经济资助的其中一种~拿奖学金一共有多少种涅~ 1.助学金(全额奖学金,又叫全奖) 英文叫做Fellowship(FS) 是所有经济资助中最高的一种,不仅学费生活费全免,还有其他的补助,你基本不用花一分钱,还有多余的钱钱拿~呵呵~但是呢,美国每年只有100多所学校有提供全奖的资格给1000个优秀的国际学生~所以竞争是非常激烈的,但是没关系~我们中国学生的综合素质水平还有智商本来就很有优势,努努力还是有希望的~我说的是本来就非常优秀的哈,世界前1000~也不是什么人都能达到的~很多朋友条件很一般还想申请名校申请全奖,其实是非常不实际的。 2.奖学金(这才是奖学金哦) 英文叫做Scholorship(SS) 这个钱钱说不好,有的多有的少,我们习惯叫他半奖,表现为学费或者其他杂费的减免,这个奖学金的名额相对来说多了很多,我觉得只要是条件过得去的中国学生,好好准备自己的材料完全有可能申请到这个,但是我接触到的很多朋友不是找中介就是自己套模版,完全千篇一律失去自己的特色,老外每天看到一样格式的ps什么心情哈~中介也一样套模版,而且他根本不了解你也没心思去深入了解你,根本不可能帮你写出只属于你自己的精彩PS。这也是为什么很多人条件不错结果一点奖学金也没拿到,或者只拿到一点点。 3.学费减免 英文叫做Tuition waiver(TW) 这个钱钱一般是公立大学才有的,我们都知道公立大学对自己州内的居民(美国人,不是留学生)的学费是远远低于外地来的学生和国际学生的~就好比我们北京的学生考北京的大学有照顾-_-!这个是针对比较优秀的学生,可以将其学费降低到州内学生的水平,就好比外地学生成绩好就给你北京学生的待遇~就是一个借读变正式读的区别~还是能省掉不少钱的。 4.助研助教 英文叫做Research/Teaching Assistantship(RA/TA) 我个人是比较喜欢这个的,学习实践加钱钱~完美~实际上就是你用自己的劳动去赚钱钱,这个一般来说能申请到的都是条件比较优秀的学生。 5.校内工作 英文叫做On-Campus job 就是学校的其他杂工啦,比如打扫卫生~比起TA,RA是差一些,但是一年大概能收入$8000,也能减轻不少经济压力,这个主要是经济有困难的学生申请。 6.校外打工 英文叫做Off-Campus job 这个一般是要学生去了学习一年后才能去申请的打工,工资相比其校内工作高出2倍左右~也是很多留学生的选择。 1/29/2008 XBOX360拆机和拆X支架换螺丝全图片详细教程(modify)修好了三红机, 正常工作至今, 为避免自己的360以后也三红, 决定还是拆了 X支架, 拍了图片攻略, 想拆机的朋友可以参考一下.. 本功略完全参考zhao96师傅的"国外最有效的三红修理方法"的帖子制作, 主要目的是为了让需要看攻略修机的朋友表跑到海外论坛了, 直接在XBOX-SKY就可以看到拆机过程.. 感谢提供工具和各类材料规格的师傅, 特别感谢提供"胶带法"去除原装导热硅胶的师傅, 用胶带真是比酒精方便多了... 鞠躬! 工具: 拆上下底板, 机壳背面卡口, X型支架卡口: 最小号的一字钟表螺丝刀. 拆主机: T-9, T-10梅花螺丝刀. 材料: 导热硅胶: arctic silver (没有买到, 我用coolermaster的黄金导热硅胶代替) 螺丝&垫片: 5X10mm沉头螺丝, 圆头螺丝都可以, 5mm螺丝配套垫片. (如果垫片外径过大, 压到线路板走线, 建议大家务必按照"国外最有效的三红修 理方法"中介绍的方法: 2尼龙垫片+2金属垫片分别安装在主板2边 ) 导热硅胶刮片: 我是用coolermaster导热胶的包装盒做的.. 显存散热片: 也是coolermaster的, 我是太无聊了才加的.. 还有: 感谢最早提出: 加显存/内存散热片, 还有剪去机箱背面风扇网格的方法的师傅! 鞠躬! (显存散热片完全可以加, 机箱背面网格完全可以不剪, 虽然最早提出此项改进措施的师傅剪了, 我也跟着剪了.. 感觉风量是大了, 而且机箱背面样子更狠了.. 有气势了.. 但还是建议大家剪之前请再三思考.. 谢谢 ) 补充nec88师傅的擦硅胶新方法: 在清理原先导热硅胶的时候,找到了新方法!散热片, 直接用3M黑胶布有粘性的那面用力擦!很快就清理干净了!比一层一层的粘快多了! 而且我用的还是大兴的3M黑胶布哦~~ 芯片也可用这方法,但擦的力气要温柔,轻 轻的~轻轻的~很快也就清理干净了。 以上攻略除了"螺丝没有上紧的状态开机3红变2红等2分钟", 还有"冷却后稍上紧螺丝" 这2个步骤之外, 其他跟修复三红的过程是一样地.. 以后等有机会再修三红机的时候 再拍照片来修改..
1/13/2008 The Remotest Distance in the WorldIf the remotest distance in the world is not between life and death surely, If that is not the remotest distance in the world surely, If that is still not the remotest distance in the world surely,
致大海 再见吧,自由的原素! 12/25/2007 My X'mas ScheduleDecember 24th, 2007 上午研读了A Midsummer Night’s Dream(From W. William Shakespeare's Comedy) Shakespeare真的很会搞怪, 不但主角被很涮一顿,连Athens(αἱ Άθῆναι)的小市民也不放过.太搞笑了. 涉及了太多的Iliad(ΙΛΙΑΣ)中的内容,我又得把Homeros翻出来找,还把Bible也要回来了. 中午商量去司门口的教堂,不想有一同学正从那边回来告知路上超级堵,无赖计划泡汤 我们可得赶回来睡觉,Christmas Eve 太冷啦.通宵还是算了. 下午不曾想开了党会讨论转正问题,作为共党好同志的我没看到通知(麻烦老大,您通知早点好不,4点开会,2点才贴) 入会被狠批一顿,但谁敢阻我转正之路,一切顺利呀.(不枉我写了那么多的汇报,总结) PostScript:唯一不爽,开个会拖到近7点, & So Boring. 晚上继续Shakespeare's Dream December 25th, 2007 今天可是要祝福中国一个新的Java developer的诞生咯. 整天的听Linkin Park写 code. 感觉真是爽. 键盘敲的指尖冰凉, 思想的热浪在脑海中不断的涌动,描绘我的Developer生活. And right now I write this down. 为了不忘却2007的所有毁灭与一切重生. PS: also can see So What on hi.baidu.com 12/22/2007 Eros in the Bible当读《圣经》的时候,至少有两件重要的事情需要记住。第一, 12/21/2007 The Twelve Days of Christmas
Lyrics
Postscript:
12/18/2007 Wedding Day
这歌声真的是相当的直入心脾 提供下载: 学习揉弦有几种方法,你可以试试,可能会有利于学习揉弦: 11/28/2007 waiting for the toefl's bulletintime through my eyes so fast as i could not see what was going on then. toefl is coming, i have already arrange the test in February or March, after the gre day, i lose my passion no the english words and do not have any analytical writing practise at all. once i can not persist, i would backward. and the score comes out 1300/3.0 Review my whole life, i get everything i wanted, but for reward, almost nothing. i should say sorry to one who raises or helps me. Post script: Suffering more ... 10/17/2007 世界著名骗局一览表加的夫巨人骗局 9/27/2007 WAP包月-手机上qq wap www msn UCMAI BBT及手机上IE下载、电脑上网设置一、手机上CMWAP方法 9/19/2007 Steve Jobs在2005年对Stanford毕业生的演讲
英文原文(来自斯坦福大学网站)http://news-service.stanford.edu/news/2005...obs-061505.html Steve Jobs, CEO of Apple Computer and Pixar addresses the Stanford University graduating class of 2005 at commencement exercises in June. Steve Jobs说,你得找出你爱的 (You've got to find what you love.)。 以下是苹果计算机公司与Pixar动画制作室执行长Steve Jobs 在2005年六月12日对全体史丹佛大学毕业生的演讲内容。 ====================================== 今天,有荣幸来到各位从世界上最好的学校之一毕业的毕业典礼上。 我从来没从大学毕业。说实话,这是我离大学毕业最近的一刻。 今天,我只说三个故事,不谈大道理,三个故事就好。 第一个故事,是关于人生中的点点滴滴怎么串连在一起。 我在里德学院(Reedcollege)待了六个月就办休学了。到我退学前,一共休学了十八个月。那么,我为什么休学? 这得从我出生前讲起。我的亲生母亲当时是个研究生,年轻未婚妈妈,她决定让别人收养我。她强烈觉得应该让有大学毕业的人收养我,所以我出生时,她就准备让我被一对律师夫妇收养。但是这对夫妻到了最后一刻反悔了,他们想收养女孩。所以在等待收养名单上的一对夫妻,我的养父母,在一天半夜里接到一通电话,问他们「有一名意外出生的男孩,你们要认养他吗?」而他们的回答是「当然要」。后来,我的生母发现,我现在的妈妈从来没有大学毕业,我现在的爸爸则连高中毕业也没有。她拒绝在认养文件上做最后签字。直到几个月后,我的养父母同意将来一定会让我上大学,她才软化态度。 十七年后,我上大学了。但是当时我无知选了一所学费几乎跟史丹佛一样贵的大学,我那工人阶级的父母所有积蓄都花在我的学费上。六个月后,我看不出念这个书的价值何在。那时候,我不知道这辈子要乾什么,也不知道念大学能对我有什么帮助,而且我为了念这个书, 花光了我父母这辈子的所有积蓄,所以我决定休学,相信船到桥头自然直。当时这个决定看来相当可怕,可是现在看来,那是我这辈子做过最好的决定之一。当我休学之后,我再也不用上我没兴趣的必修课,把时间拿去听那些我有兴趣的课。这一点也不浪漫。我没有宿舍,所以我睡在友人家里的地板上,靠着回收可乐空罐的五先令退费买吃的,每个星期天晚上得走七哩的路绕过大半个镇去印度教的Hare Krishna 神庙吃顿好料。我喜欢HareKrishna神庙的好料。追寻我的好奇与直觉,我所驻足的大部分事物,后来看来都成了无价之宝。 举例来说: 当时里德学院有着大概是全国最好的书法指导。在整个校园内的每一张海报上,每个抽屉的标签上,都是美丽的手写字。因为我休学了,可以不照正常选课程序来,所以我跑去学书法。我学了serif 与san serif 字体,学到在不同字母组合间变更字间距,学到活版印刷伟大的地方。书法的美好、历史感与艺术感是科学所无法捕捉的,我觉得那很迷人。我没预期过学的这些东西能在我生活中起些什么实际作用,不过十年后,当我在设计第一台麦金塔时,我想起了当时所学的东西,所以把这些东西都设计进了麦金塔里,这是第一台能印刷出漂亮东西的计算机。如果我没沉溺于那样一门课里,麦金塔可能就不会有多重字体跟变间距字体了。又因为Windows抄袭了麦金塔的使用方式,如果当年我没这样做,大概世界上所有的个人计算机都不会有这些东西,印不出现在我们看到的漂亮的字来了。当然,当我还在大学里时,不可能把这些点点滴滴预先串在一起,但是这在十年后回顾,就显得非常清楚。我再说一次,你不能预先把点点滴滴串在一起;唯有未来回顾时,你才会明白那些点点滴滴是如何串在一起的。 所以你得相信,你现在所体会的东西,将来多少会连接在一块。你得信任某个东西,直觉也好,命运也好,生命也好,或者业力。这种作法从来没让我失望,也让我的人生整个不同起来。 我的第二个故事,有关爱与失去。 我好运-年轻时就发现自己爱做什么事。我二十岁时,跟Steve Wozniak在我爸妈的车库里开始了苹果计算机的事业。我们拼命工作,苹果计算机在十年间从一间车库里的两个小伙子扩展成了一家员工超过四千人、市价二十亿美金的公司,在那之前一年推出了我们最棒的作品-麦金塔,而我才刚迈入人生的第三十个年头,然后被炒鱿鱼。 要怎么让自己创办的公司炒自己鱿鱼? 好吧,当苹果计算机成长后,我请了一个我以为他在经营公司上很有才乾的家伙来,他在头几年也确实乾得不错。可是我们对未来的愿景不同,最后只好分道扬镳,董事会站在他那边,炒了我鱿鱼,公开把我请了出去。曾经是我整个成年生活重心的东西不见了,令我不知所措。有几个月,我实在不知道要乾什么好。我觉得我令企业界的前辈们失望-我把他们交给我的接力棒弄丢了。我见了创办HP的David Packard跟创办Intel的Bob Noyce,跟他们说我很抱歉把事情搞砸得很厉害了。我成了公众的非常负面示范,我甚至想要离开硅谷。但是渐渐的,我发现,我还是喜爱着我做过的事情,在苹果的日子经历的事件没有丝毫改变我爱做的事。我被否定了,可是我还是爱做那些事情,所以我决定从头来过。 当时我没发现,但是现在看来,被苹果计算机开除,是我所经历过最好的事情。成功的沉重被从头来过的轻松所取代,每件事情都不那么确定,让我自由进入这辈子最有创意的年代。接下来五年,我开了一家叫做 NeXT的公司,又开一家叫做Pixar的公司,也跟后来的老婆谈起了恋爱。Pixar接着制作了世界上第一部全计算机动画电影,玩具总动员,现在是世界上最成功的动画制作公司。然后,苹果计算机买下了NeXT,我回到了苹果,我们在NeXT发展的技术成了苹果计算机后来复兴的核心。我也有了个美妙的家庭。 我很确定,如果当年苹果计算机没开除我,就不会发生这些事情。这帖药很苦口,可是我想苹果计算机这个病人需要这帖药。有时候,人生会用砖头打你的头。不要丧失信心。我确信,我爱我所做的事情,这就是这些年来让我继续走下去的唯一理由。你得找出你爱的,工作上是如此,对情人也是如此。 你的工作将填满你的一大块人生,唯一获得真正满足的方法就是做你相信是伟大的工作,而唯一做伟大工作的方法是爱你所做的事。如果你还没找到这些事,继续找,别停顿。尽你全心全力,你知道你一定会找到。而且,如同任何伟大的关系,事情只会随着时间愈来愈好。 所以,在你找到之前,继续找,别停顿。 我的第三个故事,关于死亡。 当我十七岁时,我读到一则格言,好像是「把每一天都当成生命中的最后一天,你就会轻松自在。」这对我影响深远,在过去33年里,我每天早上都会照镜子,自问:「如果今天是此生最后一日,我今天要乾些什么?」每当我连续太多天都得到一个「没事做」的答案时,我就知道我必须有所变革了。提醒自己快死了,是我在人生中下重大决定时,所用过最重要的工具。因为几乎每件事-所有外界期望、所有名誉、所有对困窘或失败的恐惧-在面对死亡时,都消失了,只有最重要的东西才会留下。提醒自己快死了,是我所知避免掉入自己有东西要失去了的陷阱里最好的方法。 人生不带来,死不带去,没什么道理不顺心而为。 一年前,我被诊断出癌症。我在早上七点半作断层扫描,在胰脏清楚出现一个肿瘤,我连胰脏是什么都不知道。医生告诉我,那几乎可以确定是一种不治之症,我大概活不到三到六个月了。医生建议我回家,好好跟亲人们聚一聚,这是医生对临终病人的标准建议。那代表你得试着在几个月内把你将来十年想跟小孩讲的话讲完。那代表你得把每件事情搞定,家人才会尽量轻松。那代表你得跟人说再见了。我整天想着那个诊断结果,那天晚上做了一次切片,从喉咙伸入一个内视镜,从胃进肠子,插了根针进胰脏,取了一些肿瘤细胞出来。我打了镇静剂,不醒人事,但是我老婆在场。她后来跟我说,当医生们用显微镜看过那些细胞后,他们都哭了,因为那是非常少见的一种胰脏癌,可以用手术治好。所以我接受了手术,康复了。 这是我最接近死亡的时候,我希望那会继续是未来几十年内最接近的一次。经历此事后,我可以比之前死亡只是抽象概念时要更肯定告诉你们下面这些: 没有人想死。即使那些想上天堂的人,也想活着上天堂。但是死亡是我们共有的目的地,没有人逃得过。这是注定的,因为死亡简直就是生命中最棒的发明,是生命变化的媒介,送走老人们,给新生代留下空间。现在你们是新生代,但是不久的将来,你们也会逐渐变老,被送出人生的舞台。抱歉讲得这么戏剧化,但是这是真的。 你们的时间有限,所以不要浪费时间活在别人的生活里。不要被信条所惑-盲从信条就是活在别人思考结果里。不要让别人的意见淹没了你内在的心声。最重要的,拥有跟随内心与直觉的勇气,你的内心与直觉多少已经知道你真正想要成为什么样的人。任何其它事物都是次要的。 在我年轻时,有本神奇的杂志叫做 Whole Earth Catalog,当年我们很迷这本杂志。那是一位住在离这不远的Menlo Park的Stewart Brand发行的,他把杂志办得很有诗意。那是1960年代末期,个人计算机跟桌上出版还没发明,所有内容都是打字机、剪刀跟拍立得相机做出来的。 杂志内容有点像印在纸上的Google,在Google出现之前35年就有了:理想化,充满新奇工具与神奇的注记。Stewart跟他的出版团队出了好几期Whole Earth Catalog,然后出了停刊号。当时是1970年代中期,我正是你们现在这个年龄的时候。在停刊号的封底,有张早晨乡间小路的照片,那种你去爬山时会经过的乡间小路。 在照片下有行小字: 求知若饥,虚心若愚。 那是他们亲笔写下的告别讯息,我总是以此自许。 当你们毕业,展开新生活,我也以此期许你们。 求知若饥,虚心若愚。 非常谢谢大家。
Stanford Report, June 14, 2005 'You've got to find what you love,' Jobs says Printable Version This is the text of the Commencement address by Steve Jobs, CEO of Apple Computer and of Pixar Animation Studios, delivered on June 12, 2005. I am honored to be with you today at your commencement from one of the finest universities in the world. I never graduated from college. Truth be told, this is the closest I've ever gotten to a college graduation. Today I want to tell you three stories from my life. That's it. No big deal. Just three stories. The first story is about connecting the dots. I dropped out of Reed College after the first 6 months, but then stayed around as a drop-in for another 18 months or so before I really quit. So why did I drop out? It started before I was born. My biological mother was a young, unwed college graduate student, and she decided to put me up for adoption. She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted at birth by a lawyer and his wife. Except that when I popped out they decided at the last minute that they really wanted a girl. So my parents, who were on a waiting list, got a call in the middle of the night asking: "We have an unexpected baby boy; do you want him?" They said: "Of course." My biological mother later found out that my mother had never graduated from college and that my father had never graduated from high school. She refused to sign the final adoption papers. She only relented a few months later when my parents promised that I would someday go to college. And 17 years later I did go to college. But I naively chose a college that was almost as expensive as Stanford, and all of my working-class parents' savings were being spent on my college tuition. After six months, I couldn't see the value in it. I had no idea what I wanted to do with my life and no idea how college was going to help me figure it out. And here I was spending all of the money my parents had saved their entire life. So I decided to drop out and trust that it would all work out OK. It was pretty scary at the time, but looking back it was one of the best decisions I ever made. The minute I dropped out I could stop taking the required classes that didn't interest me, and begin dropping in on the ones that looked interesting. It wasn't all romantic. I didn't have a dorm room, so I slept on the floor in friends' rooms, I returned coke bottles for the 5¢ deposits to buy food with, and I would walk the 7 miles across town every Sunday night to get one good meal a week at the Hare Krishna temple. I loved it. And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on. Let me give you one example: Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer, was beautifully hand calligraphed. Because I had dropped out and didn't have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and san serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can't capture, and I found it fascinating. None of this had even a hope of any practical application in my life. But ten years later, when we were designing the first Macintosh computer, it all came back to me. And we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts. And since Windows just copied the Mac, its likely that no personal computer would have them. If I had never dropped out, I would have never dropped in on this calligraphy class, and personal computers might not have the wonderful typography that they do. Of course it was impossible to connect the dots looking forward when I was in college. But it was very, very clear looking backwards ten years later. Again, you can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life. My second story is about love and loss. I was lucky — I found what I loved to do early in life. Woz and I started Apple in my parents garage when I was 20. We worked hard, and in 10 years Apple had grown from just the two of us in a garage into a $2 billion company with over 4000 employees. We had just released our finest creation — the Macintosh — a year earlier, and I had just turned 30. And then I got fired. How can you get fired from a company you started? Well, as Apple grew we hired someone who I thought was very talented to run the company with me, and for the first year or so things went well. But then our visions of the future began to diverge and eventually we had a falling out. When we did, our Board of Directors sided with him. So at 30 I was out. And very publicly out. What had been the focus of my entire adult life was gone, and it was devastating. I really didn't know what to do for a few months. I felt that I had let the previous generation of entrepreneurs down - that I had dropped the baton as it was being passed to me. I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly. I was a very public failure, and I even thought about running away from the valley. But something slowly began to dawn on me — I still loved what I did. The turn of events at Apple had not changed that one bit. I had been rejected, but I was still in love. And so I decided to start over. I didn't see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods of my life. During the next five years, I started a company named NeXT, another company named Pixar, and fell in love with an amazing woman who would become my wife. Pixar went on to create the worlds first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, I returned to Apple, and the technology we developed at NeXT is at the heart of Apple's current renaissance. And Laurene and I have a wonderful family together. I'm pretty sure none of this would have happened if I hadn't been fired from Apple. It was awful tasting medicine, but I guess the patient needed it. Sometimes life hits you in the head with a brick. Don't lose faith. I'm convinced that the only thing that kept me going was that I loved what I did. You've got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don't settle. My third story is about death. When I was 17, I read a quote that went something like: "If you live each day as if it was your last, someday you'll most certainly be right." It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?" And whenever the answer has been "No" for too many days in a row, I know I need to change something. Remembering that I'll be dead soon is the most important tool I've ever encountered to help me make the big choices in life. Because almost everything — all external expectations, all pride, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart. About a year ago I was diagnosed with cancer. I had a scan at 7:30 in the morning, and it clearly showed a tumor on my pancreas. I didn't even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months. My doctor advised me to go home and get my affairs in order, which is doctor's code for prepare to die. It means to try to tell your kids everything you thought you'd have the next 10 years to tell them in just a few months. It means to make sure everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes. I lived with that diagnosis all day. Later that evening I had a biopsy, where they stuck an endoscope down my throat, through my stomach and into my intestines, put a needle into my pancreas and got a few cells from the tumor. I was sedated, but my wife, who was there, told me that when they viewed the cells under a microscope the doctors started crying because it turned out to be a very rare form of pancreatic cancer that is curable with surgery. I had the surgery and I'm fine now. This was the closest I've been to facing death, and I hope its the closest I get for a few more decades. Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept: No one wants to die. Even people who want to go to heaven don't want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life's change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true. Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma — which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary. When I was young, there was an amazing publication called The Whole Earth Catalog, which was one of the bibles of my generation. It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with his poetic touch. This was in the late 1960's, before personal computers and desktop publishing, so it was all made with typewriters, scissors, and polaroid cameras. It was sort of like Google in paperback form, 35 years before Google came along: it was idealistic, and overflowing with neat tools and great notions. Stewart and his team put out several issues of The Whole Earth Catalog, and then when it had run its course, they put out a final issue. It was the mid-1970s, and I was your age. On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous. Beneath it were the words: "Stay Hungry. Stay Foolish." It was their farewell message as they signed off. Stay Hungry. Stay Foolish. And I have always wished that for myself. And now, as you graduate to begin anew, I wish that for you. Stay Hungry. Stay Foolish. Thank you all very much. 9/14/2007 二十年留学之思考 文/高燕定高燕定语:《城市中国》是个高品味的、面对高知识阶层的刊物,每期一个主题,每篇文章均请业内专家主笔,文、图、编、印、制作均堪称超一流。本人日前应邀为该刊第22期(9月号)“中国教育”专刊撰写唯一的一篇关于“留学”的专文,全文共分五大段:1.为什么要出国?2.自费留学浪潮的兴起 3.为何“良”“莠”学生竞相出国?4.什么时候出国好?5.留学需要长远的科学规划。 为什么要出国留学? 为什么要出国留学?如果在二十年前问到这个问题,你一定会回答说,为了中国的四个现代化建设事业,为了学好国外的先进技术,将来更好地建设祖国。1986年我申请去美国时就是这样对领导说的。可是,惭愧得很,我到美国一呆就是二十一年,直到今年三月才归国。为什么要出国?二十年后的今天已经很少有人认真地问这个问题,也不会用这个问题阻拦你出国,因为在中国,只要是有经济条件的家庭都在准备把自己的孩子送出国。如今,也没有人用冠冕堂皇的大话掩饰自己的“个人主义”欲望。但是,从科学的教育职业规划的角度提出这个问题,理性地思考留学目的还是很有必要的。 二十年前,我在中国科学院某研究所任职,研究所每年有公费名额派遣研究人员出国留学和进修。我当时任助理工程师,是技术人员而非研究人员,在科学院系统里属于非主流。我担忧,如果自己不找机会出去,未来前景不会很光明。于是利用在外地进修的几个月时间,一头钻到图书馆里搞“地下工作”,从当时极其有限的资料里大海捞针地查美国大学的资料。经过几个月的认真研究和准备,申请材料仅仅寄出十天就接到美国来的电话,邀我到美国大学工作。那时候,由美国大学出资到美国进修、留学的都统归为“自费公派”留学。 出国留学需要理由吗?当时一个月几十元人民币的薪水,相比于美国大学提供的上千美元的资助或“奖学金”,这个巨大的差别,使得二十年前的出国确实不需要任何“理由”。没有理由也该出国,不是吗? 那年我三十出头,在当时的留学弄潮儿中尚属低龄。八十年代三四十岁出国留学很正常,美国大学里的同胞总是呼我“小高”。今天的留学生已经大大地低龄化,我在美国见到最小的留学生只有十三岁。现在,自费留学的特点是真正的自费,由父母自掏腰包。每年三四万美元供孩子留洋成为经济勃起的家庭乐此不疲的寻常游戏。 由于中国现阶段教育与社会实际需求的脱节,使学生的个人能力得不到普遍发挥;国内教育及就业资源不足等原因可能是引发大规模留学潮的主因。如果说,二十年前,留学只为大学和研究所里的精英们独享的话,而今,出国留学却已逐渐成了街头巷尾的话题和工薪阶层的行动。 有人说,我们已经走过了人力资本的过程,过渡到知识经济的时代,知识就是金钱,谁的知识越充足,谁就能发展经济、占领市场。在未来的社会里,具备国际化的知识就意味着能在世界上立足,就有发言权!确实,在全球化大趋势的今天,把纷纷将孩子送出国留学仅仅看成是家长们之间的互相攀比是没有足够根据的。 自费留学浪潮的兴起 1981年国务院批转教育部、外交部等七个部门《关于自费出国留学的请示》和《关于自费出国留学的暂行规定》时指出:自费出国留学是我国留学工作的组成部分,自费留学是培养人才的一条渠道。对自费留学人员和公费留学人员在政治上应一视同仁。可见,在此之前,自费留学是被歧视的,在那个讲政治的年代,没有“政治”待遇就没有前途。但是,这个文件也规定了自费留学的范围以及审批程序。对不在“范围”内,又需“审批”的担忧,使当年我在外地进修时,在两三个月的课余时间里偷偷摸摸、神出鬼没地躲在“见不得人”的地方,精雕细琢我的申请材料。只有那个年代的人才能理解“自费”留学者被歧视的窘境。好在,我幸逢“留学春天”的到来。将申请材料寄出后几天,我在中央电视台新闻联播节目中听到了国务院关于鼓励各种形式的出国留学的通知。一个不受学历、年龄、工龄的限制,一个几乎不需“审批”就可以自主地自费留学的时代从此开始。此后十几年间,国家发布了几个文件,正式提出“支持留学、鼓励回国、来去自由”的12字方针,停止了“自费出国留学资格审核”的工作,继而甚至建立了“国家优秀自费留学生奖学金”,这些措施都表现出国家政策由“严管”逐渐变为“放开”和“鼓励”。自费留学生与公派留学人员的比例从之前的15%上升到目前的90%。自费留学生毫无疑问地成了留学生的主体。 80年代初期开始大量以国家公派为主体的留学生的目标是读一个博士学位,这是国家需要和个人利益的较好结合,国家科学发展规划需要大量的高科技尖端人才,留学生希望在国外较长时间,充分体验和享受发达国家的文化科学技术与物质文明。80年代美国经济滞胀,1987年华尔街股市暴跌把美国推到新一轮的经济危机,留学生就业无望。对外国学生而言,毕业意味着失业,选读学时很长的博士学位可以达到久居美国的目的。90年代初美国经济出现奇迹,开始了长达10年的持续稳定的增长。美国的新经济时代悄然出现,就业率快速上升,留学生也因此受益。原来滞留在校园里的博士找到了工作,原来读博士的转硕士学位,迅速离开学校,步入就业市场。美国90年代初蓬勃的就业市场使一代代中国留学生特别是自费留学生体验了读硕士的投入产出比最大,欧美国家的硕士课程大多为一至两年。中国强劲的经济发展也需要更多的管理和其他多元化人才。据统计,目前六成以上的留学生选择就读硕士学位。 留学事业的发展,留学生规模的不断壮大,不仅为中国带来了高端的科学技术,先进的管理思想,还由此衍生出以新东方教育科技集团为代表的与留学服务相关的新产业。“新东方” 作为中国民营教育企业,以其独特的优质教育培训服务,借助日益扩张的留学浪潮,成长壮大为中国教育培训的巨人。新东方在帮助很多胸怀留学梦想的学生打开了通向彼岸的同时,也为自己创造了在美国纽约证交所上市的神话。 为何“良”“莠”学生竞相出国? 常有人说,孩子成绩不好,准备把孩子送到美国读中学,接着考大学。也有的家长计划着,如果孩子高考成绩好,就在中国上个好大学,以后再到国外读研;如果考不上好大学,就送到国外算了。看到在国内“基础”差的学生,出国以后反而成了好学生,很多人不理解。其实,中外教育体系不一样,中国的“高考”教育必然造成重复性的、强制性的模式,使得学生们解题熟练。教育变成了“训练”,考试变成了“比赛”,规则是胜者得奖,优者入学。这样的教育使很多有个性的学生不适应、不接受、以致抵触。 人们普遍认为中国学生基础好,比美国学生强得多。持这种观点的人在评价基础教育时,主要强调数理化基础,忽略文史哲。人们几乎从来不把人文学科列入基础教育的讨论范畴。例如,显然没有人把中国的语文教育与美国的英文教育作比较,得出基础教育水平优劣的结论。 研究世界顶尖名校哈佛大学、普林斯顿大学的招生要求也许有助于了解中西方对“基础”的不同认识。哈佛大学对申请该校本科的要求是学过4学分的数学和4学分的实验科学,数理化生课程一共仅占高中必修所有课时的28%;相似的,普林斯顿大学也仅占约25%以下。这两所大学对考生“基础”课程的要求反映了中美两国不同的教育观,在西方国家,人文学科的课程被认为是很重要的“基础”,以优秀的人文教育为主体的教育才被认为是很好的基础教育和素质教育。其实,对于很多非理工科大学生而言,中学学的很多知识到了上大学、到了社会上根本就用不上。许多非常“优秀”的中学生和理工科大学生、甚至大学教授文理不通的也大有人在,然而他们从来都自认为“基础”很好。 成绩差的学生出国留学后成了好学生,不是因为美国的书好读,美国的大学好上,而是西方教育体系的课程结构较合理,使“偏科”的学生也能成为优秀学生!使得原本综合素质好,但是“功课不好”、在中国教育体系下绝望的学生到了国外也能成为优秀生。 当大量在国内成绩不好的学生出国留学的同时,近年来,一批最优秀的学生由于对美国教育的逐步深入了解和为毕业后的远大发展前景所吸引,开始加入到自费留学的大军中。其中以高中毕业生申请美国大学本科形成最为迅猛壮观的场面。通常,中国高中毕业生的英文词汇量只有3000多个,美国“高考”SAT考试的英文部分的词汇量要求为10000,这个高要求没有难倒中国最好的高中生,他们把香港全年六次SAT考试所有考场的考位报满以后,接着报新加坡、曼谷、首尔等等邻国城市的考点,一直把次年6月的考位都报满。据统计,代表中国优秀高中生的这一群体在本学年度有7000人报考SAT考试。 什么时候出国好? 七八十年代的自费留学生经济拮据,煮一次飯吃一个星期的事情并不罕见。近年来中国的经济崛起使留学进入一个崭新的年代,很多家庭不仅有能力把读中学的孩子送出国,有的甚至在国外开车上学,过着和本土学生同样优越的生活。蜂涌而出的小留学生产生了让人忧虑的种种问题,留学生低龄化的问题曾经热烈讨论了一阵子,并且还将一直讨论下去。核心的问题是什么时候出国好? 这是没有固定答案的,简单的回答是不科学的。孩子什么时候出国与其年龄无关,而应视其个体情况。有些年龄很小的孩子到国外,最后发展得很好;有的20多岁到国外读研究生,却过得痛苦不堪。究其原因,与每个人的性格、爱好、家庭背景、家庭教育、知识与经济基础以及个人和家庭的期望值等都有密切关系。 以美国留学为例,中学生之间的联系比较密切,比较容易学到地道的英语,为小留学生融入美国社会和深入了解美国文化提供了很好的基础。美国学校里正面的传统教育对孩子的人格和正义感的培养很有益处。让孩子从小独立地在美国接受教育,可以锻炼其独立生活的能力,对孩子的成长很有益处。中国学生到美国,可以融入美国的高中教程,毕业时可能达到报考美国顶尖大学的实际水平,还可以根据自己的兴趣爱好和职业市场的情况“随心所欲”地选修专业。不过,年龄小的孩子,世界观还没有完全形成,受到外界的不良影响时不容易把握自己,遇事情绪容易波动,有时还会走向极端。有的学生还会对中国文化、历史和家庭的感情逐渐淡薄。不少家长受到某些媒体的误导,对美国教育存有很大的误解,以为在美国学习很轻松,报考美国著名大学很容易。这样的误解常常使许多家长对孩子抱有不切实际的期望,给孩子带来巨大的精神压力,也有害于亲子关系。思想较为成熟,具有一定的人际交往和独立生活的能力,并且能够承受孤独、自觉用功的中学生是适合留学的。 高中毕业生直接到美国大学读本科有很多优点,因为美国有世界上最好的高等教育。高中生的世界观基本形成,对祖国的历史文化已有足够的了解,对事物具有一定的分析和解决能力。这时年龄尚不太大,容易接受新事物和融入社会。本科学生之间的联系较多,有机会了解美国社会深层的东西,可以对美国社会有较全面的了解。有的学生可以获得部分奖学金,少数学生甚至可能获得高额奖助学金。其实到美国读本科并不容易,甚至比读研究生还要辛苦。美国的大学本科的课程压力很大,如写作、美国历史等文史哲核心课程是外国学生不擅长但又是必修的。在美国通常找不到可以天天讨论功课的室友,学习上都得靠自己。名校的教师给分很严格,有的学生大学头一两年没有适应过来,拿了差的成绩,基本上就决定了以后考不上了研究生的命运。有人就是没有充分认识到这一点,或自我估计过高造成了永远的遗憾。 出国读研究生基本上是没有异议的。大学毕业生年纪较大,世界观已经形成,他们大都有一技之长,或多或少都能获得奖学金,经济上已经独立,学成之后的就业较有保障。不过,大学毕业生20多岁,虽然英文考试成绩和使用英文的能力不错,但是与少年出国的小留学生相比,“乡音难改”,多数人已经养成了改不掉的口音。另外,不少学生有意无意地将他们交际范围局限于中国留学生之间,减少融入主流社会的机会,思维方式和对问题的看法停留在非“国际化”的状态。 总之,每个人的个性差异很大,有的人适合出国,有的人不适合。有的孩子可以很小出国,出去以后发展得很好;有的不适合太早出国,出去以后“堕落”了;有的孩子出国能够得到很大的锻炼,有的孩子出国要受到很大的磨难,经历很痛苦的过程。如果一个孩子在小时候得到过一定的锻炼,那么,他来到美国后就比较轻松;如果孩子在家里受到太多的“关爱”,出国留学的过程就比较痛苦。我接触过很多大大小小的留学生,有的发展得一帆风顺,什么荣誉、奖学金都能拿到;有的磕磕碰碰,总在抱怨社会不公、种族歧视,唯独不愿检讨自己。 留学需要长远的科学规划 在对外国文化和教育状况没有足够了解,在没有足够的心理准备的情况下,在自身不具备充分必要的条件下贸然决定出国,对小留学生来说是一定要遭受痛苦的。最令家长们恐惧的是孩子出国以后浪费青春,学无所成,前途无望。小留学生的问题都是源自能力差:心理承受能力差、独立思考能力差、应变能力差、自制能力差、沟通能力和动手能力差。低齡留学生出现的问题除了家庭教育的原因外,几乎都与其在国内接受的“基础教育”有关:追求升学率而实行的应试教育,重理轻文的“传统教育”使人文教育的严重缺失,等等。 没有进行长期科学的留学规划,就将孩子匆匆送出国是广泛存在的问题。几年前,让很多家长豪不犹豫地送孩子出国上高中、读本科的主要原因是孩子学习成绩不好,难以面对惨烈的高考竞争。眼下,很多人是否送孩子出国的考虑是,如果考上了北大、清华或者其他的“211”就留在国内,等大学毕业读研究生的时候再出去;如果考不上国内重点大学,就送到国外上大学。 如果有一天,他们发现,在国内读书的孩子在校期间除了忙功课之外,还要忙于考托福、GRE、GMAT,将要面对更加激烈的留学竞争;而到美国上大学的学生却近水楼台悄悄地强占先机,大学本科期间可能就有机会在国外大公司实习,大学一毕业不仅有机会直接到美国大公司工作,相比于在国内名校的大学生,也能更轻松地申请美国名校的研究生,那时,他们也许会懊悔当初的决定。 国外大学的奖学金吸引很多优秀的学生放弃国内顶尖名校可以理解。但是,能够投放到中国的大大小小的奖学金毕竟很有限,为什么有那么多优秀的中国学生不惜每年三四万美元的代价,远离家乡、亲人出洋留学呢?除了对国内大学教育和未来就业的忧虑以外,国际化教育的紧迫感、对个人未来发展的考虑是主要的促因。但是,大量家庭和留学生在对国际化教育具有“前瞻性”视野的同时,却存在“留学无规划”的普遍问题。很多留学生不知道出国以后学什么,不知道自己想做什么,上完大学以后能干什么,自己的职业目标是什么?没有科学、理性的职业规划的留学可能造成另一类的痛苦和遗憾。建立有人生目标,有早期职业规划的留学理念是“无痛留学”的基础,是留学顺利、事业成功的保证。
中国教育:迟到的现代化 如果将中国的现代化进程分解成为不同领域的若干个方面,教育的现代化可以说是其中最为曲折和艰难的。在历史上,作为一种竞争性的社会分层机制,中国教育为大多数个体提供了相对公平的向上流动的通道,从而将个人梦想、国家战略和社会兴衰关联起来。然而在最近的一个世纪,相对于工业、农业、国防和科技这些更能通过集中投入而短期见效的“四化”事业,教育的现代化显得迟缓而滞后:“百年树人”的性质决定了这项事业跨越数代的长期性,而它与宏大的社会现代化目标相匹配的专业谱系,更决定了其体制构建的复杂性。中国教育的艰难,不在于教育自身,而在于教育所处的社会困境:一方面,现代化进程中的产生的需求过于复杂多变,另一方面,支撑教育的经济基础长期处于落后状态。中国教育在近现代历史具有那些现代化的条件?而它又因为怎样的原因错失了哪些机会?与此同时,中国教育的挑战也在于:如何在多变的需求和遗留的问题之间取得平衡?如何协调教育在体制、目标、阶段、内容和方式等方面上的关系?如何针对中国社会的独特性,设计一种具有中国特色的教育模型? 9/13/2007 Today, 世界将我抹去首先: 心爱的lamborghini, 陪伴我两年零5天后 在12th Sep, 离我而去. 是哪位小偷大人如此会识货, 楼下的阿姨亦不曾看到. 刚开学不久,新生初进入这个新的小社会, 经常有被骗的,校园里也贴满了教大家防盗防骗之类的告示. 可是,今天却偏偏轮到了我的头上,车没了,平日计算好的时间,上课差点迟到. 再也感受不到隧道里的凉风从头顶飕飕的划过. 其次: 晚上Daddy send me a sm, 说钱已经打到我的卡上. 自习回来寝室我登上toefl的网站上报名,要求NEEA用户ID. 如常登上msn,考试的信息我都记在了里面. 密码或用户名错误,请重试. 吃惊! 再试, 又这样! 我努力的回想,我前几天的所做. 好像不可能去更改密码吧 login the msn spaces, 我的page还在. 但是我无论如何也登录不上了, 密码被盗! 我的头大了, gre toefl的所有重要信息全部记载在上面了,还有msn上的好友们. 瞬间失去的感觉,的确让我很失落. 对策,找回密码,msn申请的早,填的什么东西也记不清了. 备用邮箱也是各个网站上试... 最终的找回已不能给我任何快乐了... 最后: 不得不说,这一天我损失惨重. 一定要注意个人信息的保护, 我找回msn后立即将联系人备份了一遍. 邮箱里的重要的东西也悉数找出来保存好. 这里要推荐个好东东. Microsoft Office OneNote.并且配合 OutLook使用. 除非我的电脑完全挂掉,所有的private的信息都会自动的备份下来. 对于我这样的经常写程序 Or 电脑工作居多的人, OneNote 的确很大的提高工作效率. 难怪我也时常看到 Bill Gates 只要带着电脑都会同时有OneNote的身影. Postscript:这不是AD哦. 8/20/2007 要强记的词组Give the floor to 请…发言;给予发言权 相互尊重,求同存异,平等互利,优势互补,借鉴经验,拓展合作,立足当前,着眼未来respect each other, seek the common ground while putting aside difference, enjoy equality and mutual benefits, complement each other’s advantages, learn each other’s experience, expand the cooperation, stand from the present and look forward to the future The world Health Organization 世界卫生组织 target of terrorism恐怖主义的目标 New Beijing, Great OlympicsEmblem vitality and mobility as well as unity, cooperation, exchange and development. It also resembles the shape of a traditional Chinese artifact known as the "China Heart Unit." The logo was designed by Chen Shaohua, a noted designer in Shenzhen and one of the 13 official emblem designers appointed by BOBICO, and well-known painter Han Meilin, who modified the design by using a calligraphy brush. Kan Tai-Keung, a famous designer in Hong Kong, also contributed to the designing of the emblem.
Motto
a city with a 3,000-year history. The city has taken on a completely new look as it enters the new century. It will embrace the athletes and friends from the rest of the world attending the Olympic Games with great enthusiasm.
Should the Olympic Games be held in China, the most populous nation in the world, the Olympic spirit will be even further disseminated and a new page will be turned in the Olympic history; and the Olympic Movement will show its unique splendor to the world in the new millennium. |
|
|