Wednesday, January 31, 2007

test

 

 

Best Regards,

Amy Dan

Marvell Semiconductor Inc

 

Office Programming-- How to make office file readonly when automating them.


Solution:


1. Find the handle of edit area window:


2. Disable the window using Win32 API: EnableWindow();



Sample code:


CFindWnd fwndWord(this->GetSafeHwnd(), _T("_WwG")); //Use Spy++ to hook it.
CWnd * m_pWndWwG = CWnd::FromHandle(fwndWord.m_hWnd);
if( m_pWndWwG)
{
m_pWndWwG->EnableWindow(FALSE); //Disable the editable of word.
}



// This class encapsulates the process of finding a window with a given class name
// as a descendant of a given window. To use it, instantiate like so:
//
// CFindWnd fw(hwndParent,classname);
//
// fw.m_hWnd will be the HWND of the desired window, if found.
//
class CFindWnd {
private:
//////////////////
// This private function is used with EnumChildWindows to find the child
// with a given class name. Returns FALSE if found (to stop enumerating).
//
static BOOL CALLBACK FindChildClassHwnd(HWND hwndParent, LPARAM lParam)
{
CFindWnd *pfw = (CFindWnd*)lParam;
HWND hwnd = FindWindowEx(hwndParent,NULL, pfw->m_classname, NULL/*, pfw->m_classname*/);


if (hwnd) {
pfw->m_hWnd = hwnd; // found: save it
return FALSE; // stop enumerating
}
EnumChildWindows(hwndParent, FindChildClassHwnd, lParam); // recurse
return TRUE; // keep looking
}
public:
LPCTSTR m_classname; // class name to look for
HWND m_hWnd; // HWND if found
// ctor does the work--just instantiate and go
CFindWnd(HWND hwndParent, LPCTSTR classname)
: m_hWnd(NULL), m_classname(classname)
{
FindChildClassHwnd(hwndParent, (LPARAM)this);
}
};




Technorati :
Del.icio.us :

test whether could post blog from outlook directly.

Hello, this is a test.

IE Programming : Preface


During the past two months, I am working for a project that need to interact with IE programming. I came across too much obstacles and weird behavior that brings me a lot of troubles. It took me too much time on troubleshooting, googleing and posting on newsgroup. I hope to record some of the problems which I have investigated on the IE programming series. Although the title is marked as 1,2,.. etc, they are not organized logically.


My system is crashed last weekend.


I have to write blog in English:)


Last weekend a terrible thing came to me that my laptop was suddenly
bluescreen and unable to login to the system even in the safe mode. So I decided to reinstall the system. After about 10 minutes' ghost, the laptop runs well again. But some importance data which storeed in C: was lost! My several blogs saved in zoundry were gone with the ghost:( Most of them are technique article. I have to rewrite them again.


Today Carol Bartz, president and CEO of Autodesk,Inc., came to our company again and gave us a presentation. All of us gathered in 20 floor which is my first time to that floor since we moved to the new office. This time the microphone was still working badly as usual.




What is more importance?


朋友比领导重要,


方向比努力重要,


能力比知识重要,


健康比成绩重要,


生活比文凭重要,


情商比智商重要。


Friday, January 26, 2007

NPR is available now.


NPR 好长时间不能用了,都是台湾地震惹的祸.很多国外的在线vedio都不能听了,前几天下了个龙卷风,但是声音很小,听不清楚.今天偶然试试NPR能不能打开,居然可以用了! 网速还不错,基本不卡.


仔细听一下,居然发现绝大部分都能听清楚了,应该有八九成了吧!差不多一个多月没有听英语了,难道听力一下子提高了这么多?!真是high.


回想以前的经历,如果长时间学习一项东西,慢慢的就会进入疲劳期,进步缓慢. 但是如果放下一小段时间后再学时,就会发现一下子好像进步了很多,以前很多不会的现在都一下子懂了


不过不清楚着是真的进步了还是退步后的表现:) 不过这次听力好象是真的提高了不少:)


Thursday, January 25, 2007

明天就code complete了.


明天就是code complete的日子了,还有几个feature没有完成,关键的是没有解决反感,这时最苦恼的.最近一个多月来做的这个项目进展的实在是不顺,真正的code到是没写几行,但要解决的问题都挺棘手的.考验的是troubleshooting能力.



晚上哉csdn上看了一个blog连载,记录的是一个IT同行出差印度的所见,所思,所感. http://blog.csdn.net/popeye008/archive/2004/03/08/22212.aspx 文章写的很不错.


有个问题我一直很奇怪,为什么有的人很能说,有的人很能写,也就是输出能力很强?而我就是写不出来.这种能力究竟是先天就有的还是后天训练而来的?依稀感觉天才的文豪,作家估计也有,可能更多的还是后天的训练而来,那么后天要经过什么样的训练才能让自己也很能写呢?


尤其是去年看一些技术文章时,比如模式什么的,有的人总时能扯上哲学,宗教,经济,天文,地理什么的,看的人悬悬呼呼的,感觉很有思想似的.为什么我在看统样的事情的时候就想不到?


还有就是看完同样的书,电视,电影后,有的人就能写出一桶又一桶的文字评论一把,而我看完后就是觉得好看,有时候也想写点什么来描述下,可就是写不出来,而且也写不到那么好。为什么我就写不出来?


写文章应该跟写code差不多,都是在摆弄一种语言。都有自己的语法和一定的模式。只不过code是写给机器识别的,而文章是写给人看的。当然写文章相对要难多了,但是应该也是可以学习训练出来的。但是显然,我现在还不知道怎么才能提高自己的表达能力。


路漫漫兮其修远,吾将上下而求索。。。


Training & Lecture style.


Training & Lecture:


What


Difinition


Why:


History


Background


Advantage


Disadvantage


How


theory


Instance


Demo


Practice.


Saturday, January 20, 2007

Several ways to edit and post blog.


1. Online: www.blogger.com


2. Window client: Zoundry,Microsoft Live Writter.


3. Gmail: bloggername.internalname@blogger.com


4. Outlook: same as gmail


5. Microsoft Word 2007.



Friday, January 19, 2007

Some idea.


晚上给tech lead写mail汇报情况加了会班,同组的还有个同事没走,看样子做的挺郁闷的.于是就聊了下,因为项目下周就code complete了,现在基本都还没写code,最关键的是思路还不是很清晰,觉得时间特别紧,要做的特别多,但是又不知道怎么动手.她主要的问题是把问题复杂化了,应为追求完美,想把事情做的很好,于是就考虑太多的情况,造成的结果就是一团麻,下不了手,什么都做不了.


其实我自己以前也是这样的,现在慢慢的改掉了一些.处理事情的一些基本原则应该是:


看问题要抓住事物的本质.
解决问题是应解决主要矛盾,然后再考虑次要方面,以做到全面.
还有,要时刻提醒自己,你的目标是什么?
考虑问题应该是将复杂问题简单化.


I have to study generic programming in 2007.


今天美国那边的tech lead终于解决了困扰了我们一个多月的技术难题-suppress the security dialog when open an office document with IE.而且一出手就不同凡响.跟他一起作项目快一年了,就见他写过三次代码,每次都是泛型编程,几乎什么问题到他手上都可以用泛型来解决.可能这就是老外所谓的Thinking in...了--Thinking in generic programming!



工作快两年了,跟了两个美国的tech lead,都挺牛的,第一个,matt,结束不是很多,但是感觉写代码超快,技术难题两下就解决了.第二个David,跟我们一起写的代码基本不多,但是每次写出来的必是泛型的,命名都是一些前缀带下划线,变量都是两三个字母不知含义的那种.打开文件,满眼全是符号,而不是象Java或是C#那种OO感特别强,接近自然语言,即使不太懂编程语言的,看看那些英文单词也能猜个差不多.真不知道他是怎么把泛型练到如此纯熟的,等这个项目release完了一定要请教学习下,有这么好的资源不用真是浪费.



而且老外还有一个特点就是不用IDE,喜欢用command line的方式,可能跟版权有一定的关系吧,估计他们学习的时候很多都是在linux下用一些开源的开发工具的缘故.要搭建个window环境下的编程环境,代价可不小,正版的window+Visual studio.net+Sql Server,可能还需要office,乖乖的,好几千dollar啊,都够大学四年学费了.而我们在地摊上10块钱就配齐了.不过也难怪,公司里一个美国员工的薪水都顶我们中国十个廉价劳动力了的成本了.



自从上个月台湾地震后,AOL就基本登不上去了,后来干脆就不用了.上午刚上班,team lead就让我赶快登AOL,说David要跟我讨论问题.我刚一上线, David就传给我他写的demo,好家伙,全都是generic的,一堆带下划线的不明其义的Parameter,variable,typedefine,macro,看的心里发慌. build 下没通过,提示缺少resource 文件,把错误发给他后,这才知道他写代码根本不用IDE,也不debug, 用Diagnorse的方式输出到output window看结果就行了!而且发给我的IDE版本他根本就没编过,当他把rc文件发过来后一切都OK了,真不知道他是怎么写code的.


编译通过后David就带我简单的看下code.他打字太快了,而且英文也很native,都是一些极其简单的单词,组合在一起后有时就是不知道什么意思,偏偏昨天刚装的系统,powerword也没装好,基本上跟不上他的节奏了,他每敲完四五行,我就用些ok, yes, see, good,got回应一下.主要还是因为泛型用的太活了,看不习惯.


到下午的时候我就一边看聊天记录一边看代码,这才慢慢理解他的话和代码.代码封装的非常好,只需继承最上层的类,调用下Startup()和Cleanup()就行了.他说代码整理过了,只为了make your life easier.正是不虚此言!整个过程可以这样来比喻.一个刚学电脑的菜鸟跟老鸟学习电脑,老鸟打开机箱,然后跟他说这是cpu,做什么什么用的,那是内存,还有那是主板,都是做什么什么用的...菜鸟在一旁听的晕晕呼呼的~完了老鸟说,现在我要睡觉了,你自己研究下然后把它run起来吧.菜鸟研究摆弄了一个下午,最后突然明白,原来挺简单的嘛,只需盖上盖子,按下power就行了啊:)


It really make my life easier!


Thinking in generic programming-I have to study it this year!


Wednesday, January 17, 2007

Secret of Start-Run Line command..


The "Run" line in the Start menu can be used to speed up access to a whole variety of functions. Some examples of the shortcuts that are available are discussed here.


There are dozens of commands exist in system and some of them are easy and known to nearly everyone,i.e: "cmd" to open command prompt window, "regedit" to open registry editor. But many others are unknown to most of us,and if you are a sheer lazy guy that hated to find the shortcut icon from thousands of icons on your desktop, this artical is helpful to you.


How to find the command which could run in Start-Run line to a new application?


Take Microsoft word as example, if you wondered which command could launch MS word from Start-Run Line, you could launch a word application and view its process name from task manager window-it is winword.exe. OK, that's enough, type winword in Start-Run will able to launch word.


And here is a list of system management command:

































ciadv.mscManages the Indexing Service
compmgmt.mscComputer Management Console. It contains a number of the other consoles
devmgmt.mscDevice Manager
dfrg.mscDisk Defragmenter
diskmgmt.mscDisk Management
gpedit.mscGroup Policy Editor. Windows XP Professional only
services.mscManages the many services involved in Windows and installed software



Some idea about task assignment.


我在负责项目时存在如下缺点:


项目任务分配不明确,



task breakdown 的缺点:


task之间关联性强.理想的应该是每个task都是独立的,上下文依赖不强烈的,即如果分给一个新人的话可以快速上手.


task大小不均匀,有些task设计到很细的细节,有些又非常笼统.


task时间估计不准确.


遇到技术难题时如何处理?







Demo is a powerful tool for effectivity communication.


Today I spent several hours writing an email to our PD,who is in German, to tell him that we have difficulties in implementing some features of preview office document in our project. Within the email, a demo project was also attached to help her understand our situation of what we have done and what are easy or difficult to implemented for us. What supprise me is that PD abondoned several features which are hard to us.It is really reduced the pressure for us and win more time to fix the remaining defects.


So, when communicated with your custommer, who has limit to technique,a demo is really a power tool for the effectivity communication.



Tuesday, January 16, 2007

image in software


软件中常常用到各种图片作为资源来美化界面. 如menu, toolbar, logo, splash, control,etc 中都会加载图片. 而图片的格式也非常多: icon,bitmap,png,gif,jpeg, etc. 其中图片还有bit的概念,如16bit,24bit,32bit,256bit.


这篇文章希望能全面总结各种图片的用法.


Localization in software.


Localization 的三种方法:


1. 字符串等各种资源都写在 rc文件中,然后localization 各个版本的rc文件既可.这是mfc开发中常见的方式,如emule就是这样.


2. 写在xml中.


3.写在text中,见compass.




Del.icio.us :

Requirement of self evaluation.


Teamwork
Definition: Ability to work effectively as part of a team.
Level 1: Basic Understanding
Understands importance of a cohesive work effort.
Understands the concept of synergy.
Can identify primary and ancillary members of own team.
Can identify characteristics of good teamwork.
Level 2: Hands-on Experience
Is Knowledgeable in team mission and objectives.
Understands own role and responsibility within team.
Is open, friendly, accepting, and supportive with team members.
Openly and proactively shares information, knowledge and experiences.
Actively participates at team meetings.
Level 3: Extensive Experience
Is experienced in working on a wide range of teams across various locations and time zones.
Develops an effective working relationship with each team member.
Shows respect for differences and diversity.
Identifies and addresses potential problems, issues within the team.
Consistently earns trust, respect and loyalty of team members.
Understand roles, responsibilities and interdependence of all team members.
Level 4: Subject Matter Breadth and Depth
Takes pride in and promotes individual and team accomplishments; shares credit.
Monitors individual and team effectiveness; recommends or makes improvements.
Monitors individual and team morale; intervenes appropriately.
Maintains high levels of enthusiasm and energy under difficult or adverse situation.
Influential in helping determine team strategy and policy.
Active in identifying and establishing team role in accomplishing organizational goals.


Technical Troubleshooting
Definition: Knowledge of approaches, tools and techniques for anticipating, recognizing, and resolving technical (hardware, software, application or operational) problems.
Level 1: Basic Understanding
Understands basic concepts behind a systematic approach to solving technical problems.
Aware of problem identification, reporting and escalation procedures.


Familiar with available resources and support systems for troubleshooting.
Level 2: Hands-on Experience
Hands-on experience with troubleshooting technical problems.
Experienced with vendor-specific diagnostic guides, tools and utilities.
Has experienced, analyzed, and resolved hardware, software or application problems.
Can describe common hardware, software and communications problems and likely resolutions.
Can cite specific technical problems and describe process and tools used to resolve.
Level 3: Extensive Experience
Experienced with addressing a variety of hardware, software, and communications malfunctions.
Can identify business impact of failure and the criticality and timing of needed resolution.
Can describe specific techniques for isolating a problem and defining resolution approach.
Uses advanced diagnostic techniques and tools for unusual or performance-related problems.
Experienced with resolving integration or communications problem in multi-vendor environment.
Has used vendor-specific troubleshooting resources, facilities and services.
Level 4: Subject Matter Breadth and Depth
Has significant experience in resolving complex, multi-component failures.
Can elaborate on ways of distinguishing hardware, software and communications problems.
Experienced with troubleshooting non-recurring and performance-related problems.
Can discuss alternative troubleshooting approaches and their applicability to types of problems.
Has successfully organized teams of own and vendor experts to resolve major problems.


Programming Languages
Definition: Knowledge of tools and programming languages for writing and modifying programs that comprise an application system.
Level 1: Basic Understanding
Can describe basic concepts of programming and program construction activities.
Can use programming documentation including program specifications.
Familiar with the capabilities of major programming languages.
Can identify locally relevant programming tools.
Level 2: Hands-on Experience
Familiar with the syntax, structure, features and facilities of at least one language.
Can read and interpret an application system design and program specifications.
Can develop structured programming specifications.
Has written programs in a specific language and for a specific platform.
Knows and applies structured programming techniques for structured environments.
Level 3: Extensive Experience
Experienced with multiple programming languages.
Oversees major developmental efforts adhering to the application system design.
Conducts walk-throughs and monitors quality of the development activities.
Can discuss similarities, differences, advantages and drawbacks of different languages.
Assesses the impact of new productivity improvement tools on area of responsibility.
Able to compare characteristics and advantages of different programming techniques.
Level 4: Subject Matter Breadth and Depth
Expertise in multiple programming languages.
Has consulted on program development: methods, tools, techniques, standards and procedures.
Comprehensive experience in development of complex, cross-functional applications.
Has defined programming development activities, checkpoints and deliverables.
Has consulted on the optimal use and choice of programming platform for a given application.
Monitors industry experience; recommends languages for inclusion in toolkit.


Software Implementation
Definition: Knowledge of activities, tasks, practices, deliverables and techniques for developing high-quality, stable software code for use in products and solutions for customers.
Level 1: Basic Understanding
Can identify major activities associated with software implementation.
Can cite industry or company examples of software implementation.
Understands considerations, including roles and responsibilities, of implementating software.
Knows where and how to obtain more information about company software implementation standards, policies and practices.
Level 2: Hands-on Experience
Has experience implementating software in a limited (homogeneous) environment.
Has worked with all basic facets of software implementation.
Adheres to relevant standards, policies and practices of software implementation.
Can cite examples of software implementation in different environments.
Level 3: Extensive Experience
Has experience implementing software implementation in multiple and diverse environments.
Has in-depth knowledge of most aspects of software implementation.
Has knowledge of company and industry best practices for software implementation and their rationale.
Has experience with relationships, inter-dependencies and integration for software implementation.
Facilitates implementation reviews for complex applications.
Has led development of implementation plans.
Level 4: Subject Matter Breadth and Depth
Comprehensive knowledge and broad expertise with software implementation in multiple and diverse environments and applications.
Can discuss alternative software implementation approaches and associated risks and benefits.
Has knowledge of and experience with all major functions, issues and considerations of software implementation.
Has played a leadership role in establishing software implementation standards, policies, strategy and best practices, or has had influence on wide or high-impact decisions and initiatives regarding software implementation.
Can discuss industry and trends and directions for software implementation and cite relevant case studies.
Has a theoretical background and understanding of software implementation; can discuss historical and future perspective.


Application Design, Architecture
Definition: Knowledge of and experience with activities, tools and techniques for converting business requirements and logical models into a technical application design.
Level 1: Basic Understanding
Can describe basic activities and deliverables associated with application design.
Understands the technical architecture relevant to own environment.
Can identify and describe the specific tasks, activities and deliverables of technical design.
Aware of technical architecture standards and considerations.
Level 2: Hands-on Experience
Experienced with the technical design of an application.
Has used specific development platforms, system and program design tools.
Has participated in technical design reviews.
Develops and presents design alternatives for small to medium complexity applications.
Can describe tasks, activities, deliverables and key concerns of technical design.
Level 3: Extensive Experience
Has developed different and multiple technical designs.
Has prepared technical design documents and blueprints.
Experienced with facilitating design reviews and walk-throughs.
Can describe application services such as API and their integration into the technical design.
Created and evaluated technical alternatives for complex applications.
Explored and evaluated design considerations for multiple technologies.
Level 4: Subject Matter Breadth and Depth
Has in-depth knowledge and experience with multiple designs on multiple technology platforms.
Key contributor to selection and evaluation of emerging design tools and techniques.
Has played a leading role in the development of technical standards and platforms.
Provides consulting on one or more aspects of the technical architecture.
Has consulted on the technical design of a high-impact, multi-technology complex application.
Provides consulting and educational support to associates and business line areas.


Project Task Estimating and Scheduling
Definition: Ability to accurately estimate development effort required for specified features as input to overall project plans.
Level 1: Basic Understanding
Can identify key concepts of estimating and scheduling project tasks.
Can define and explain feature estimating and scheduling.
Is aware of benefits of accurately estimating and scheduling project tasks.
Knows where and how to obtain more information about estimating and scheduling project tasks.
Level 2: Hands-on Experience
Has experience estimating and scheduling project tasks in a limited (homogeneous) environment.
Has worked with all basic components of estimating and scheduling project tasks.
Can identify relevant standards, policies and practices for estimating and scheduling project tasks.
Has an understanding of operational issues and considerations of estimating and scheduling project tasks.
Can cite examples of estimating and scheduling project tasks under various conditions.
Level 3: Extensive Experience
Has in-depth knowledge of and experience with estimating and scheduling project tasks in multiple and diverse environments.
Has devised detailed project plans including schedule and resource requirements.
Can describe tools, techniques and methods for estimating software development tasks.
Has participated in evaluating risks and creating contingency plans to meet project deadlines.
Has knowledge of company and industry best practices and key operational issues and considerations for estimating and scheduling project tasks and their rationale.
Considers relationships, inter-dependencies and integration when estimating and scheduling project tasks.
Level 4: Subject Matter Breadth and Depth
Has extensive experience estimating and scheduling project tasks in multiple and diverse environments and under various conditions.
Has managed and consulted on complex high-risk projects involving multiple parties.
Maintains open communication among project participants and affected parties.
Has played a leadership role in establishing standards, policies, strategy and best practices for estimating and scheduling project tasks.
Has a theoretical background and understanding of estimating and scheduling project tasks.


Written Communications
Definition: Ability to produce a variety of business documents that demonstrate command of language, clarity of thought and orderliness of presentation.
Level 1: Basic Understanding
Recognizes the need for clear and concise written communications.
Can offer good and poor examples of business or technical writing.
Can identify characteristics of a well written business document.
Is able to describe and document factual work situations.
Level 2: Hands-on Experience
Is able to write a grammatically correct, standard business correspondence.
Is aware of company policies and procedures on writing internal and external correspondence.
Responds positively to editorial feedback.
Has participated in the development of documentation.
Can discuss the considerations for writing for different audiences.
Level 3: Extensive Experience
Is experienced in developing numerous reports, proposals or documentation.
Has written effectively for a variety of audiences in appropriate language.
Has produced written materials in business and industry-specific technical language.
Has developed materials at varied levels of details.
Has developed a variety of written reports, white papers and proposals.
Understands how and when to use persuasion effectively.
Level 4: Subject Matter Breadth and Depth
Effective at conveying difficult or complex material in an easy to understand style and manner.
Has extensive knowledge of the critical elements of effective and efficient written communications.
Comprehensive knowledge and experience in writing for business and professional publications.
Has authored or co-authored white papers on specialized and state-of-the art topics.
Has written reports, articles, or books for distribution to the business or professional community.
Has used a broad range of techniques in communicating complex ideas to diverse populations.


Oral Communications
Definition: Has the ability to express oneself and communicate with others verbally; recognizing that verbal communication is more than just language - it includes tone, style and structure.
Level 1: Basic Understanding
Can speak clearly and understandably.
Can offer examples of good and poor verbal communicators.
Can describe some non-verbal behaviors that impact the spoken word.
Uses words, grammar and mannerisms appropriate to own function or work environment.
Level 2: Hands-on Experience
Seeks feedback on own verbal and non-verbal style and effectiveness.
Is able to use language appropriate to audience, avoiding technical jargon as appropriate.
Is able to listen without defensiveness or excessive self-reference.
Is aware of own non-verbal behaviors and messages.
Is able to explain an issue in alternative ways to accommodate different listeners.
Level 3: Extensive Experience
Is aware of techniques for validating that a verbal message was received as intended.
Has a history of communicating effectively with technical and business staff.
Effective at adapting structure and level of detail to the needs of others.
Speaks well without preparation (extemporaneously).
Is able to adapt tone and style to alternative audiences.
Has been able to maintain a dialogue in difficult situations; can cite examples.
Level 4: Subject Matter Breadth and Depth
Has consistently communicated difficult or complex ideas clearly and effectively.
Has communicated effectively with senior technical and business associates.
Has communicated effectively with a wide variety of technical and business audiences.
Analyzes and presents the right message or issue in a clear, concise, and logical manner.
Has experience with public speaking (e.g. professional groups, conferences, media).
Uses a broad range of techniques in communicating complex ideas to diverse populations.


Problem Solving
Definition: Knowledge of approaches, tools, techniques for recognizing, anticipating, and resolving organizational, operational or process problems.
Level 1: Basic Understanding
Understands basic concepts behind a disciplined approach to problem solving.
Is familiar with problem reporting and escalation practices.
Is aware of procedures for problem analysis and resolution process.
Can identify key aspects of problem solving techniques used in own area.
Level 2: Hands-on Experience
Has used fact-finding techniques and diagnostic tools to identify problems.
Has identified and documented specific problems and resolution alternatives.
Can identify alternative techniques for assessing accuracy and relevance of information.
Has analyzed alternatives, risks and benefits and obtained decision on resolution.
Can describe a specific problem and offer the perspective of each involved stakeholder.
Level 3: Extensive Experience
Has used specific problem solving approaches and techniques on different types of problems.
Has identified and organized potential problem solvers and led a problem resolution effort.
Is experienced with alternative problems solving methodologies, approaches and their optimal uses.
Has analyzed and synthesized information and devised alternative resolution strategies.
Has repeatedly brought about successful resolutions to critical or wide-impact problems.
Has contributed to best practices for problem solving approaches, tools and processes.


Creativity
Definition: Knowledge of approaches, tools and techniques for promoting creative, original thinking and applying it to existing and emerging situations.
Level 1: Basic Understanding
Has a basic understanding of using creativity in business.
Listens to new ideas with an open mind.
Can discuss characteristics of a creative environment.
Understands existing incentive and reward systems for innovation and creativity.
Level 2: Hands-on Experience
Exhibits interest in new ideas and experimentation.
Shares ideas and is open to other opinions and views.
Explores possibilities, opportunities and viability.
Analyzes own assignments and work environment objectively.
Has contributed to and encouraged ideas; has built on suggestions of others.
Level 3: Extensive Experience
Challenges ways of operating; looks for problems, bottlenecks or inefficiencies.
Maintains balance between innovation and pragmatism.
Monitors innovations in field and explores usefulness in own function.
Encourages, solicits and rewards imaginative ideas.
Supports experimentation and accepts occasional setbacks or failures.
Challenges conventional thinking - adept at looking at old problems in new ways.
Level 4: Subject Matter Breadth and Depth
Creates a climate that cultivates imagination, new ideas and experimentation.
Promotes a climate that encourages fresh perspectives and ideas.
Positions setbacks or failures as learning opportunities.
Has championed new initiatives within and beyond scope of position.
Encourages brainstorming, unrestrained thinking and innovative ideas.
Directs creativity toward effective implementation of technology-related solutions.




Del.icio.us :

Sunday, January 14, 2007

Dll, Lib in MFC


静态链接库与动态链接库都是共享代码的方式,用来提供变量、函数或类.


一. DLL vs Lib:


1.
如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。
但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件。
2.
静态链接库中不能再包含其他的动态链接库或者静态库,
动态链接库中还可以再包含其他的动态或静态链接库。


二: 三种系统dll.


kernel32.dll 中的函数主要处理内存管理和进程调度;
user32.dll 中的函数主要控制用户界面;
gdi32.dll 中的函数则负责图形方面的操作。


三: 三种MFC Dll

在VC6中有四种形式的MFC DLL(在该DLL中可以使用和继承已有的MFC类)可供选择,即

Regular statically linked to MFC DLL(标准静态链接MFC DLL)
Regular using the shared MFC DLL(标准动态链接MFC DLL)
Extension MFC DLL(扩展MFC DLL)
Non-MFC DLL(非MFC 动态库)


第一种DLL的特点是,在编译时把使用的MFC代码加入到DLL中,因此,在使用该程序时不需要其他MFC动态链接类库的存在,但占用磁盘空间比较大;


第二种DLL的特点是,
运行时动态链接到MFC类库,因此减少了空间的占用,但是在运行时却依赖于MFC动态链接类库;
它包含一个继承自CWinApp的类,但其无消息循环;
这两种DLL既可以被MFC程序使用也可以被Win32程序使用。


第三种DLL的特点类似于第二种,做为MFC类库的扩展,只能被MFC程序使用


第四种dll的特点是, 非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;




Technorati : , ,

Context menu


void CHook1View::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{


CMenu menu;
menu.LoadMenu(IDR_MAINFRAME );
CMenu* pmenu;
pmenu=menu.GetSubMenu(0);
pmenu->TrackPopupMenu(0,point.x,point.y,this);

}


Friday, January 12, 2007

Published with Z-blog


This blog is just for a test, that whether could publish a blog with Zoundry.


IMG_0106.JPG


It seems that able to post iamge,that's great!



My Reading List

技术,业务,管理,商务
Technical, leadership, communication
观察力,决策立,领导力,执行力。


――――――――――――――――Tech―――――――――――――――――――――
--Pattern—Analyse--Design--
Design Pattern
Analyze Pattern
Refactoring
Refactoring to Pattern
Agile software development
Modern C++ Development
Core J2EE pattern
www.lcspace.net

--Architecture—
软件体系结构
软件架构的艺术 The Art of software architecture
软件架构实践Practice Software Architecture
软件架构编档
企业应用架构模式
面向模式的软件架构(一 二三)

--Project Management--
软件开发项目管理
项目管理艺术 The Art of Project Management

--Gerald M. Weinberg--
你的灯亮着吗
系统设计的一般原理
咨询的奥秘(一二)
如何求解问题-现代启发式方法

成为技术领导者
系统化思维导论
软件。质量。管理(一二三四)

----UML-----
UML风格
UML与模式应用 Applying UML and Pattern

--Software Engineering--
软件工程-实践者的研究方法

--Language--
The Evolution of C++
Thinking in C++
Effective C++
More Effective C++
Programming .net framework
《Visual C++编程深入引导》
深入浅出MFC


--COM--
COM原理与应用
COM编程指南
COM技术内幕
Essential COM
ATL Internal
COM高手心经

――――――――――――――――――哲学―――――――――――――――――――
《西方哲学史》
《中国哲学史》
《世界文明史》
《中国文明史》
《世界通史》
《中国通史》
《西方文学史》
《中国文学史》
《中国哲学智慧》
《西方哲学智慧》
《哲学的故事》
《四书五经》
《墨子》
《老子》
《庄子》
《韩非子》
《孙子兵法》
《三十六计》
《人间词话》
《资本论》
《理想国》
《圣经的故事》
《希腊神话》
《》

――――――――――――――――――管理―――――――――――――――――――
《快意管理学:水煮三国》
《深圳,你被谁抛弃》
《走出华为》
《华为真相》
《华为冬天》
《深圳,谁抛弃了你》
《我的生活与你无关》
《朱三角失掉竞争力了吗?》
《许三观卖血记》
《活着》
《在细雨中呼喊》
《兄弟》
《人性的弱点》
《成功学全书》
【MBA通才之道-中外MBA分析指南】》
《阿里巴巴:天下没有难做的生意》
《搜主义-Google持续成长的秘密》
《联想风云》
《缔造中国富豪:盛大成功之谜》
《再造宏碁》
《新浪之道》
《赢》
《蓝海战略》
《旁观者:管理大师德鲁克回忆录》
《洛克菲勒:一个关于财富的神话》
《投资圣经-巴菲特的故事》
《专访诺贝尔经济学奖得主--大师论衡中国经济与经济学》
《经济学演义》
《破解中国经济之谜》
心理学与生活
金字塔原理
习惯的力量:如何把成功所必需的事情坚持下来
谈话的力量
费里德曼的生活经济学
影响力

――――――――――――――――――经济―――――――――――――――――――
《经济学精要》
《西方经济学简史》
《经济学能做什么》
《我所认识的经济学》
《经济发展的前沿问题》
《专访诺贝尔经济学奖得主》
《经济学的故事》
《经济学内外》梁小民
《哲学人生》 傅佩荣
《西方的智慧》 伯特兰。罗素
《伟大的博弈》


――――――――――――――――――人物―――――――――――――――――――
沃伦。巴菲特
比尔。盖茨


――――――――――――――――――英语―――――――――――――――――――

《英语词汇学》
《翻译美学》
《英语词源趣谈》曾钰成
《英语词源浅析——记忆词汇新途径》
实用英语词源辞典 英语单词词源100讲http://218.4.90.76/class/show.aspx?id=67&cid=127

My interesting Video List

再说长江
故宫
国宝档案
大国崛起
丝绸之路
西藏
新中国外交风云
圆明园
Discovery
BBC
A&E
PBS
National Geograghic
History Channel
德国哲学家系列
余世维

My 2006 and coming 2007

2006 个人年终总结:
1 .Project Experience :
2006 我参与的项目有:
TreeListView.
Convert VC6 project into VC8.
Autodesk DataExchange.
Preview Dwf
Preivew Office

2 .Open Source Project:2006
我研究过的开源项目有:
PetShop4
CppUnit
eMule

3. Technical :

06 年积累了一定的项目经验。涉及到的技术主要有MFC ,STL ,ATL ,COM ,C# 。同时对面向对象的原则,分析,设计的理解有了很大的提高。尤其是花了比较长的一段时间比较系统地学习了一下设计模式。同时对于软件架构方面的理论知识有了一定的接触。看过的技术方面的书主要设计一下几个方面:

ATL\COM
COM原理与应用
COM编程指南

Refactoring
Refactoring: Improving the Design of Existing Code
Refactoring to Pattern

Pattern
Design Patterns: Elements of Reusable Object-Oriented Software
Agile software development
Modern C++ Design
Java 与模式
WebCast: C#与设计模式

Architecture
Practice Software Architecture
Documenting Software Architecture.
面向模式的软件架构(一)

.Net
Applied Microsoft .net Framework Programming.
Professional C# Programming.

Management
软件开发项目管理

4. English :
06 年进步最大的是Listening 和Writing 。下半年基本坚持了每天听一听英文的习惯。同时因为项目需要,mail 也慢慢的写的比较多,writing 方面也提高不少。

5. Management :
06年负责了几个项目的开发,有机会能接触积累了一些项目管理方面的经验。积极去思考了一些项目管理方面的问题:

l 如何有效的沟通,注意与Tech Lead, PD(客户), PM ,Colleague, QA等不同的对象采取的方式与侧重点是不一样的。
l 如何及时给出反馈?
l 如何快速的理解客户需求?
l 如何分解任务?
l 如何更合理的将任务分配给合理的人?
l 如何去预见,预防,处理项目中的变化?
l 如何去平衡资源,任务,进度之间的关系?

2007 我的学习计划:

1 .技术

数据库 :Oracle
虽然在Data Management 部门工作了快两年了,但是项目经验基本上跟数据库没有太大关系。07 年一定要关注底层数据库的设计,分析。Orale 以前没有接触过,也顺带学习下。

Web 编程 :ASP.net\Ajax
Web 是趋势,但自己还没有web 程序方面的经验。07 年尝试ASP.Net 做一个web 版的站点和用AJax 一个web 版的Application ,算是入门。

语言广度 :
以前一直觉得软件设计重要的是思想,语言只是表达工具,因此不屑于去了解其他的语言。但是有时在项目中不可避免的会接触到C++ 以外的语言,应为不熟悉,所以明显的降低了开发效率。07 年决定花一个月左右的时间集中来个语言大扫盲,目标是了解其基本语法和特性,看源码时没有太大障碍即可。具体的有:
编译:C#\Java\VB
脚本:JavaScript\VBScript\MakeFile
动态:Phython\Ruby
Web:Asp.Net\Ajax

理论学习 :
07 年理论学习的重点是软件架构,系统分析,项目管理。估计07 年还是不太可能有太多实践的机会接触到这三个方面,但是在理论上也了解的不多,可以先在理论上打好一定的基础。还有温伯格系列也要看完。


2 . 英语
Speaking, 口语是07 年最重要的任务。
Translation. 计划翻译一本英文技术书籍。

3 . 写作
坚持写blog ,训练技术写作,上半年先全面总结工作两年来的经验。

4 . 开源
继续研究开源项目,从宏观,架构,设计, 模式的角度积累经验。