自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 PMBOK Reading Notes - Chapter One

<br />Chapter One:<br />1.  A project is a temporary endeavor undertaken to create a unique product, service and result.<br />Temporary != short duration.<br />Temporary not -> product, service and result<br /> <br />2. Project management is the applicatio

2010-08-21 21:13:00 850

原创 事业环境因素和组织过程资产的理解与比较

PMBOK中对事业环境因素的定义是:围绕项目或能影响项目成败的任何内外部环境因素,是大多数规划过程的输入。组织过程资产包括任何或全部与过程相关的资产,其中包括正式或非正式的计划、政策、程序和指南。

2010-08-12 20:29:00 8120 2

原创 一年工作总结

截止到这个月底,我就担任我们产品的maintenance project manager一周年了。回顾这一年的战斗经历,感受颇多。经历之丰富多彩,远胜于做developer时的经历。

2010-07-25 21:36:00 1215 1

原创 成为CSM

    前段时间,参加了CSM(Certificate Scrum Master)的培训。在担任了近1年的ScrumMaster之后,终于修成正果了。    1年的ScrumMaster经验,让我已经成为了Scrum的忠实拥护者。    Team里所有人都能够很好的自我管理,都为了团队所做出commitment努力奋斗,的互相帮助。    Product Onwer和我们的沟通也非常的

2009-06-26 11:28:00 1020

转载 关键链项目管理方法的缓冲区管理

      关键链方法里边最有价值的是缓冲区管理(Buffer Management)。项目过程中进度落后的时候,如果不采取措施追赶进度,可能会导致整个项目延期,如果采取措施追赶进度,加入加班,通常会增加成本,降低质量,可能还会影响公司的其他项目。而缓冲区管理可以帮助我们做出更准确的判断。缓冲区管理根据两个指标来判断是否应该采取追赶进度的措施。       项目缓冲区消耗百分比      

2009-03-03 14:00:00 7721

原创 项目管理--关键链方法

关键链项目管理(Critical Chain Project Management,CCPM)方法是约束理论(Theory of Constraints,TOC)在项目管理中的应用。约束理论的核心思想可以归纳为两点:(1)所有现实系统都存在约束。如果一个系统不存在约束,就可以无限提高产出或降低成本,而这显然是不实际的。因此,任何妨碍系统进一步提升生产率的因素,就构成了一个约束。约束理论将一个企

2009-02-27 14:13:00 9895

转载 动态联编学习:三、虚函数表VTABLE

       编译器在执行过程中遇到virtual关键字的时候,将自动安装动态联编需要的机制,首先为这些包含virtual函数的类(注意不是类的实例)--即使是祖先类包含虚函数而本身没有--建立一张虚拟函数表VTABLE。在这些虚拟函数表中,编译器将依次按照函数声明次序放置类的特定虚函数的地址。同时在每个带有虚函数的类中放置一个称之为vpointer的指针,简称vptr,这个指针指向这个类的V

2009-02-20 16:33:00 2995 2

转载 动态联编学习:二、对象类型信息

 为了证明我们的猜想,我们用下面的一个程序进行测试,下面的程序将获取普通的类和包含虚函数的类的字节大小。程序代码如下。 #include class shape_novirtual{ int a; public: void draw(){cout<<"shape_novirtual::draw()"<<endl;}};class shape_vi

2009-02-19 23:33:00 887

转载 动态联编学习:一、多态性和动态联编

       联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。在编译阶段就将函数实现和函数调用关联起来称之为静态联编,静态联编在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型。

2009-02-19 17:22:00 3331 1

原创 Python多线程学习(三、生产者与消费者)

    生产者与消费者问题是典型的同步问题。这里简单介绍两种不同的实现方法。1,  条件变量import threadingimport timeclass Producer(threading.Thread): def __init__(self, t_name): threading.Thread.__init__(self, n

2009-02-15 17:23:00 20384

原创 Python多线程学习(二、线程的同步)

    假设两个线程对象t1和t2都要对num=0进行增1运算,t1和t2都各对num修改10次,num的最终的结果应该为20。但是由于是多线程访问,有可能出现下面情况:在num=0时,t1取得num=0。系统此时把t1调度为”sleeping”状态,把t2转换为”running”状态,t2页获得num=0。然后t2对得到的值进行加1并赋给num,使得num=1。然后系统又把t2调度为”sleep

2009-02-09 11:29:00 26990 1

原创 Python多线程学习(一、线程的使用)

 一、Python中的线程使用:   Python中使用线程有两种方式:函数或者用类来包装线程对象。1、 函数式:调用thread模块中的start_new_thread()函数来产生新线程。如下例:import timeimport threaddef timer(no, interval): cnt = 0 while cnt<10:

2009-02-04 12:06:00 44871 6

原创 今后还要继续!

自从地震后,就很少上来了,也再没在这儿发过什么帖子了。这段时间发生的事情太多了,地震也经历了,公司团队中的各种变化也经历了。呵呵,感觉人生都丰富了许多。我想今后我还是要继续在这上面发发牢骚,让我的朋友们多一个途径了解我的情况。

2009-01-06 09:53:00 1212

原创 实现一个无法被继承的C++类

      一个类不能被继承,也就是说它的子类不能构造父类,这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有,使得这个类的构造函数对子类不可见,那么这个类也就不能继承了。但是,这引出一个问题,客户程序岂不是也无法实例化这个类了?OK,让我们参考一下Singleton模式,用一个static函数来帮助创建这个类的实例,问题就解决了!c

2008-03-28 10:41:00 16576 4

原创 public, private和protected继承比较

     以下内容整理自《程序员面试宝典》,重点讨论一下C++中三种继承方式的区别。1, 公有继承(public)基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,protected和private成员不可见。基类成员对派生类的可见性对派生类来说,基类的public和protected成员可见:基类的public成员和protected成员作为派生类的成员时,

2008-03-17 15:02:00 10938 4

原创 strlen和sizeof的区别小结

    前两天发了这篇帖子,结果发现并没有提交成功,浪费了广大人民群众的感情。我错了,我真的错了。现在赶紧补上,希望各位大虾过客多多包涵。   笔试中经常遇到sizeof和strlen相关的问题,应试者稍有不慎就会中招。其实它们都是C中最基本的概念之一,如果笔试中答错了,无疑会得到考官的“鄙视”。小弟在此总结一下,如有不完整或错误之处,敬请补充和指正。1, sizeof是操作符(opera

2008-03-05 14:54:00 1334

原创 设计模式简单小结

        今天简单看看设计模式原则,有种醍醐灌顶的感觉。其实在看GOF的设计模式的时候,甚至平时工作的时候都印证了设计模式原则的思想。        下面只是简单列出了这些原则的概念,有机会偶一定每一条每一条的好好整理整理。1,LSP(Liskov Substitution Principle)对于类型S的每一个对象O1,都有一个类型T的O2。对于任意用类型T定义的程序,将O2替换为O1

2008-03-03 15:31:00 895

原创 自己实现一把String类

        好几次在笔试中要求写String类,我也都写了,但是从来没有完整的整理过,每次都是做题的时候写一写,笔试完了就忘了。今天忽然想起了,自己写了一点点。也只是简单测试了一下,欢迎拍砖。#include iostream>#include string.h>using namespace std;class MyString{public:    MyString();    ~

2008-02-25 21:41:00 1898 3

原创 类型转换的规则

    今天同事有个问题,基本情况就是当Operator在GUI界面操作输入了一个非法值(例如一个负值),居然没有任何错误提示,导致最后log中记录的信息让人无法理解。从信息的处理流程来看,没有任何问题。后来发现是因为程序中有一个计算步骤是用一个unsigned int和输入的数值作了一个相加,然后再对计算结果大小进行判断。由于输入的是负数,负数和unsigned int做算术运算时,被自动转换为

2008-02-19 23:00:00 1981 1

原创 一道关于C++派生类初始化的笔试题

        最近看到这样一道笔试题,偶学习整理了一下,不到之处,希望各位指正。        问题: 下列程序的输出是什么?#include iostream>using namespace std;class A {public:  A() {cout  "A"  endl;}  ~A() {cout  "~A"  endl;}};class B {public:  B() {cou

2008-02-14 11:12:00 2011 1

原创 阿Sam的设计模式学习笔记---- Composite模式

1,  功能    将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。    Composite模式主要用于描述和解决一些具有“容器”特征的对象—它们又是对象,又是其他对象的容器。如果客户代码过多地依赖对象容器的内部实现,对象容器内部实现的变化会引起客户代码的变化,违反了设计原则中的DIP原则(高层模块不应依赖于低层模块,二

2007-12-19 10:04:00 947

原创 MD5算法学习及其对用户密码加密的应用

     前段时间有个客户提交了一个需求,说我们的系统中,subscriber的密码是以明文方式存在系统中的,不安全(汗颜啊……)。因此我们要做点改进,把subscriber的密码加一下密。借着机会,我也学习学习一下MD5算法(再次汗颜……)。    MD5(Message-Digest Algorithm 5)加密算法是一种不可逆的算法,也即,即使源程序和算法描述可见,也无法将一个MD5值恢

2007-11-20 16:56:00 2177 1

原创 郁闷!我的意愿被强奸了!

 不爽,真的不爽。今天老大过来跟我说,让我去做test automation.凭什么?我面试的时候就说了,坚决不做test,为什么现在要我去?骗子!真过分!找工作,本身就是双向选择。明知我不想做test,完全不要给我offer啊!!这下好了,把老子骗过来了!完全强奸了我的意愿!什么公司啊!这么一个世界知名的IT外企,我曾经多么信任他!现在完全辜负我的信任!骗子!根本不给人协商的余地!你占有了我的肉

2007-11-19 17:23:00 1148

原创 阿Sam的设计模式学习笔记---- Bridge模式

1,  功能:    将抽象部分与它的实现部分分离,使它们都可以独立的变化。换言之,就是实现共同点与变化点的分离(主要是外部的变化),将变化点封装成类进行处理。2,  基本思想:    将时间的抽象与行为分开,使对象的属性与方法之间耦合度降低。只需要分别继承抽象的属性接口和方法接口就可以任意的“变化”具体对象的属性和方法。3,  适用情况    不希望在抽象和它的实现部分之间有

2007-10-28 23:22:00 1276 1

原创 Java中的同步与互斥机制--synchornized学习

    Java关键字synchronized是Java 语言提供的对多线程和同步的一种机制。synchronized可以作为函数的修饰符,也可作为函数内的语句。它可以作用于instance变量,对象引用(object reference),static函数和类名称字面常量(class literals)。  下面介绍一下synchronized的关键字的使用方法:一、synchroniz

2007-10-11 17:53:00 7113 1

原创 HashMap学习小结

一、HashMap和TreeMap        在数组中,通过数组下标来对其内容索引;在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。HashMap实现Map接口,提供所有映射操作的实现,并且允许null的键和值。HashMap中插入和查询key/value的开销是一个固定常量。HashMap不保证映射后的其内容的顺序在一定的时间内不会变化,也就

2007-10-09 15:23:00 7057 1

原创 const小结

    C++中的const意味着“只读”,合理的使用const将大大改善程序的健壮性:1)声明一个参数为常量是可以向用户传达有用的信息,告知这个参数的应用目的。在规模稍大一点的软件开发中,可以减少阅读程序的人的困惑,避免其他接手工作的程序员花时间清理无用的垃圾。懂得用const的程序员很少会留下的垃圾让别人来清理。2)const关键字通过给优化器一些附加的信息,产生更紧凑的代码。3)

2007-10-08 17:22:00 1038

原创 头文件和源文件关联的问题

    (对标题的解释:标题中的“源文件”是狭义的概念。小弟只是为了区分,把.h文件称为“头文件“,把.cpp文件称为“源文件“。)    今天有个同事来问我#include 和#inlcude “xxx.h”的区别(关于这个问题,网上已经说滥了,而且林锐博士的《高质量C++/C编程指南》也作了说明)。从这个问题,偶引申出好几个问题,不得已,又去往上”狗狗”了(惭愧的很啊,每次都只能去”狗狗”

2007-09-30 14:55:00 6478 2

原创 getopt()函数简介

        昨天在做code review的时候,看到函数getopt(),似乎没见过,狗狗之,大惊……发现原来自己干过N次愚蠢的事!!!        函数getopt()用来分析命令行参数(可怜的Sam啊……以前还傻愣愣的自己写命令行参数解析函数…I’m too simple…sometimes naive.),其函数原型和相关变量声明如下:        #include u

2007-09-29 13:22:00 6192 5

原创 typedef简单小结

最近刚刚跳槽,进入一个新的公司,处于学习期间,工作不是太忙。看到一些前人们开发的代码,忽然发现自己对typedef这个东东还没有系统的了解过。于是乎上网”狗狗”了一下,做了点总结,现整理如下:Typedef的作用:为现有的类型创建一个新的名字。主要优点有两个:1)      使代码更加美观,可读性更强,隐藏复杂和难以理解的语法;2)      有助于创建平台无关的类型,增强可移植性和可

2007-09-25 17:00:00 1552 3

原创 某国际知名IT公司笔试

    这段时间没怎么顾及自己的这个“一寸土地”, 实在惭愧。因为这些天小弟又经历了“职业生涯”中的一个小小转折----跳槽去了某个在移动通信行业比较龙头的几个国际大公司之一。鉴于对职业操守的尊敬,请恕小弟隐藏了该公司的名称。将有点意思的一道C++题目共享出来,积累点人品,也希望对一些朋友有所帮助。当然,对众多牛人ggjj来说,都是小菜一碟。小弟这里献丑了  有下面一段程序:#in

2007-09-19 11:17:00 2077 2

原创 阿Sam的设计模式学习笔记---- Adapter模式

1,  功能:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2,  基本思想通过一个适配器(Adapter),在已有的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目标。在Adapter模式中,有两种适配方法:类适配器和对象适配器。类适配器通过多重继承实现,对象适配器通过委托来实现。

2007-09-18 09:37:00 1217

原创 阿Sam的设计模式学习笔记---- 原型(Prototype)模式

1,  功能:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。假如我是公司IT管理员,我要管理公司的电脑资料。公司的电脑的配置都一样的,就是序列号不同。如果公司有200台电脑,我就要输入这200条记录。如果采用Prototype的思想,我就建立一条电脑记录,然后对它克隆199次,每次只是稍微修改一下序列号即可!2,  基本思想:声明一个克隆自己的接口(Prototype

2007-09-05 15:17:00 1047

原创 System函数与脚本的后台执行

    昨天BSC测试组开了一个U0的Fault Report.     后来发现问题了:正常情况下当我们的CCP板插入机架后,本来OMCP板应该先配置其dhcp,然后restart dhcp,这样CCP板才能正常工作。但是现在看到的情况是,在dhcp配置完成之前,OMCP上的dhcp server就被restart了。细读trace和代码,最终发现了问题所在---->System函数调用后台

2007-09-04 14:12:00 10201 1

原创 阿Sam的设计模式学习笔记---- Builder模式

1, 功能:将一个功能复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2, 基本思想:通常一个复杂的对象由各个部分组成,有时可能因为客户需求,版本升级等原因,各个部分内部不停的发生变化,但是将它们组装成一起的方法相对固定。Builder模式将产品内部状态和生产过程分割,同一个生产过程可以生产出内部具有不同表象的产品。Builder模式的根本目的就是解耦过程和部件。一

2007-09-03 11:18:00 982

原创 阿Sam的设计模式学习笔记----抽象工厂(Abstract Factory)模式

上回讲了Simple Factory和Factory Method。简单回顾一下: Simple Factory:定义一个类(工厂)负责创建其他类(产品)的实例,产品实例通常具有共同的父类。 Factory Method:将工厂抽象一把,在父类中提供一个标准接口,由各个子类(具体工厂)决定创建什么样的实例(具体产品)。

2007-08-31 16:09:00 972

原创 阿Sam的设计模式学习笔记----Factory模式(之Factory Method)

二、Factor Method 简单工厂的扩展性比较差,如果要得到一个新的产品,必须修改工厂。因此,我们可以把工厂也给抽象一把,提供生产的接口,将具体生产过程放到“具体的工厂”去。1.         功能:定义一个用于创建对象的工厂接口,让实例化类的工作在子类中完成。2.         基本思想:在抽象父类中声明用来创建对象的方法接口,而具体子类(具体的工厂)通过覆盖接口方法实现对

2007-08-30 10:25:00 838

原创 阿Sam的设计模式学习笔记----Factory模式(之Simple Factory)

一、Simple Factory为了把事情说清楚,为了对自己的学习负责,偶不得不加一个disgusted所谓的“前言”。这里,就先了解一下Factory Method模式的老爸: Simple Factory。Simple Factory属于类的创建型模式,它根据外界给定信息,让Factory来制造所需的产品。工厂对象能够生产的具体产品类(ConcreteProduct)通常继承同一个父产

2007-08-29 11:15:00 735

原创 阿Sam的设计模式学习笔记----Singleton模式

1,功能:保证一个类仅有一个实例,并提供一个访问它的全局访问点。2,基本思想:让类自身负责保存它的唯一实例。这个类保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。3,适用情况:当类只能有一个实例,而且客户可以从一个众所周知的访问点访问它;当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例。4,案例举例

2007-08-28 09:25:00 831

原创 开张大吉

     申请这个账号很久了,一直都在潜水学习。      在平时的工作和学习中,有很多的心得体会,有时候很想把他们记录下来,可以帮助自己少犯错误,也可以把自己的经验共享给朋友们。但是总是因为自己的懒惰或者工作的忙碌,没有能做到。      最近看了《士兵突击》,感受很深。对一个人的执著感到敬佩,对自己平时的懒惰和为自己开脱所找的各种各样乱七八糟的借口感到惭愧。“想到和得到中间还有两个字:

2007-08-27 13:53:00 545

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除