??xml version="1.0" encoding="utf-8" standalone="yes"?> 假设l过一D|间的使用Q电脑里q行了很多程序,q些E序有些保留在内存中Q有?#8220;暂存”在硬盘中。如果这时候我们不打算使用电脑Q那?#8220;x”?#8220;休眠”Q和“睡眠”的不同点可以体现出来了?/p>
q?也就是说Q如果要让电脑关机,Windows首先要关闭所有运行中的程序,然后关闭pȝ后台的服务,接着向主板和甉|发出Ҏ的信P让电源切断对所有设 备的供电Q电脑彻底关闭。下ơ开机后Q电脑完成自工作Q然后将Windowspȝ载入内存Q接着l箋加蝲其他后台服务Qƈ昄d界面。登录后Q才可以 q行自己的程序,开始用电脑。整个过E因d关闭q头开始启动系l和E序Q因此所需的时间最常?br />
~译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤: W一步: ---------- ?root/project/main目录下创Z个文件main.c,其内容如下: ------------------------------------------------ #include <stdio.h> int main(int argc, char** argv) { printf("Hello, Auto Makefile!\n"); return 0; } ------------------------------------------------ 此时状态如下: [root@localhost main]# pwd /root/project/main [root@localhost main]# ls main.c [root@localhost main]# W二步: ---------- q行 autoscan , 自动创徏两个文gQ?autoscan.log configure.scan 此时状态如下: [root@localhost main]# autoscan [root@localhost main]# ls autoscan.log configure.scan main.c [root@localhost main]# W三步: ---------- 修改configure.scan的文件名为configure.in 查看configure.in的内容: ------------------------------------------------ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) AC_CONFIG_SRCDIR([main.c]) AC_CONFIG_HEADER([config.h]) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT ------------------------------------------------ 解读以上的文Ӟ ------------------------------------------------ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. # AC_PREREQ: # 保使用的是_新的Autoconf版本。如果用于创建configure的Autoconf的版 # 本比version 要早Q就在标准错误输出打C条错误消息ƈ不会创徏configure?/p>
AC_PREREQ(2.61) # # 初始?定义软g的基本信?包括讄包的全称,版本号以及报告BUG旉要用的邮地址 # AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) # # 用来侦测所指定的源码文件是否存在,来确定源码目录的有效?/p>
# AC_CONFIG_SRCDIR([main.c]) # # 用于生成config.h文gQ以便autoheader使用 # AC_CONFIG_HEADER([config.h]) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. # # 创徏输出文g。在`configure.in'的末调用本宏一ơ?/p>
# AC_OUTPUT ------------------------------------------------ 修改动作: 1.修改AC_INIT里面的参? AC_INIT(main,1.0, pgpxc@163.com) 2.d宏AM_INIT_AUTOMAKE, 它是automake所必备的宏Q也同前面一PPACKAGE是所要生Y件套件的名称QVERSION是版本编受?/p>
3.在AC_OUTPUT后添加输出文件Makefile 修改后的l果: ------------------------------------------------ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT(main, 1.0, pgpxc@163.com) AC_CONFIG_SRCDIR([main.c]) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE(main,1.0) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT([Makefile]) ------------------------------------------------ W四? q行 aclocal, 生成一?#8220;aclocal.m4”文g和一个缓冲文件夹autom4te.cacheQ该文g主要处理本地的宏定义?/p>
此时的状态是Q?/p>
[root@localhost main]# aclocal [root@localhost main]# ls aclocal.m4 autom4te.cache autoscan.log configure.in configure.in~ main.c [root@localhost main]# W五步: q行 autoconf, 目的是生?configure 此时的状态是Q?/p>
[root@localhost main]# autoconf [root@localhost main]# ls aclocal.m4 autoscan.log configure.in main.c autom4te.cache configure configure.in~ [root@localhost main]# W六步: q行 autoheaderQ它负责生成config.h.in文g。该工具通常会从“acconfig.h”文g中复制用户附加的W号定义Q因此此处没有附加符号定义,所以不需要创?#8220;acconfig.h”文g?/p>
此时的状态是Q?/p>
[root@localhost main]# autoheader [root@localhost main]# ls aclocal.m4 autoscan.log configure configure.in~ autom4te.cache config.h.in configure.in main.c [root@localhost main]# W七步: 下面卛_q行 automake, 但在此之前应该做一下准备工? 首先 创徏一?nbsp;Makefile.am.q一步是创徏Makefile很重要的一步,automake要用的脚本配|文件是Makefile.amQ用户需要自己创建相应的文g。之后,automake工具转换成Makefile.in?/p>
q个Makefile.am的内容如下: ------------------------------------------------ AUTOMAKE_OPTIONS=foreign bin_PROGRAMS=main main_SOURCES=main.c ------------------------------------------------ 下面对该脚本文g的对应项q行解释?/p>
其中的AUTOMAKE_OPTIONS|automake的选项。由于GNUQ在W?章中已经有所介绍Q对自己发布的Y件有严格的规范,比如必须?带许可证声明文gCOPYING{,否则automake执行时会报错。automake提供了三UY件等U:foreign、gnu和gnitsQ让?户选择采用Q默认等Uؓgnu。在本例使用foreign{Q它只检必ȝ文g?/p>
bin_PROGRAMS定义要生的执行文g名。如果要产生多个执行文gQ每个文件名用空格隔开?/p>
main_SOURCES定义“main”q个执行E序所需要的原始文g。如?#8221;main”q个E序是由多个原始文g所产生的,则必L它所用到的所有原 始文仉列出来,q用I格隔开。例如:若目标体“main”需?#8220;main.c”?#8220;sunq.c”?#8220;main.h”三个依赖文gQ则定义 main_SOURCES=main.c sunq.c main.h。要注意的是Q如果要定义多个执行文gQ则Ҏ个执行程序都要定义相应的file_SOURCES?/p>
其次 使用automake对其生成“configure.in”文gQ在q里使用选项“—adding-missing”可以让automake自动d有一些必需的脚本文件?/p>
q行后的状态是Q?/p>
------------------------------------------------ [root@localhost main]# automake --add-missing configure.in:8: installing `./missing' configure.in:8: installing `./install-sh' Makefile.am: installing `./depcomp' [root@localhost main]# ls aclocal.m4 config.h.in configure.in~ main.c Makefile.in autom4te.cache configure depcomp Makefile.am missing autoscan.log configure.in install-sh Makefile.am~ [root@localhost main]# ------------------------------------------------ W八?/p>
q行configureQ在q一步中Q通过q行自动配置讄文gconfigureQ把Makefile.in变成了最l的Makefile?/p>
q行的结果如下: ------------------------------------------------ [root@localhost main]# ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands [root@localhost main]# ls aclocal.m4 config.h.in configure.in main.c Makefile.in autom4te.cache config.log configure.in~ Makefile missing autoscan.log config.status depcomp Makefile.am stamp-h1 config.h configure install-sh Makefile.am~ [root@localhost main]# ------------------------------------------------ W九?/p>
q行 makeQ对配置文gMakefileq行试一?/p>
此时的状态如? ------------------------------------------------ [root@localhost main]# make cd . && /bin/sh /root/project/main/missing --run aclocal-1.10 cd . && /bin/sh /root/project/main/missing --run automake-1.10 --foreign cd . && /bin/sh /root/project/main/missing --run autoconf /bin/sh ./config.status --recheck running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 configure: creating ./config.status /bin/sh ./config.status config.status: creating Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands cd . && /bin/sh /root/project/main/missing --run autoheader rm -f stamp-h1 touch config.h.in make all-am make[1]: Entering directory `/root/project/main' gcc -DHAVE_CONFIG_H -I. -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c mv -f .deps/main.Tpo .deps/main.Po gcc -g -O2 -o main main.o cd . && /bin/sh ./config.status config.h config.status: creating config.h config.status: config.h is unchanged make[1]: Leaving directory `/root/project/main' [root@localhost main]# ls aclocal.m4 autoscan.log config.h.in config.status configure.in depcomp main main.o Makefile.am Makefile.in stamp-h1 autom4te.cache config.h config.log configure configure.in~ install-sh main.c Makefile Makefile.am~ missing [root@localhost main]# ------------------------------------------------ W十?/p>
q行生成的文?mainQ?/p>
------------------------------------------------ [root@localhost main]# ./main Hello, Auto Makefile! [root@localhost main]# ------------------------------------------------ 我用的是ubuntu 以上是全文?但有一处要?用aclocal 全报有一个m4文g有错.扑ֈ报错的那一?把变量加个中括号可以了 xmlns:fx=”http://ns.adobe.com/mxml/2009″ 前者ActionScript元素是?Object、Number、Boolean以及Array对象{等Q在《Adobe Flex 4 Beta Language Reference》的包(Top LevelQ里可以查看完整的顶U元素。后者内建到MXML~译器里的标{?lt;fx:Script>?lt;fx:Declarations>?lt;fx:Style>{等Q在《Adobe Flex 4 Beta Language Reference》附录(AppendixesQ里?#8220;MXML Only Tags”可以查看完整的编译器元素。值得注意的是Q这个命名空间ƈ不包?Halo ?Spark lgQHalo是以前版本的lg库,而Spark是Flex 4新出的组件库Q。在Flash Builder安装目录下可以找?#8220;mxml-2009-manifest.xml”文gQ例如我的电脑是C:\Program Files\Adobe\Flash Builder Beta\sdks\4.0.0\frameworks\mxml-2009-manifest.xmlQ,q个xml文g描述了完整的 ActionScriptcR不q你可以注意刎ͼ它ƈ没有包含MXML~译器标{,那是因ؓq些标签是内建到MXML~译器?/p>
对于待机模式Q如果要电脑放?待机模式QWindows会自动向甉|发出另一U特D信P随后甉|会切断除了内存外其他讑֤的供电,内存中依然保存了pȝq行中的所有数据,q个q程一 两秒钟就可以完成。当从待机状态进入正常状态时Q只要通电Q然后Windows׃l箋从内存中保存的上一ơ的“状态数?#8221;下运行,q个q程也只需要几U?钟?br />
可见Q对于待机状态,完全可以不用关闭自己的程序,如果需要,随时可以待机。而要恢复时也只需要按下电源按钮,几秒钟即可恢复。但q?U模式虽然方便,但有一个致命的~陷Q不能停止对内存的供c因为内存是一U易失性存储设备,必须在保证供늚情况下才能维持其中的数据。因此一旦电脑在 待机状态下断电Q哪怕不CU钟Q内存中的数据将丢失Q下ơ开机的时候,Windows会像从关机状态下启动那样重新开始?br />
休眠模式和待 机模式类|只不q在休眠状态下QWindows会将内存中的数据保存到硬盘上pȝ盘根目录下的一个文件中Q可以将q个文g理解为内存状态的“镜像”Q?而下ơ开机后则从内存上的休眠文g内读取数据,q蝲入物理内存。休眠模式可以实现和待机模式cM的功能,只不q恢复速度E慢Q而且需要在盘上占据一块和 物理内存一样大的空间来保存休眠文g。物理内存越多,占用的空间就多Q而进入状态和从状态恢复所需的时间也p长(毕竟需要把文g从硬盘读入内存,而硬 盘的速度一直都是最慢的Q。但q种模式的优点也有很多,不怕断电!毕竟断电后硬盘上的数据ƈ不会丢失?br />
Windows Vista中开始新增了的一U睡眠模式则l合了待机和休眠模式的所有优炏V在q入睡眠模式后,Windows会首先将内存中的数据保存到硬盘上Q这一点类 g眠)Q同时切断除了内存外其他讑֤的供电(q一点类似待机)。在恢复Ӟ如果没有断过电,那么pȝ会从内存中直接恢复,只需要几U钟Q而就断电,?为硬盘中q保存有内存的状态镜像,因此q可以从盘上恢复,虽然速度要稍微慢一些,但至不用担心数据丢失?/p>
q入速度 恢复速度 是否耗电 断电后结?/span>
睡眠
几秒?/span>
不断늚情况下几U钟
需要对内存q行量供电
断电后,未保存数据不受损Q但恢复速度需要略微g长些
休眠
两分钟左?/span>
两分钟左?/span>
完全不耗电
未保存数据不会丢?/span>
待机
几秒?/span>
几秒?/span>
需要对内存q行量供电
断电后所有未保存数据都会丢失
lg所qͼq几U模式各有利弊,但只要Windows和所用硬件支持,?span style="background-color: yellow; ">强烈使用睡眠功能代替以往习惯的关机操?/span>。毕竟睡眠功能的优势显而易见,不仅可以避免漫长的启动过E,而且完全可以把电脑当作电视一L一般电器,随开随关Q完全不用担心丢失数据?/p>
]]>
在本文中Q将l大家介l如何?nbsp;autoconf和automake两个工具来帮助我们自动地生成W合自由软g惯例的MakefileQ这样就可以象常见的GNUE序一P只要使用“./configure”Q?#8220;make”Q?#8220;make install”可以把E序安装到Linuxpȝ中去了。这特别适合惛_开放源代码软g的程序开发h员,又或如果你只是自己写些小的ToyE序Q那么这个文章对你也会有很大的帮助?/p>
]]>
xmlns:mx=”library://ns.adobe.com/flex/halo”
xmlns:s=”library://ns.adobe.com/flex/spark”
1、xmlns:fx=”http://ns.adobe.com/mxml/2009″
fx命名I间下包含ActionScript元素和内建到MXML~译器里的标{?/p>
2、xmlns:mx=”library://ns.adobe.com/flex/halo”
mx命名I间包含着攑֜ mx.* 包里那些lgQFlex图表、Flex数据可视化组件等{。对Flex 3很熟悉的话,mx包里的组件你也不陌生了。在Flex 4 SDK的安装目录下可以扑ֈ“halo-manifest.xml”文gQ例如我的电脑是C:\Program Files\Adobe\Flash Builder Beta\sdks\4.0.0\frameworks\halo-manifest.xmlQ,q个XML文g列出了所有组件了?/p>
3、xmlns:s=”library://ns.adobe.com/flex/spark”
s命名I间可真是新鲜事了,spark.* 包里的组仉在这个命名空间里Q不只spark包,flashx.*包的text frameworkcM在这个命名空间里。这个命名空间包含不RPCc,例如 WebService、HTTPService和RemoteObjectlgQ这些组件同时也在mx命名I间下,也就是说Q创些组件时Q你不但可以使用“S:”前缀Q也可以使用“mx:”前缀。其实不只这些RPClgq两个命名I间Q像graphics、effect和statecM是共?s ?mx 命名I间的。在Flex 4 SDK安装目录下打开spark-manifest.xml文g来看看完整的sparklg吧?/p>
]]>
用了一q多FlexQ感触多多。偶有同行的朋友问我啥是FlexQ说实话Q一时半会儿我还真说不清楚。尤其是对于一个从未接触过Flex的朋友,惌由浅入深地只用嘴巴不用电脑给他讲明白Q这实难ؓ一个整天只跟机器打交道的程序员了。后来我想了一个办法,我说你知道开心农场吧Q那是拿Flex做的。这下子很多人有兴趣了,呵呵Q如果你也有兴趣Q请l箋往下看。失a未察之处Q欢q拍砖?/p>
一般来_一Ҏ术的产生都是Z解决业界的重大难题而出现的。那么说到Flex我们׃得不先说一下RIA。RIAq个概念其实早就出现了,我最初是07q在《程序员》杂志上关于Ajax技术的介绍时看到的。到?8q_伴随着|络视频的飞速发展,RIA应用已经搞得有声有色热火朝天了,其实译q来是个富客户端(Rich Internet ApplicationQ,相较于BS的瘦客户端,也可以称之ؓ胖客L。当然如果你已经被这些名词概늆得焦头烂额,误跛_D(黑好心提示Q本部分仅余四段。。。)?/p>
RIA单的_是CS+BS的开发部|模式。CS和BS大家都很熟悉QCS的全拼是Client/ServerQ它的优点在于借助局域网的信息安全和带宽优势Q充分利用客h器的q算能力从而降低服务器压力Q缺点就是安装部|更新麻烦,比如老板让我跑到一千公里外的客户那安装一千台机器的客LQ过几天我回来了Q老板说那Ҏ几台机器q行有问题,你去l护一下~Q过几个月,老板说你L那一千台机器全部升一遍,他们自己不会装。。。呵呵,q些痛苦我当然不曄历,我杜撰的?/p>
那么?998q_互联|风起云涌的时候,BSQBrowser/ServerQ逢时而生。BS充分利用互联|的优势Q解决了CS安装部v更新的一大难题。通过把业务逻辑处理攑֜服务器端Q然后解析ؓHTMLQ利用HTTP协议传输到客L览器上׃事大吉。看h很美Q其实干q就知道也很痛苦。哪儿痛呢,痛的当然是我们这些开发者。安装部|更新倒是省事儿了Q装个IEQ给个网址p让客L录了。但是,ZHTML+JavaScript的技术让人很崩溃。JavaScript我好久不用了Q在以前毕业实习的时候,感觉开发和调试都不方便Q而且q面临着不同览器不兼容的噩梦(据说现在上述问题随着Ajax的风行有所改善Q我不太了解Q。另外,BSq有一些潜在的~点。比如,客户端体验简单,不易开发丰富的效果来展C数据(q和当时的网l带宽也有关p)Q必联|才能运行,信息安全无法保障Q应用程序需要通过其他技术辅助才能操作客L资源Q服务器负蝲q高而客hq算能力未充分用等?/p>
l合来讲QBS仍然是一个不错的解决ҎQ它的Web应用E序和CS的桌面应用程序曾一度二分天下,各领风骚数十q。从解耦角度来看,CS以数据库的方式把数据从程序中分离QBS以浏览器面的方式把界面和逻辑再次分离Q然而第二次分离是不d的。表面上只是代码l构的分,从实质上看表现层仍然是逻辑层的附庸Q前台UI完全和后台实现技术绑死(把已有项目后CC#换成JAVA是不可能的。。。)Z解决q个问题QRIA出现了(Z搞定了一些其他问题,比如面异步hQ前台UI不够丰富{等Q,RIA基本实现了不依赖于特定后台技术,能与多种服务端搭配用?/p>
?002q_MacroMedia公司Q简UMMQ?5q被Adobe收购Q首先在Flash Player6中引入了RIA概念?004q_MM正式发布Flex1.0Q汗Q终于说到Flex了)Q随着Ajax的火爆,RIA开始受到广泛关注。RIA主要有两个方面的含义Q一是用L面的丰富卛_客户端,二是数据模型的智能,服务器已l变成了支持客户端正常运行的数据服务Qƈ提供了异步数据传输和脱机~存机制{复杂的数据处理能力。前面提刎ͼRIA本质上就是CS+BSQ它想集大成Q想搞ȝQ想l结CS和BS二分天下的局面。说显点就是,如果以前的CSE序现在能在|络上运行,q且保持了原来的功能和特征,那么q就是一个RIA。关于RIA的详l介lGOOGLE上一搜一大把Q在此就不l作详细展开。回到当下,RIA各种技术一番拼杀Q现在广Zh知的只剩下四个NB伙QAjax、Flex、SilverLight、JavaFx。在本文W二部分中,我将要介l一下FlexQ貌D度有点儿慢,多谢支持。。。)
Flex是咋回事之二 前世今生
先说一下Flash PlayerQ简UFPQ。经怸|的朋友一定遇到过Flash Player版本升的提C吧Q这东西其实是览器插Ӟ据说已经有了98%的安装普及率Q没办法Q谁让咱们这么爱看视频呢QFP具体介绍误http://baike.baidu.com/view/1585492.htmQ。Flex生成的页面主要是通过Html包装一下生成的swf文gQ和Flash生成的swf一P它也靠FP才能完美q行Q这有点cMJVM虚拟机和.NET FRAMEWORKQFP里内嵌了AVM虚拟机)。FP又分调试版和产品版,M来讲Q咱们只用FP提供的APIQ以及及时关注最新版本的功能Q其余不会过多接触(我对FP10关于3D斚w的支持很感兴,不过貌似其支持效果不太理惻I?/p>
再说一下Flash的历双Ӏ在1996q?Y件公司FutureWave SoftwareZlNetscape开发一个全新的|页览插gQ创Z名ؓFuture Splash Animator的动态小E序Q该产品ZJavaQ是׃个称为SmartSketch的品演化而来Q这是Flash的老祖了。具有讽刺意味的是,q家FutureWave的公司本来是打算把这Ҏ术卖lAdobe的,但在那个时候AdobeҎ不睬它。而MacromediaQ简UMMQ却很有兴趣Q就q样?996q?1?MM在拥有了FutureWaveq家公司的技术后Q把FutureSplash重新命名为Flash Player 1.0。在随后的许多年_Flash被打包ؓStudio套g的一部分Qƈ与其他Studio产品Q如Dreamweaver和FireworksQ一起发布,世hU网三剑客。。。三剑客横行无敌Q到?5q??8日这天,ADOBE实在看不下去了,阔Ԓ出手Q又?4亿美元天h购MM。。。ADOBE大叔估计很后悔当q没收购Future SplashQ搞到现在,被MMl做大了QFlash具体历史介绍参见http://flash.9ria.com/viewthread.php?tid=13194?a >http://space.flash8.net/space/?625743/viewspace-350122Q?/p>
如同今年4月Oracle收购Sun一PMM嫁入ADOBE豪门Q在当时的业界也是一片哗然炸雗许多MM的忠实粉丝觉得,那三剑客是被ADOBE大叔招安了啊Q依据其收购产品的一贯猥琐恶行,q几位剑侠估计很快就会被不声不响地给整掉了(当时Flexq是襁褓Q大安没注意到。。。)Fireworks是PhotoShop的老对头了Q肯定是斩立冻IDreamweaver要不是改装变nQ要不就是各U理q接缓死;Flash日子会好q些Q但其一贯的MM风格是否能gl也很难保证?/p>
然而ADOBEq次Z意料的善良,三剑客无一遗弃Q相反还忍痛把自己推行多q的SVGȝQ个Z很喜ƢSVGQ无奈和FLASH冲突Q出于商业策略,q孩子被牺牲了)。在最新的CS4QCreative Suite 4Q品系列中Q三剑客依然zd四射C其他成员工具们和谐奋q。那么事隔收购事件四q多之后Q我们已l渐渐接受了MM产品前面加上的ADOBE标签。可以说QADOBE充分吸纳整合了MM的精和风格Q无论是FPq是三剑客,ADOBE一直都在努力地做得更好更和谐。(本h现在已经是ADOBE FANS了,哈哈Q不q还是挺怀念Flash MX2004 和Dreamweaver2004那个时代的,管当时也没闪出啥东西来。。。)
说了q么多关于Flash的事情,其实是因为Flash比Flex更出名,ADOBE也察觉到q一点,所以在预备推出FLEX4Ӟ又将其更名ؓFlashQ只是SDK仍然沿用FLEX的名受FLEX和FLASHq没有本质区别,它们最l都是{为ActionScript源文Ӟ然后被编译ؓ二进制的swf文gQ就和JAVA文g被编译成class一PQ再交由FPQFP像JVM虚拟ZP来执行。不同的是,FLASH更偏向于设计人员Q它有时间u和的概念,能更好地实现动画、特效、短片等工效果。Flex是面向开发者的Q隐藏了旉轴的概念Q只有两帧)Q更专注于解决企业应用的表现层方案,提供了大量的通用lg用于构徏前端面、通过数据服务技术能更好的分ȝ面和逻辑业务层?/p>
?4q?月MM手中的Flex1.0Q到05q?0月ADOBE手中的Flex2.0Q再?7q?月伴随着强大的面向对象语aActionScript3出现的Flex3.0,再到明年初发布的强力Flex4.0。借着RIA的春风,Flex在不断走向成熟的同时Q也被更多的业界开发者和企业用户所x接受。如果看到这里你很感兴趣Q推荐在GOOGLE上搜索一把,现在不是08q了Q网上已l涌现出大量的简易教E供我们参考学习。当然如果你有些闲钱Q或是想pȝ地学习一下,也可以买几本书。(有时间我会整理些|站博客和书c推荐的Q?/p>
在本文第三部分中Q我结合项目经验谈一下Flex的优~点和用心得。没用过Flex的可能无法共鸣吧Q那q接蟩q不看了Q呵?/p>
Flex是咋回事之三 谁用谁知?/strong>
一Ҏ术,从概忉|出到技术研发到商业发布Q再到实际应用,最l将产品呈现在用户面前,q是一个O长而复杂的q程。在q当中,很多有创意有生命力的技术因为各U原因小遗憑֜不幸夭折了。Flex能走C天确实不易,下面让我们从不同的角度来看一下它是如何过x,赢得众多青睐的?/p>
技术角度:
Q1Q具备了RIA时代富客L的优点(C/S+B/SQ?/p>
Q2Q支持多U服务器语言QJAVA?NET、PHPQ及L框架QSpring、HibernateQ?/p>
Q3Q与Javal合后相当强大,能充分利用Java的资源背?/p>
Q4Q拥有丰富的lg和第三方lgQ对企业U的数据汇d业务程展现力较强悍
Q5Q借助开源的力量Q拥有众多民间组l和牛h支持
Q6QAdobe公司Q还有MM多年U篏Q的强大背景
Q7Q源于Flash的天生丽质,L使用多媒体资源,动态交互性强
Q8Q借助FlashPlayer的安装普及度Q轻村֮现跨览器跨q_
Q9Q良好的架构设计和制作精良的文档CZQ明qFLEXQ同步推Z文版Q?/p>
Q1Q)借助于插件丰富的Eclipse开发^台ƈ拥有独立的IDE
Q1Q)框架设计重用性高Q有利于模块化设?/p>
Q1Q)q几q发展态势良好Q获得了q泛认可Q品和技术也发成熟
开发者角度:
Q1Q开源,透明Q国人没有不喜欢开源的Q哈哈)
Q2Q基于Eclipse开发^収ͼ易上手,且插件丰富(巨h的肩膀啊~Q?/p>
Q3Q基于Eclipseq_Q开发调试方?FB4中的条g断点Q?/p>
Q4QActionScript语言与Java的融合度和相似度较高Q易学易?/p>
Q5QMXML标签与XML怼Q逻辑清晰可读性强
Q6Q架构设计良好,耦合度低Q有利于lg重用
Q7Q无需针对不同览器编写代码,摆脱~写和调试的噩梦Q针对JS说的Q?/p>
Q8Q类似VB的可视化拖拽lgQ快速创建界?/p>
Q9Q方便定制及使用W三方的皮肤和样式,无需工也有好效?/p>
Q1Q)支持多媒体资源,L开发动态交互性强的界?/p>
Q1Q)众多的RPClg保障对后台数据访问的安全性和效率
Q1Q)文档CZ丰富Q通过|络可以获取大量的学习资?/p>
Q1Q)q两q发展态势良好Q前景光?/p>
企业角度Q?/p>
Q1Q开源,免费Q其实很多时候还是直接用破解的。。。)
Q2Q具备了RIA时代富客L的优点(C/S+B/SQ(潮流啊~Q)
Q3Q项目和lg的重用性高Q易于资源积累和快速构?/p>
Q4QFlex提供了与其他语言的结合,能广泛利用已有的资源
Q5Q界面华丽,客户认可度高
Q6Q学习曲U一般,培训成本?/p>
用户角度Q?/p>
Q1Q部|和更新方便
Q2Q界面漂亮,交互性强
Q3Q安?/p>
说了q么多好话,再来l合说一下缺炏V鉴于我着q于Flex的光环效应,没有看到的缺点还误位多多提出?/p>
~点Q?/p>
Q1Q不擅长处理复杂的业务流E,主要q是适合展现QFlex不是万能的)
Q2Q承了Flash的诸多优点,却唯独丢掉了Flash的小巧轻盈(减肥是永恒的话题Q?/p>
Q3Q目前尚没有比较好的减肥{略Q带宽较好时q不是问题(不是一般的卡。。。)
Q4Q对服务器和客户端的g讑֤都有一定要求(CPU和内存占用很生猛。。。)
Q5Q运行期内存泄露状况严重Q尽可以通过一定手D|善(q个很崩溃)
Q6Q对一些较专业的领域涉及较,需要第三方lg支持Q比如地质方面的Q?/p>
Q7QAdobe公司对中国分部的支持不够Q感觉宣讲和文档都做得不够)
Q8Q搜索引擎对swf文g的支持不够(Adobe一直在努力Q?/p>
Q9Q与以往览习惯不同Q比如右键被屏蔽Q图片无法保存(可以改善Q?/p>
鉴于Flex生成的swf文g太肥是其主要~点Q加载慢Q运行慢Q内存占用多Q,我就主要从减肥和优化的角度来说一下用心得?/p>
使用心得Q?/p>
Q1QFlex只是前台展现Q需要搭配强大的后台Q注意前后台的均衡和优化Q?/p>
Q2Q考虑异步加蝲Q比如分步加载外部资源)
Q3Q界面推荐用相对布局Q合理组合,避免多余嵌套
Q4Q界面加载图片推荐用外部加载方式,可能多使用矢量囑Ş
Q5Q规范CSS样式表,其注意使用的外部字体大?/p>
Q6Q用额外的皮肤和特效时需要综合考虑生成的文件大和执行效率
Q7Q适当地考虑延时加蝲{略Q主界面只显C必要的内容
Q8Q规范编码,提高执行效率Q避免内存泄?/p>
Q9Q用RSL和Module和其他有效方式努力减?/p>
Q1Q)可能重写一些承底层类的组Ӟ执行效率更好
Q1Q)慎重使用重量U组Ӟ比如DataGridQAdvancedDataGridQ?/p>
原文来自Q雨枫技术教E网 http://www.fengfly.com
首席执行官【CEO?/strong>
国人在20世纪60q代q行公司ȝl构攚w创新时的产物、它的出现在某种意义上代表着原来董事会手中一些决{权q渡到经营层手中、CEO概念最早出现在一些网l企业。在那里CEO往往是自的、也很少有hȝI这一U谓对企业到底意味着什么。但是,?#8220;CEO”在中国叫得越来越响时候、高层h员称谓改变不是一件小事、设立CEO职位不仅仅是Ҏ追赶。事实上QCEO做的事情重点在于“执行”。大多数中国公司往往CEO做的事情恰恰不是“执行”Q更像是“董事?#8221;?/p>
首席财政官或财务ȝ【CFO?/strong>
C公司中最重要、最有h值顶管理职位之一、掌握着企业经pȝ(财务信息)和血液系l?现金资源)灵魂人物。做一名成功CFO需要具备丰富金融理论知识和实务l验。公司理财与金融市场交互、项目估仗风险管理、品研发、战略规划、企业核心竞争力识别与徏立及z悉信息技术及电子商务对企业冲ȝ都是CFO职责范围内事。大型公司运作中CFO是穿插在金融市场操作和公司内部胦务管理之间角艌Ӏ担当CFO人才大多是拥有多q在金融市场驰骋l验的h。在国优秀的CFO常常在华街做过成功基金l理人?/p>
首席营运官【COO?/strong>
负责公司日常营运、辅助CEO工作。一般来讲COO负责公司职能理l织体系、ƈ代表CEO处理企业日常职能事务。如公司未设有总裁职务则COOq要承担整体业务理职能、主企业营销与综合业务拓展、负责徏立公司整个销售策略与政策、组l生产经营、协助CEO制定公司业务发展计划、对公司l营l效q行考核。也有把q营ȝU呼为COO的?/p>
首席市场官【CMO?/strong>
指市场ȝ
首席技术官【CTO?/strong>
技术ȝ
销售ȝ【CSO?/strong>
渠道销售ȝ
公关ȝ【CPO?/strong>
政府事务、媒体、重要公怸人物公共关系Q主要是搞定人?/p>
首席信息官【CIO?/strong>
大多数公司把q个职位变成了盯人盯,有点象明朝时候的“东厂”Q所以说中国是个很神奇的国家?/p>
Zȝ 【CHO?/p>
首席品牌官【CBO?/p>
首席文化官【CCO?/p>
首席知识官【CKO?/p>
首席谈判官【CNO?/p>
质量ȝ【CQO?/p>
评估ȝ【CVO?/p>
专门负责解答媒体、债权人和用户{有关问题询问?/p>
首席财务官助理之一、专门针对不同投资h制订相应BP?/p>
凡超qXXXX元以上支出必ȝCC0批准?/p>
负责公司域名注册、网站清盘时域名拍卖、域名法律纠UL相关问题?/p>
一般由国际CEO自由联盟随时更换、常讄期职能岗位、类D球教l?/p>
规划公司宏伟蓝图、一般是5q以后目标?/p>
调解投资者和l营者之间的冲突、确保公司内部矛盾不要泄霌Ӏ?/p>
查公司内部工作状c监督员工工作态度?/p>
解决内部劌U纷、包括员工对降薪、辞退补偿{所引v问题?/p>
最J忙的岗位之一、当中国电信|络q接中断时及时向员工通报?/p>
负责公司被控侉|时应诉以及各U合同文本审核。主要是灭h的打手?/p>
保持和媒体之间友好关[来源QGameRes.com]pMؓ公司随时发布新闻做准备,cM首席代表?/p>
向媒体披露公司被黑、裁员、被收购{重大新闅R一般由公司市场ȝ担QQ类似政府部门新da人,主要由司长部门领导担QQ公司声音的l一出口?/p>
负责公司内部员工Email、ICQ、OICQ{通信内容监控?/p>
负责注册用户数量、页面浏览、营业收入等指标~造?/p>
负责与裁员有关事务、直接向股东大会负责、包括董事长在内都不得干预工作?/p>
由已l退位公怸要创Zh担QQ在政府机关一般称研员或顾问?/p>
以战略联盟名义专门寻找有收购自己意向的公司?/p>
首席财务官另一重要助理?/p>
负责小事扩大化、通过炒作辑ֈ扩大公司名度目的QM用文人,比如l陈天桥Q史玉柱~故事,造神?/p>
Q中国特有)一般由学历不高且没有什么网l知识的q轻人担仅R?/p>
荣誉U号授予在公司工作满Xq员工(通常I缺Q?br>
开发ȝ【CDO?/p>
首席发言人【CAO?/strong>
首席商业计划官【CBO?/strong>
首席成本控制官【CCO?/strong>
首席域名官【CDO?/strong>
首席交换官【CEO?/strong>
首席斚w制订官【CGO?/strong>
首席协调官【CHO?/strong>
首席查官【CIO?/strong>
首席执法官【CJO?/strong>
|络q接专员【CKO?/strong>
首席律师【CLO?/strong>
首席媒体官【CMO?/strong>
首席新闻官【CNO?/strong>
首席隐私官【CPO?/strong>
数量指标~造专家【CQO?/strong>
首席裁员官【CRO?/strong>
首席战略官【CSO?/strong>
首席联盟官【CUO?/strong>
投资者关pRCVO?/strong>
首席|络写手【CWO?/strong>
形象代言人【CXO?/strong>
公司元老【CYO?/strong>
]]>
【用h?-注册用户?/font>不同目注册用户质量完全不同Q运营商l出不真实数据,那数据调查报告真实性呢Q根本没有明白用戯量的意义?br> 2、不同游戏每个^均在U是׃同数量用户造就的。一个好游戏可以大量_住玩家长时间舍不得下线?/p>
3、如果活跃用hơ上U^均在U?时Q那么需?个活跃用户增?个^均在U,如每ơ只让用L游戏5分钟p了,哪怕游戏非常好用户每天都上?分钟Q那么必L60/5*24=288个活跃用h能达?个^均在Uh数。要Ҏ情况判断推广z跃用户ҎQ还是增加游戏粘着更容易?/p>
2、很多愣头青听见大师宣传免费模式Q连免费模式数据都不清楚情况下凭感觉坚定认ؓ免费模式是潮、趋ѝ陈天桥不看产品数据Q道h费增加到可替代收Ҏ式,凭灵光一闪把每季度几亿时间点卡给扔了Q看到这两年来盛大从免费模式赚取过收费模式q是有瑕늚Q至在Uh数没有按盛大惌的大q度增加?/p>
2、注意以上部分数据,不要L怿q告商瞎吹,自己掌握的数据才是最真实不会ƺ骗你的?/p>
3、精掌握各U营销方式效果数据Q相信你不会随便p钱,拍着脑瓜子就上一些性h比不合适的q告?/p>
2、近两年很火Uv和蓝hc?br> 2、很多游戏h都分析《梦q西游》从技?span style="DISPLAY: none; FONT-SIZE: 0px">[来源QGameRes.com]层面完全没有优势产品Z黏着度那么高Q流q那么低。游戏内涉|最重要的因素,q关pd游戏生命周期。如果玩家把所有内定w全部玩到需?个月Q那?个月是|络游戏每个用户生命周期Q当玩家感觉没有可玩内容时他自然会离开。有的游戏是可以让玩家玩几年q有新内容,有的游戏虽然好但是生命周期短。现在有来多游戏学会利用循环dQ或随即生成d增加生命周期 3、有些数据可以告诉哪些收Ҏ玩家能够接受的(管有些收费内容Q玩家可能永q会骂,但每天都有大量用户在付费Q有些收费看h没h骂,实际上根本没有h使用Q都要通过q营数据分析Q?br> 5、数据很清楚告诉你游戏经体制是否稳固,游戏中不断增加的金钱奖励Q道具销售是否造成通货膨胀{更多的l节问题?/p>
【在Uh数】【最高在Uѝ?/font>某个旉能达到的最高在Uѝ?br>
【活跃h数?/font>hƺ骗性的数字Q必L“每日z跃用户”“每周z跃用户”“每月z跃用户”“每季z跃用户”“最q多天内活跃用?#8221;{。在q段旉内进入游戏的人?br>
【每个活跃用户^均在U时间?/font>上面说了z跃用户敎ͼ如果没有本数据上面那个也没有意义、每个用户都在线2分钟马上׃U,z跃用户价值是多少呢?能和上线十几个时在线玩家{gQ?/p>
【游戏^均在Uh数?/font>
1?4时内^均在Uh敎ͼ数据采样旉密集越_?/p>
【^均在UѝL册用戗活跃h数及最高在U比例?/font>
曄有专家说是xxxx?%Qxxxx?.7%{,他们可能针对某款能接触到的网游数据而来Q如果不知道数据是在什么条件下产生的,每款产品都不一栗比例随着不同市场、不同品、不同渠道、不同服务会D_数据和比例完全不一栗哪怕一模一样品都可能完全不一h据,别h注册100万用戯?万在U,不代表你宣传注册100万也?万。各斚wl节太多Q资本家很少全面看成功创业者所付出的努力?/p>
【Arpu值定义之争?/font>
1、有是每个消费用L每日p?br>2、有是每个活跃用L每月p?br>3、上市公司胦报数据定义:产品毛收?qAPA/arpuQ要么增加APA数量Q要么增加ARPU。对于运营商要根据多^均在U确定服务器、带宽、客h务、需要多推q成本才能篏计^均在U等q营成本?br>
【收Ҏ式固定倹{?/font>
很好:每小?毛(或点卡定P*24时*30?288?月,一Ƅ万在U收费网游大致收入是1000000*288Q每?.88亿毛收入Q有很多数字,如免费用期用户比例D真实值减、各U因素导致免Ҏ戏用h例导致真实收入减、用戯买点卡很多h没用完导致真实收入增多,渠道压了货最后没有退D收入增多{)?/p>
【免费制动态arpu倹{?/font>
1、大多数|游都在学习免费模式Q利用收贚wL盈利Qarpu值大关pd生存的重要指标?/p>
【收费制?/font>
推广1个收费制游戏在线用户q比推广N个免Ҏ戏在U用h加困难,免费模式arpu值大于收Ҏ式时Q自然免Ҏ式要比收Ҏ式更好?br>
【推q成本?/font>
1、打花多少钱宣传推q品?br>2、除了资金还要考虑人力成本和时间成本?br>3、仔l计每个在U用hq成本,花多钱才能增加1个^均在Uѝ?br>4、大部分情况?个^均在Uarpug?个^均在U推q成本。如能找到廉hq方式增加在U,费用低于用户arpu|别犹豫赶紧推q吧?br>
【推q效果?/font>
1、作为市Zh员是掌握每种营销方式效果数据。有多少看到q告AQ有多少目标用户看到q告、引起多目标用戯住、让多少目标用户感兴、多用户尝试、剩下是产品本n和客h务的事。对个市场来说撒谎不是缺炏V无法让更多用户来尝试品才是失败?/p>
【市场潜力分U?/font>
不要定义一个遥不可及的市场目标Q例如全世界有多hQ每个h都需要住房,而你是个有房Cx的年MhQ你告诉别h你的市场目标是多亿亿全球用L房。这L标是没有意义的。可执行的目标是很重要的Q只要是可执行哪怕在旁h眼里看v来很狂妄Q也没有什么不可以?/p>
【运营网l游戏一定要知道分?/font>
1. 可以直接推广到的那些人?手把手,或者通过你的个h媒体Q言传n教)
2. 能在你所拥有预算内控制哪些媒体,做哪些事情,有多用户会因ؓ怎样宣传内容而尝?br>3. q有哪些资源Q哪些朋友支持,帮助Q在你所拥的预算内能帮你打开哪些市场?br>4. 人才Q能否找到比你更优秀的h才、专家帮助你宣传、推q扩大市?/p>
【用L分举例?/font>
1、非常关注你的品网游用h可能成ؓ你的用户
2、宣传推qƈ引v他们注意的网l游戏用?br>3、到处寻找新游戏的网l游戏用?br>4、同cȝl游戏的用户
5、异cȝl游戏的用户
【所有h?/font>以上分不一定准,不一定适合你,对于你很可能每需要投入成本不一P没有史玉׃个亿׃要开始把目标用户定义为所有h而去打全国广告,否则会发现投入成本一定收不回来?/p>
【目标市场定义?/font>
1、每个h都想产品占领最大最多市场,由各斚w条g有限必须按对市场分Q分析目前阶D能覆盖目标市场?/p>
3、准定位市场、细分市场目的是降低市场推广成本Q增加推q有效程度。如果有_的推q成本,你自然可以多做泛媒体Q广大增加知名度Q宣传面?/p>
【流q?/font>很容易被遗忘却异帔R要,军_游戏生死重要数据Q市场推q好不容易拉的玩家留不留得住?br>【初期流q?/font>试用户转变为成熟活跃用P所需耗费的时?br>【自然流q?/font>成熟z跃用户自然失率,产品好坏Q内涵丰富最大程度决定着自然失率高低?/p>
1、品本w有很多问题会带来非常高自然流qQ品的画面、操作、各斚wl节都是关系C品品质直接开发因素?/p>
3、网游开发者不要冲着单新概念做游戏,不是做噱_做有内涵的好游戏Q充分利用你的技术团队实现效果,而不是盲目专门搞效果搞噱_让用户乐意留在游戏里面?/p>
【客h务?/font>很重要作用是减少失率,没有客户服务游戏不可避免扩大流qQ流q大神仙也没得救。盛大第一W收入用来徏立客h务中心ؓ了什么?商业数据上说是降低失率?/p>
【线上活动?/font>通过zdQ可能是CQ务、策划活动、客服执行活动)临时性增加拉高在U,减缓或阻止短旉内玩家流失?/p>
【用戯然增长率?/font>在推q下增加1个^均在U成本低于【用户arpu倹{?【^均每个用L命周期】。可以不断持l增加用h况下、新q入玩家大于产品失率就q入滚雪球效应了。大多数产品一停止大规模推q成本投入流q都远大于增长率。很多项目在初期炒作后很快用h量陆l流失,最后不得不倒闭的原因?/p>
【收入潜力倹{?/font>和arpu值矛盄|arpuD低证明潜力越大,arpuD高反而说明相同用h量下收入增长潜力。有些公司(q没扑ֈ盈利模式却有较多用户的网站或游戏Q把q个作ؓ他们的未来卖炏V?/p>
【更多细节数据?/font>做好游戏不仅仅看l果型数据,更多对于开发策划要看过E走向型数据?/p>
【例如?/font>
1、有些数据可以告诉你在推q过E中哪个环节失用户最多?br>
2、有些数据可以告诉你、玩家喜Ƣ哪些系l,讨厌什么。无论喜p是讨厌都比不q【态度p|】漠不关心、死鸭子嘴硬。玩家对_ֿ{划的内Ҏ不关心,q是最p|的策划?/p>
4、有些数据可以很清楚告诉你用户在刷钱、在作弊、在利用漏洞、在用外挂、修改封包。如果有自动化数据分析技术几乎可以发C多玩家作弊。注意只是发玎ͼ能否解决q取决于高层重视态度及技术h员能力和速度Q要知道而这些问题几乎导致了大量游戏M?/p>
全部?DMARK06默认分L率得分计?游戏内实际C计算在内(因ؓNVIDIA和ATIҎ戏优化造成得分不公?排名120后的昑֍因时间过长无法测?只按历年来网上评分排?(所有排名显卡均为官方公杉K率测?.
001 NVIDIA GTX295
002 ATI HD4870X2
003 NVIDIA GTX285
004 ATI HD4850X2
005 NVIDIA GTX280
006 ATI HD4870
007 NVIDIA GTX260
008 ATI HD3870X2
009 ATI HD4850
010 NVIDIA 9800GTX+=NVIDIA GTX250
011 NVIDIA 8800Ultra
012 NVIDIA 8800GTX
013 NVIDIA 9800GTX
014 ATI HD4830
015 NVIDIA 8800GT=NVIDIA 9800GT
016 NVIDIA 8800GTS
017 NVIDIA 8800GS 768M=NVIDIA 9600GSO 768M
018 NVIDIA 9600GT 512
019 NVIDIA 7950GX2
020 ATI HD2900XT
021 ATI HD3870
022 NVIDIA 8800GS 384M=NVIDIA 9600gso 384M
023 ATI X1950XTX
024 NVIDIA 7900GTX
025 ATI HD3850
026 ATI HD4670
027 9600GSO 512M
028 NVIDIA 9600GT 256
029 ATI X1900XTX
030 ATI X1950XT
031 NVIDIA 7950GT
032 ATI 1900XT
033 ATI HD3690
034 NVIDIA 8600GTS
035 NVIDIA 7900GT
036 ATI X1800XT
037 ATI X1950Pro
038 NVIDIA 7800GTX
039 NVIDIA 7900GS
040 ATI X1950GT
041 ATI X1900GT
042 ATI X1800XL
043 NVIDIA 7800GT
044 ATI X850XT/XTPE
045 ATI HD3670
046 ATI HD4650
047 NVIDIA 9500GT
048 NVIDIA 8600GT
049 ATI HD3650
050 ATI X1800GTO
051 ATI X800XT/XTPE
052 NVIDIA 7600GT
053 ATI HD2600XT
054 ATI X1650XT
055 NVIDIA 6800Ultra
056 NVIDIA 6800GT
057 NVIDIA 6800GS
058 ATI X800XL
059 ATI X850Pro
060 NVIDIA 6800
061 ATI X1650 Pro
062 ATI X800pro/GTO
063 ATI X1600XT
064 NVIDIA 7600GS
065 ATI X800SE
066 ATI X1300XT
067 NVIDIA 8500GT=NVIDIA 9400GT
068 ATI X1600Pro
069 NVIDIA 7300GT
070 NVIDIA 6800XT/LE
071 NVIDIA 6600GT
072 ATI X700Pro
073 ATI 9800XT
074 ATI 9800Pro
075 ATI 9700Pro
076 ATI 9800
077 S3 Chrome S27
078 ATI X700
079 NVIDIA 5950Ultra
080 ATI 9700
081 NVIDIA 5900Ultra
082 NVIDIA 5800Ultra
083 NVIDIA 5900
084 NVIDIA 5800
085 ATI X1300Pro
086 NVIDIA 8400GS
087 ATI HD2400Pro
088 NVIDIA 7300GS
089 NVIDIA 6600
090 NVIDIA 5900XT
091 ATI X1300
092 ATI X600XT
093 NVIDIA 7300LE
094 NVIDIA TI4800
095 NVIDIA TI4600
096 ATI 9600XT
097 NVIDIA TI4800SE
098 NVIDIA 5700Ultra
099 ATI 9500 256bit
100 9800SE 128bit
101 ATI X600
102 ATI X550
103 ATI 9600Pro
104 NVIDIA TI4400
105 ATI 9500Pro
106 NVIDIA 6600LE
107 ATI X1300SE
108 NVIDIA 5700
109 ATI 9600
110 NVIDIA 6200
111 NVIDIA TI4200
112 NVIDIA 5600
113 ATI 9550
114 NVIDIA 5600XT
115 ATI 9600SE
116 NVIDIA 5500
117 NVIDIA 7100GS
118 ATI X300
119 ATI 9550SE
120 NVIDIA 6200A
121 ATI 9200Pro
122 ATI 9000Pro
123 ATI 8500Pro
124 NVIDIA GeForce3 TI500
125 ATI 8500
126 ATI 8500LE
127 NVIDIA 5200Ultra
128 ATI 9200
129 ATI 9250
130 NVIDIA GeForce4 MX460
131 NVIDIA 5200
132 ATI 9000
133 ATI 9200SE
134 NVIDIA GeForce3 TI200
135 NVIDIA GeForce3
136 NVIDIA GeForce4 MX 440
137 ATI 7500
138 ATI 7200
139 NVIDIA GeForce2 Ultra
140 ATI 7000
141 NVIDIA GeForce2 GTS
142 NVIDIA GeForce4 MX 420
143 ATI Radeon
144 Voodoo5 5500
145 NVIDIA GeForce2 MX 400
146 NVIDIA GeForce256
147 NVIDIA GeForce2 MX
148 Voodoo4 4500
149 NVIDIA TNT2
150 ATI Rage128 Pro
151 Voodoo3
152 TNT
153 ATI Rage128
154 NVIDIA Riva128
155 ATI Rage3D Pro
156 Voodoo Banshee
157 Voodoo2
158 NVIDIA Riva
159 ATI Rage3D
160 Voodoo
E序员每天该做的?/font>
1、ȝ自己一天Q务的完成情况
最好的方式是写工作日志Q把自己今天完成了什么事情,遇见了什么问题都记录下来Q日后翻看好处多多?/p>
2、考虑自己明天应该做的主要工作
把明天要做的事情列出来,q按照优先排列Q第二天应该把自己效率最高的旉分配l最重要的工作?/p>
3、考虑自己一天工作中p的地方,q想出避免下一ơ再犯的Ҏ
出错不要紧,最重要的是不要重复犯相同的错误Q那是愚蠢?/p>
4、考虑自己一天工作完成的质量和效率能否还能提?/span> 5、看一个有用的新闻|站或读一张有用的报纸Q了解业界动?/span> 6、记住一位同事的名字及其特点 7、清理自q代码 8、清理自q桌面 E序员每周该做的?/font> 2、进行一ơ自我ȝQ非正式Q?br> q周之内自己表现得怎么P该加分还是扣分? 3、制定下周计?br> 把下周要做的事情列出来,一栯分清楚优先?/p>
4、整理自q文g夏V书柜和电脑文g 5、与一个非公司的朋友沟?/span> 6、看一本杂?/span> 7、纠正自己或同事一个细节上的不正确做法 E序员每月该做的?/font> 2、自我考核一?/span> 3、对你的同事考核一?/span> 4、制定下月的计划Q确定下月的工作重点 5、ȝ自己工作质量改进状况 6、有针对性地对一工作指标做深入地分析ƈ得出改进的方?/span> 7、与老板沟通一?/span> E序员每q该做的?/font> 2、兑现给自己、给家h的承?/span> 3、下q度工作规划 4、掌握一Ҏ技?/span> 5、推ZU新产品 6、与父母团聚一?/span>
一天只提高1%Q?65天你的效率就能提高多倍你知道吗? (1+0.01)^365 = 37 倍?/p>
闭门造R是不行的Q了解一下别人都在做什么,对自p带来很多启示?/p>
你认识公司的所有同事吗Q你了解他们吗?
今天完成的代码,把中间的调试信息Q测试代码清理掉Q按照编码风格整理好Q注释都写好了吗Q?/p>
当日事当日毕Q保持清z干劲的桌面才能让你工作时不分心Q程序员特别要把电脑的桌面清理干净?/p>
1、向你的老板汇报一ơ工?/span>
让你的老板知道你在做什么,q很重要。可以口头、书面、邮Ӟ看你老板的工作方式而定?/p>
把桌面以外的地方也要清理q净Q电脑的文g夹,收到的邮Ӟ把过时的垃圾全部清理掉?/p>
它山之石Q可以攻玉?/p>
找一本适合自己的专业杂志?/p>
《细节决定成败》看q了吗?没看q强烈徏议先看看?/p>
1、至和一个同事一起吃饭或喝茶
不光了解自己工作伙伴的工作,q要了解他们的生zR?/p>
相对正式地考核自己一下,你对得vq个月的工资吗?
你的同事表现怎么P哪些人值得学习Q哪些h需要帮助?
自己的质量提高了多少Q?
可以是对自己的,也可以是对公司的Q一定要深入地分析后拿出自己的观Ҏ。要惛_老板面前说得上话Q做的成事,工作上功夫要做?/p>
最好是面对面地沟通,好好表现一下自己,虚心听取老板的意见,更重要的是要了解老板当前兛_的重炏V?/p>
1、年lȝ
每个公司都会做的事情Q但你真正认真地ȝq自己吗Q?/p>
l老婆、儿子的新年C物C没有Q给自己的呢Q?/p>
好好x自己明年的发展目标,争取升职/加薪、蟩槽还是自己出来干Q?/p>
臛_是一,作ؓE序员一q要是一Ҏ技术都学不到手Q那׃定会被淘汰。掌握可不是看本书就行的Q要真正懂得应用Q最好你能够写一教E发表到你的blog ?/p>
可以是一个真正的产品Q也可以只是一个类库,只要是你创造的东西pQ让别h使用它,也ؓ世界作点贡献。当然如果真的很有h|收点注册费也是应该的?/p>
常回家看看,常回家看看?/p>
]]>
我上的是一个三的高校Q就q同一个城市的人多数都不知道。因为学校不好也没 有指望能靠学校名气找一个好工作。所有的希望都寄托在自己的努力上了,大一开学前的假期我开始了学习Q记得我买的W一本书是《计机基础DOS3.0》,大家别吓着了,其实当时已经普及了DOS6.22了,只是我在书店里看CDOS4.0Q?.0Q?.0的书Q以为像p那样是第四、五、六册,记得当时到处找DOS1.0Q现在想想也q好我没有找刎ͼQ开学前我学完了PASCALQ那时既没有计算Z没有人可以请教,我连E序是什么的概念都没有, 只好死记背代码Q然后拿U写Q我一直到大三才有了一?86Q在q之前用U写了多程序我也记不清楚了Q只知道最长的一个我拿A4大小的草E纸写了30多页Q我的C语言、C++ 、VC都是在这L条g下入门的。所以说条g是可以克服的Q希望我的经历多给条g艰苦的同学们一点信心。第一ơ上机是在我姐夫的机房,我的心情Ȁ动的无与伦比Q但是一上机我立d了眼Q他们用的是英文版的Win3.1Q我的那点DOS知识都见了鬼Q上机提心吊胆的一늞摸,一不小心把Word弄成了全屏,怎么都还不了原,当时真是心急如焚,我以为机器被我弄坏了。第一个C语言E序Q就是那个经典的HelloWorldQ我调了几个星期Q上机机会非常少Q也没有书告诉我开发环境(TC2.0Q需要设|,而且开始我都不知道有编译器Q我甚至自作聪明把写好的E序扩展名从.cҎ.exeQ结果可?
而知。大一学完了C、X86的汇~、数据结构、C++。由于精力都花在自学上了Q大一下四门课挂了彩,三类学校是q点好,挂上一二十门也照样毕业。不q扯q点_我那么刻苦都及不了格Q可见我们国家的计算机教育有多死ѝ?
大二准备学VC和BCQ当旉以取舍,后来选了VCQ不为别的,只ؓ书店里两本书QVC 那本便宜6块钱。我的努力在班上无h能及Q学的日夜不分,大三有了计算机后更是如此Q?很多ơ父亲半夜教训我说我不要命了Q我一直觉得自己基差,记忆又不行,条g也不?Q所以觉得只有多q旉才能赶上别h。居然后来有许多朋友说我有学计算机的天赋Q?让我哭笑不得。我用的?86Q?6M内存Q?G盘Q当时同学们的配|都是P166MMXQ我安装 一个Windows NT4.0需要一个通宵Q编译一个BC5.0向导生成的程序需要近两个时Q我的显C器是个二手的,辐射非常大,开机屏q冒火花Q看h很酷的:Q,有一ơ程序写的太久,觉得怎么白色的编辑器背景变成了Ԍ以ؓ昄器坏了,后来才发现眼睛不行了Q不q说来也奇怪,C天我的视力还能保?.5Q真是个奇迹。但是就是那台破机器陪伴了我两年Q让我学会了VC、Delphi、SQLServer{。后来那台机器给我阿姨打字用Q据她说一天她正打的开心,一股青烟夹着火苗从显C器d来,之后它才寿终正寝?
大三假期找了个机会在一个计机研究所实习Q与其说实习不如说是做义工,工作了两个月一分钱没有ѝ但是这两个月对我的发展帮助很大Q让我早一步了解了C会Q刚ȝ时候我当然是一H不通,在那里我熟悉了网l,学会了Delphi和Oracle。由于工作很认真Q?得到了比较好的评P在一位长者的引荐下,我开始和他们一起做目Q这使我在大三大四就有了自己的收入,大四又找了两家MIS公司DQ虽焉不多Q但是在学生期间?000多的收入我已l非常满了Q我l于用自p的钱把计机换了。大四下开始找工作Q这时我的工作经验已l比较多Q当然现在想想非常幼E)Q开始听父母的想去那个研I所Q?实习q那个部门也希望我能去,但是不知道ؓ什么最后不了了之,q种单位是比较官僚 Q我一气之下就C我兼职的一个公司做MIS的TeamLeader。在大三到毕业一q的旉Q做q了各种MISQ从煤气、烟厂、公安、铁路、饮食到高校Q什么有钱做什么,工作也很辛苦 Q经常加班和熬通宵Q从跟客戯需求到设计、编码、测试、交付都要上。那时觉得很有成感Q觉得自p不错Q现在想想真是很肤浅?
刚走上工作岗位的学生很容易被误导Q各U开发工兯人眼q乱,同时也觉得很?公司器重Q但q样工作永远是一个低层次的开发者。不要跟我说什么系l分析有多么多么重要Q多么多么难。你以ؓ自己跟用戯需求做设计是pȝ分析和设计了吗,国内又有几个公司能够做的很到位很规范Q我是ISO9000内审员,也在Rational公司受过多次培训Q拿?个证书,q有一个公司让我去做CMM。这些我听过很多Q但是很多事情到国内变了性质Q一个公怸是通过了ISO9000或者CMMp规范了,我现在在一家有几十q历史的外企工作Q里面的理不是一般国内企业能及的。作Z个毕业不久以前没有步入过C会的学生,几乎不可能在很短的时间掌握系l分析和设计Q面向对象、UML只是一个工P关键是h本n的思想Q不是说你熟悉了C++、Rosep够做出好的设计,相反如果你具备了很高的素质,你可以用C写出比别人用C++更加模块化的E序?
话说q一些,国内软g开发行业有一个怪圈Q很多h觉得VC > Delphi > VBQ真是很搞笑。这几个软g我都做过开发,说白了他们都是工P应该Ҏ应用的需要选择采用哪个Q而不是觉得哪个上层次。如果你因ؓ用某个开发工具很有面子而选择的话Q只能说明你很浅薄。如果说层次Q那么这些工具都不上层次Q因为它们用来用去都是一些系l的APIQ微软的朋友不会因ؓ你记住他们多个API或者多个cd会觉得你很了不vQ你永远只是他们的客P他们看重的是你口袋里的银子。我也做q系l内核,我也装q很多APIQ同h也不会看重那些用这些API做二ơ开发的客户Q除非他能够作出自己独到的设计?/p>
至于有h认ؓC++ > C那更是让人笑掉大牙,不妨你去打听一下,现在有几个操作系l内核是用C++写的Q又有几个实时系l用的是C++Q当然我也不是说C++不好Q但是目前的内核和实时系l中C++q无法与CҎQ至于说C++适合做应用系l的开发那是另外一回事。所以我的观Ҏ不在于你用什么工具和语言Q而在于你q什么工作。你的设计体C你的技术层ơ?
q样q了一q我觉得非常苦闷Q做的大多数都是熟练工种的活Q个人技术上没有太多 的提高也看不到方向。所以决定离开q个城市MPL更好的发展,q且打算攑ּ我以前的MIS转到通信行业?
写到q里不能不提到我x友,我们是在来上前半年认识的,她大四在我公司实习,公司z֥l我写文档,我们的感情发展的很快。她告诉我很多事情,她家原本是改革开攄W一Ҏ发户Q她母亲爱打牌,输掉了几百万Q还Ơ了很多债,Ҏh友,但是她对他没有感情,只因Zl了Ҏ亲两万多块钱Q后来还她写了四万块的借条Q她h友背叛过她ƈ且不止一ơ打她,现在逼她l婚不然p她还钱。这人居然还是一个高校的老师Q她母亲把父亲给她的学费׃Q因为拖Ơ学费她没有办法拿到毕业证。她母亲现在有病需要钱Q我拿出了自q一点积蓄ƈ且跟朋友们接了一些,替她交了学费q给Ҏ亲看 病(后来才知道看病的钱又不知所l,pҎ亲是不是有病我都不知道,但她也是没有办法Q。这个时候我家知道了一些事情,坚决反对我和她在一P她原来的h友也极力破坏。无奈之下我们决定早一定离开q个伤心的城市,q且瞒着我们家。由于时间仓促,我只准备?000块钱Q她仅有的几癑֝׃被她母亲要去了,我买了三张票Q一张是中午的,两张是晚上的Q中午我的家人把我送上船,他们一d我就下了船,我和她乘坐晚上的船离开了这个我和她生活了很多年的城市,带走的只是一w债务。没有来q上L我们两个性倔强Q都不愿意去ȝ同学和朋友。来Ch傍晚6点半Q我们都不知道该d里,我们找了一?0块钱的旅馆,q个戉Kq窗户都没有Q?月䆾的天气酷热难耐,戉K里非帔R热。第二天我们开始租房子Q因n上的׃多,我们基本都是步行Q花了一个星期时_不知道在东转了多少圈后扑ֈ了一?00块的房子Q但是我们都不了解上h付三压一Q还要付半个月的中介费,C一些锅瓢盆后Q我们n上只?00块钱了,工作都还没有着落,q?00块钱要支持到我们拿到W一个月工资Qؓ了省钱我?
自己做饭Q每天买菜只׃块钱Q她非常喜欢吃(也可能她在大学经常挨饿的愿意Q,看到她现在这L吃P用我真的很不忍心。她以前的男朋友也没有放q她Q经常打电话来骚扎ͼq且来上L她,q说了不恐吓她的话Q她q于善良Q说他以前毕竟帮助过她,叫我不要与他一般见识。以后的每天在家是苦等面试通知Q原本我惌速找一家MIS公司解决眼前的困难,但是她坚持让我不要放弃自q理想Q终于功夫不负有心hQ我扑ֈ了一安信公司Q?000块的工资虽然赶不上MIS公司l我开出的价位Q但也够在上L存。她也找C工作Q第一天上班她哭了Q这是她来上L一ơ流泪,我心里很隑֏也很感动?/p>
׃是全新的行业Q我把自己降C零点Q我学的VC、Delphi、数据库z不上用场, 摆在我面前的是嵌入式、协议、信令一些我从未接触q的知识。我知道我没有退路,于是拼命的学习,我把自己当做一个应届毕业生一P一分努力一分收P半年q去我终于熟悉了工作Qƈ且得C公司的表彎ͼ薪水也加了一U。后面的日子里我们省吃P用,把欠朋友?万多块钱q了Q日子终于上了正轨。这时女朋友告诉我她惌研I生Q我也很支持Q于是她辞职在家备考?
另外Q在q里我要感谢我的ProjectManagerQ他原来是一个大通信公司的品经理, 对h非常和善Q我从他那里学到了很多知识,而且他也l了我许许多多无U的帮助。在工作上他l我充分的空间和信Q。记得公司安排我l护一个接入服务器软gQ由于代码量不算太小Q?万行Q,资料和文档都不齐全,我维护v来非常吃力,所以想重新把它做一遍, 公司领导不太支持Q可能觉得工作量太大Q但是他极力支持我,U下里他让我放手dQ?我的l护工作他挤旉做。在他的支持下,我花了半q时间完成了接入服务器的软gQƈ且实C一个相对完整的TCP/IP协议栈。在q里我学会了嵌入式系l设计、驱动开发、TCP/IP和很多通信的知识,我花了一q时间终于自己从MIS开发{C通信行业Qƈ且站E了脚跟。我的开发大量是对硬件的直接操作Q不再受微Y的操作系l,VC、Delhpiq些开发工LU束Q我l于看到了另外一片天I?
我做事情喜欢q根问底Q随着开发的深入QY件开发与g联系来紧密,g?识的匮乏又对我的发展产生了障,而且芯片技术基本上掌握在国外公司的手里Q这对做pȝU设计是一个非常大的制U,一个新产品出来Q第一道利润(也往往是最丰厚的利润)常常都被IC公司如Intel、Motorola赚去了,国内的厂商只能喝Ҏ。所以我军_解决自己的硬件技术障,q打离开通信行业Q进入IC设计相关领域?
当然我明白如果我对硬件了解的非常,没有哪家IC公司会仁慈到招我q样一个一H不通的人来培训。所以我必须努力打好基础Q学一些相关知识ؓ以后做准备。就像我开始从MIS转到通信一P我看q大量通信斚w的书Qƈ且给一个ISP做过RADIUS计费分拣収ͼ在这L背景下这安信公司才给了我q个Z。我在的通信公司是做pȝ设计的,有不PCB Layoutg人员Q^常我注意向他们学习Q由于我做的是YӞ在公司看g资料不好意思,所以开始只好在家看Q刚来上工作我q箋一q都在加班,后来不加了,因ؓ我要挤出旉学习Q通常?2点左右睡Q第二天5点半P我上班比较早Q地铁上如果Z多我也用来看书。学习当然不会是一帆风的Q有些实在不懂的问题q累v来问g人员Q他们的帮助使我学习q度快了很多Q因为在没有人点拨的情况下自学,我的一半时间是花在解决疑难问题上,但这U问题经常是别h的一句话可以让我豁然开朗,我非常庆q我有这L学习环境。在后面的一q里Q我学会了看g原理图,学会了简单的g设计Q模拟电路方面还有不的差距Q,事情是q样的,当你安安份䆾做YӞ别h永远认ؓ你是软g开发h员,在你开始学习硬件时别h未必会认同,有位中兴通讯的朋友还Ҏ说过Q一个h不可能把所有东襉K学完。我也明白这一点,但我希望自己做的更好。但当你熟悉g后大家又会觉得你好像原本是软硬仉懂的Q同事们也都习以为常了。这个时候我可以把硬件资料堂堂正正的拿到公司看,没有人再大惊怪了?让我比较自豪的是我通过自己的努力做了一个IADQY交换的终端设备)pȝҎQ包含Yg的选型、设计等内容Q这个方案得C公司和同事们的认同,让我感到非常ƣ慰?
技术是相辅相成的,当我的硬件有了一定的q步后,我的软g设计也有了很大的提高 Q我可以从更深层ơ理解问题,我做的接入服务器CPU是Motorola PowerPC860Q熟悉的朋友都知?60 QMC与Y件的扚w数据传输通常采用BD表的方式Q硬件h员做驱动的时候习惯采用固定BD表,每接收或发送数据都数据从BD表拷贝到用户BufferQ或从用户Buffer拯到BD表,׃理解的比较深入,我自己重新实Cq个q程Q采用动态BD表的方式Q驱动从一个网口接收数据,提交l我的Y件进行三层交换,直至从另外的接口发送出去,没有q行一ơ拷贝。这L设计大大提高了性能Qɾpȝ的指标接q理论倹{Yg的结合我的设计水^上了一个台阶。我现在写的q个操作pȝQ编译后我把E序反编译成汇编Q找出其中不优化的代码,然后在CE序中进行调整。D个例子,很多CPU没有专门的乘法指令,q个大家应该都知道,在这UCPU上进行一个乘法操作常怼p大量的指令周期, 有的朋友会说q个我知道,我会量避免采用×P但是事情往往不是那么单,你知?
C语言中数l的下标操作是怎么实现的吗Q仔l看看反汇编的代码你׃明白Q同h通过下标的定位操作,C~译器会有时候会产生位移指oQ但有时候会用乘法实玎ͼ两者效率往往是天壤之别,所以明白这些问题你才能系l性能提升到极致?
些问题就不多说了Q有兴趣的话以后可以共同探讨?
话说q一点,我由L希望在Y件上做的比较深入的朋友们有机会学学硬件以及其?相关知识Q尤其是做底层开发和嵌入式设计的。这对Y件技术的提高有非常大的帮助,否则很多事情你只知道该这样但不会明白Z么该q样。我q个观点在我现在的IC公司Project Manager那里也得C验证。他告诉我们公司现在?02.11芯片产品的Y件经理原本是做该芯片g设计的,某某某原本是做Y件的Q现在在做ICQ类似的例子q有很多Q只是在国内q样的风气不是非常流行?
我有一些心得体会与大家分nQ只有当我干好本职工作后Q我才会学习与工作关pM 大的技术,q样公司的上司才不至于反感,在入门阶D늚问题我通常不去问那些资׃h?Q而是问一些资历比较浅的朋友,比如刚毕业不久的学生Q因Z们往往会跟你详l的讲解Q而资׃h士通常觉得你的问题太简单,所以回{的也很单,我又不好意思多问。等技术上了一定的层次后我才会问他们,他们也能l你比较深入的回{。另外,有些朋友说我Z比较好,他们也希望能从事新的工作可惜没有ZQ我听了只有苦笑Q我的机会了解的人都应该知道Q我没有出生在什么IT世家Q)也没有谁一路提拔我Q所有的路都是自p出来的,我母亲去世比较早Q我的后母(我叫奚w姨)看着我努力过来的Q一ơ她看我大年30q在写程序,她说像我q样努力木头都能学出来?
我的最l目的是IC而不是PCBQ所以我下一步的准备开始学习IC设计的知识。公司的同事没有懂IC设计的,后面的\又要靠自׃Q我C不少相关的书Q在|上也查了很多的资料Q我׃大量的时间去学习VHDLQƈ且用软gq行了一些简单的设计和仿真(没有设计ASICQ只是针对FPGAQ,随着学习的深入,我渐渐明白了IC设计的基本流E,同时也明白了q条路的艰辛。这个时候我已经做好了蟩槽的准备Q我向一家业界又一定知名度的IC设计公司投了历,q过了O长的面试Q?个多时Q。其他的一切我都比较满意,唯独薪资差强人意Q我也明白原因,因ؓ我是q个行业的新人,我没有经验,我再一ơ将自己清零了。公司老板问我6000多一个月能不能接受,我知道他也是照章办事。想x通信行业的朋友们Q基本上都是q薪10万以上,月薪q万的也比比皆是Q朋友们也帮我介l了不少待遇不错的公司,我该怎么选择Q当时我很犹豫,我热爱我的事业,我向往我的q求Q?但我也是一个普通的人,我也需要养家糊口,我也x一点买房买车。生zȝ我出了一道难题?
爱因斯坦?3岁时说过“一个h没有?0岁以前达成科学上的最大成,那他永远都不会有。”这句话l了我很大的压力和震动,我马上就26岁了Q离30只有四年旉Q我必须抓紧q几q宝늚旉Q努力达到我技术上的最高峰。ؓ了这个理惻IZ能离自己的梦更近一些,我选择了这家IC公司Q我明白自己的薪资和公司刚进来的士研究生相差无几, 但ؓ了今后的发展只能忍受Q一切又得重新开始。换行业是一个非常痛苦的q程Q尤其从一个春风得意的位置换到一个陌生的岗位Q感觉象从温暖的被子里钻出来跌冰水中,让h难以接受。在原来那家通信公司Q我是唯一两年旉涨了五次工资的员工,公司和同事都l了我极大的认可Q工作上也常常被委以重Q。但现在q一切都成了q去Q在新的公司我只是一个新?没有人知道也没有人在意我q去的成l。我军_重新开始,我把自己看作新毕业的学生Q我要用自己的努力得到公司的认可。进入新的行业是非常痛苦的,我告诉自己必d受这一切,虽然外面有很多诱惑,但是既然作出了选择我就不允许自p易放弃?
我现在已l在q家新公怸了一个多月的班,开始非常艰难,现在慢慢适应了。第一 个月l束ӞTeam Leader找我谈话Q说我是新进员工中最优秀的一个,我心里很ƣ慰Q这也算Ҏ努力的一个肯定吧。在q里q要感谢我的x友,她给了我很大的支持和鼓舞Q?每次在我动摇的时候她都在鼓励我,让我坚持自己的理惻I刚来上v是她让我不要勉强dMISQ这ơ也是她让我住了月薪过万的诱惑Q没有她我可能不会有今天的成l?现在的公司有自己的操作系l,自己的CPU、DSP和其它芯片,在这里我能学C界上最先进的技术,我们的设计开发不再完全依赖别人的g和系l,q让我很开心。我打算{工作步入正轨后Q全力学习新的知识,实现我的理想?
在后面的两年里我l自己定下了几个目标Q?
一.努力做好本职工作Q在工作上得到公司和同事们的认同Q?
?努力学习ICg设计知识Q多向同事请教,q利用一切机会多实践Q?
?实现我的实时操作pȝ的主要部分,完成TCP/IP协议栈模块,q免费发布源代码Q?
?和我x友结婚ƈC套小房子Q这是最重要的,因ؓ我明白事业是可以重来的,但是珍贵的感情很隑֤而复得?
在这里提一下我现在开发的操作pȝQ它是一个实时嵌入式pȝQ目前支持以下特性:
a.支持旉片轮转调度和Z优先U调度,最?4个优先Q?
b.抢占式实时内核;
c.Z便于ULQ主体用标准C实现Q?
d.汇编代码非常,不到100行;
e.支持d理Q各d有独立的堆栈Q?
f.q程同步和通信目前完成了SemaphoreQMessage Queue正在调试Q?
g.实现了定时系l调用;
h.可以在windows上仿真调?
我还打算下一步实C先反{保护QEvent FlagQData PipeQ内存管理(以前实现q)、驱动接口等?在这之后我还会努力完善它Q比如加入文件系l,协议栈、调试接口等。希望朋友们提出自己的意见和Q在此不胜感ȀQ?
后记Q?
像有的朋友说的Q我的经历或怼l一些朋友生误|在这里我必须说明一下?我来上v以前学习q于拼命Q常常晚上只?个多时Q我w高1c?1Q那时只?08斤(我现?30多)Q家Z说我q样拼命zMq?0岁,但是当时的我太固执,我对他们说只要能实现理想z?0岁我够了。那时的拼命使我的n体受C影响Q有一ơ早上突然腰肌剧痛难忍,痛的我倒在床上站不h。虽然我现在已经比较注意Q但有时候还会隐隐作痛。后来在x友说服了我,来上以后我不再如此。我l常引用父亲的一句话“n体是革命的本钱”?
而且我也发现拼命不是办法Q我可以熬一两个通宵Q最多的一ơ我q箋工作了三天三夜, 但是我半个月都没有恢复过来,q样是不是得不偿失?学习工作应该是一个长期的q程Q?像马拉松而不是百c_刺。我现在非常注意调整学习和工作的强度Q我要保证每天尽量有相对充沛的精力,一些年ȝ朋友觉得自己也应该拼命努力,q让我多有些担心,如果我的故事能让你在学习工作上多一点兴,我会感到很开心,但如果误g某些朋友Q让你做一些不值得的付出,我会感到很内疚?
技术没有贵贱只分,我以前换行业是因q兴趣所_而不是对哪个行业有什?偏见。我希望我的l历不要l朋友一个错误的导向Q觉得我始终向更高的技术发展。其实各行各业做到顶都是很困难的。话又说回来虽然技术没有贵贱,但是门槛是有高低的, 无论如何Q做IC的门槛要比做|页的高Q这一Ҏ可否认。国家各Uh才都是需要的Q但是作Z人奋发向上的xq是应该有的Q努力在自己喜欢的行业上做的更好Q而不应该停留在比较肤的层次上?
我是一个自p得比较有自知之明的hQ或许我最大的优点是知道自己有很多缺?Q)。我的故事中很多的曲折和错误都是由我的缺炚w成的,希望大家用审慎的眼光看待我的l历Q不要被我的“花a巧语”所qh。我学习有些随心所Ԍq给我带来了无尽的麻烦,也大大阻的我的发展。记得我时候成l比较出Ԍ但是后来学习严重偏科Q导致我中学成W一再滑坡,也没有考上什么好的学校,时候的一个朋友,当时的成l和我相仿,但是没有我这个缺点,她上了清华,后来在去了美国深造,在一个著名导师手下研I理论科学,q未不是一条更好的\。另外我的学习方法也是在不断改善中的Q过?的学习过于讲I数量和旉Q那样学习既苦而已效率不高Q现在我非常注意学习的效率和技巧,q样才是学习的捷径(当然不是指投机取巧)Q比如说学一相对陌生的技术,如果有条Ӟ不妨问一问有l验的hQ不需要问很多Q往往他不l意的几句话会给你非常大的帮助,甚至过你看一个星期的书。带着q样的思想再去学习你会节省很多旉Q这样何乐不为呢Q这些年中我学了不少的东西,׃开始非常盲目,所以学的东西杂乱无章,现在回想h让我啼笑皆非Q我把大量的旉费在一些没有必要深入了解的知识上,毕竟一个h的精力是有限度的。很多朋友很我一样都背过五笔字ŞQ的它是个不错的输入法Q但是对一个研发h员它l对不值得你去背,你的旉应该花在有h值的地方。我q样的事情还做过很多Q我背过CCED、WPS的命令和快捷键,在dBase基本退出历史舞台后我还׃很多旉d习它的用。所以我的学习在前期~Z规划Q没有明的短期目的、中期目标,只有一个虚无飘渺的长期的理惟뀂这像做设计一P好的设计是从需求抽象到代码有很多过E,而不能得C需求就立刻开始开始编码?
当然q么些年的学习和工作多多少有些收获Q下面我说说我的一些学习的心得Q这 些方法未必正,我也在不断探索和改进中。我的学习和工作有相Ҏ的目标Q我不会一时心动而去学习某一技术,在下军_之前我会考虑很多Q包括长期的发展Q个\U的规划Q需要付出的代h、可能遇到的困难及解决的办法{等Q在军_后还会制定更加明的计划Q包括短期、中期和长期的,w边可以利用到的资源Q包括好的书c、资料、Yg环境Q也包括有经验的朋友或者师长)Q以及每一个阶D|怎么q渡到高一阶段的计划,往往在一个学习阶D一旦上路后会走的相寚w利,但是跨阶D通常比较ȝQ比如从学习基础知识转到实践。另外我C也有自己的方法,现在世面上高质量的书q不如低质量书多Q对于一个陌生的技术,往往在第一ơ买书会选择错误Q即使买C本好书但是它的方向也未必适合你,所以我通常会先在网上查找一些该技术的介绍Q有了一点点概念后再M一本比较薄、相对便宜ƈ且内容相Ҏ泛而谈的书Q这是国内作者最善于写的书:Q?Q再把它览一遍后我就会基本明白这门技术的要点Q后面买书和制定计划׃明确的多。否则一开始就x本好书往往比较困难Q而且买回来后努力学习Q有时候学了一半才发现是本低质量的书或者是相对q时技术,让h非常懊恼。另外让有经验的人帮你介l,通常也是一个不错的选择?
有些朋友惛_通信、嵌入式开发,但总觉得自己没有Yg环境Q我按我的了解l?大家介绍一下怎么建立q样的环境,当然我了解的只是我学习和工作的方向。通信我做的是数据|方面的工作Q包括TCP/IP、二三层交换、对接入|、H.323和Y交换也有一点认识。这些Yg环境都是可以在PC上构建的。你甚至可以在一个没有网卡的PC上徏立一个包含多个\由器、接入服务器、VoIP|关、网守、主机等的仿真网l环境,而且与实际的|络相当接近Q当然这需要你有清晰的|络概念和一定的|络知识Q我一直在努力开发一套Y件将q个q程化,目前试验已经做完Q我可能会将它融入我的操作系l外围扩展Y件中。这LҎ我无法用单的语句讲的很清楚,我可以说一下大概的思想Q就是在PC上实C真网卡,Q知道Windows怎么在没有网卡的机器实现虚拟|卡技术的朋友都应该会明白Q,然后每一个仿真网卡对应一个虚拟设备,如\由器或者主机。你也可以借助W三方工具完成部分工作,如VmWare{。我现在是利用一个仿真网卡做自己的开发的?
至于嵌入式开发环境更加容易实玎ͼPC是一个非常大的硬件^収ͼ现有的嵌入式?作系l通常都支持X86Q你可以在上面做开发,通过软盘Boot或者用虚拟机装蝲Q我用VxWorks做了试验Q在一台PC上跑Windows和VxWorks两个pȝ。另外Windows上的兼容DOS?6位仿真X86环境也ؓ很多操作pȝ提供了绝佳的试验环境Q我的操作系l在Windows上就是这样实现的。Linux在嵌入式中应用也比较q泛Q它在网上有大量的资料,而且也相Ҏ较容易实c同时很多完善的嵌入式开发环境支持Y件仿真,如Tornado、WinCE{?
前段旉处理了很多事情,一直没有写下去Q花光了所有的U蓄C一套房子,同时把户口的事情也基本办完了Q这几天E微~口气。昨天跟我的一个老上司见面聊了半天,心里感慨万千。他从外在条件看让不外人M慕,二十多岁做过C863目的负责hQ博士毕业的׃h单位也非常好。现在三十出头的他在一个通信公司做品经理,工资虽然不算高但也有一两万Q而且q持有股份。但是我们了解的人才理解他的艰辛。“白领”这个词在一些h看来是仿佛是一个动人的光环Q但是在我看来是一个无奈的名字Q每天行走在大街上,来来往往的R中有多是“白领”的Q又有几个“白领”住的v高档的住宅?在上一套别?00万不ؓ奇,按揭h下来总额接近600万,q薪二十万在上v是一个中高“白领”,高额的税金去掉了你百分之几十的收入后Q这L下来不吃不喝也要四十多年Q加上生zȝ其他开支,注定了你与这L住宅无缘。看着外面一套套别墅Q一辆辆好RQ我不知道它们是谁的Q但我知道其中没有什么白领。我觉得自己很ؓ,在这个喧闹的都市中我如同一只蚂蚁,但我有不甘于q_Q我不愿做一个单U的“白领”?/p>
其实很多朋友q不了解我,我不是一个追逐时技术的人,我只是不愿意做一个所谓的“白领”,更加不愿意做一个单U的“程序员”。我不甘愿^凡的生活一辈子。我在不断的努力Q我的方向非常明,我要做多Ch不做和做不到的事情,很多朋友Ҏq样频繁的换方向不理解,觉得一个h只要熟悉一U技术就可以了,对于q样的看法我只能说你薄Q现在的大的pȝ和品往往都是软g、硬件和应用相结合的Q我要做的不是哪个方面的专家Q而是希望能够成ؓpȝ设计师。我不相信一个只_N发动机的专家能够设计一辆好车,同样我也不相信对g一H不通的做出一个操作系l,或者一个对财会没有一Ҏ늚设计Z个优U的胦务Y件。在工作中我发现C会上非常缺乏边~h才,其是在国内。在国外一个h软硬件兼修非常普遍。如果设计品的人只了解他的专业那么是很难有的设计。所以我必须着自己q轻学的更加q泛一些,q样才能提高自己的综合素质,q也是ؓ什么高校那么多非专业课E。学习工作了q些q_实际上都没有qITq个行业Q我现在的公司开发一个系l时Q先是将最l功能列举清楚ƈ分析可行性,然后划分哪些是用芯片实现Q哪些是用硬件电路实玎ͼ哪些是用软g实现Q这L设计才能做出最好的pȝ。如果一个设计者单U只懂一个方面是不可能做到这一点的?/p>
自负常常伴随着无知Q记得我大学毕业Ӟ论文{辩会上我和专家l组长争h了,因ؓ我对自己的设计非常得意,而他虽然是鸡蛋里挑骨_但是׃知识非常有限Q我无法回答他的问题Q所以有些“恼成怒”。我原来一直喜Ƣ用“所谓”最好的开发工P记得做过一个愚蠢的设计Q一个排课表的Y件我用VC+Oracle开发。这些经历我牢记在心Q时L醒自己学会谦虚。我的亲w经历加上我对一些nҎ友的观察发现q样一个现象。当一个h只会他认为最好的技术,而对其他的一无所知,q样的hl常是目IZ切?br />从第一个“Hello World”到今天的操作系l,前前后后写了很多代码Q从q中间我也积累了很多心得。由于我是在没有人指导的情况下自学编码的Q所以走了很多弯路,也犯了不错误。最初我写程序全凭自q感觉Q写一个新E序对结构设计不很重视,以ؓ学好语言Q数据结构就可以写出好的E序Q其实远不是q样的。没有设计的情况下,也可以写Q但是程序无法写的很大、很复杂。我个h的经验是q样的系l超q?000行我无法控制了Q以前我用VC写过一个Windows下的应用E序Q大?000行左x对它失去了控Ӟ整个代码一团糟Q这8000行倒是可以相对E_的运行,但是我没有能力再增加什么新的代码,动辄前后冲突Q要么就是新代码与旧设计格格不入Q需要调整旧的程序。最开始我写程序喜Ƣ追求代码的_yQ别人很多行写出来的代码自己只写很少可以实玎ͼ感觉那样比较酗其实这样也是非帔R误的Q我现在写程序非常注重结构设计,Zl构清晰我愿意牺牲一Ҏ率?/p>
下面一D话是我写程序的座右铭,希望与大家共勉:
Make it right before you make it faster.
Keep it right when you make it faster.
Make it clear before you make it faster.
Do not sacrifice clarity for small gains in efficiency.
Brian Kernighan
另外补充一点:我和我的x友现在非常好Q双方的家h都认可了Q我们决定在q期l婚?br />