yo2 三周年聚会小记

下午在betacafe参加了yo2.cn三周年的历程分享会,主讲的是两位创始人 oneoo  oneoo.comcharles

以前用过了国内的众多BSP,感觉yo2的还是比较靠谱的 ,用fenng的一句话就是不重复做轮子,直接使用受大家欢迎的wordpress来做yo2.cn ,从07年的1w用户到现在的10w,不容易啊

他们的分享过程中有提及技术层面方面的,目前似乎是3台server,
他们的确nb,一个人专职.,一个人是兼职,利用空余时间可以把yo2cn给搞了3年,这方面是值得我们学习的

一起参加这个聚会的还有阿宝,搞电子商务的同行,沟通能力很强,还是betacafe.com 的股东,请了我们吃水果,感谢感谢

Posted in 成长--经验分享 | Leave a comment

ThinkPHP试用笔记

去年使用过CakePHP,喜欢它的MVC结构,不过其实框架都差不多.

CakePHP官方网站上面的文档很久才更新一次,经常会遇到一些奇怪的问题,ThinkPHP是国内的PHPer开发的,主页是thinkphp.cn,该有的东西都有了,文档很齐全,论坛很活跃,再加上小鸟的极力推崇,产生了尝试一下的想法。

 ThinkPHP提供了丰富的入门例子,从Hello World到创建项目目录,再到自己动手写了个登陆程序,每每遇到问题,思索,思索未果,遂搜索,解之,乐趣也。现摘录部分心得,以加深了解.

官方提供的入门例子使用注意;

在例子的根目录有一个config.php,一个examples.sql,首先要导入sql语句到数据库,根据自己的数据库设置来修改config.php。同时,进入项目/Temp/之下,删除~app.php,ThinkPHP会重新编译生成~app.php,方可正常运行和数据库有交互的例子.

ThinkPHP的CURD操作

ThinkPHP 提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了 ActiveRecords 模式的最佳体验。

Model 类将数据库操作统一为 CURD 和一个 SQL 查询方法,也就是
_create  新增 (写入)数据
_update  更新 (保存)数据
_read  读取(查询)数据
_delete  删除数据 
_query SQL 查询

其它的所有方法基本上对你调用这些基础方法进行操作,但是我们无需关注这些细节,只需要按照提供的抽象方法来操作,我们来看看在 ThinkPHP 中是怎么进行数据操作的。

1、新建记录
//  实例化一个 User 模型对象
$User = new UserModel();

//  然后给数据对象赋值
$User‐>name = ‘ThinkPHP’;
$User‐>email = ‘ThinkPHP@gmail.com’;

//  然后就可以保存新建的 User 对象了
$User‐>add();

//  如果需要锁实例化模型对象的时候传入数据,可以使用
$data[‘name’] = ‘ThinkPHP’; 
$data[‘email’] = ‘ThinkPHP@gmail.com’
$User = new UserModel($data); 
$User‐>add();

//  或者直接在 add 方法传入要新建的数据
$data[‘name’] = ‘ThinkPHP’; 
$data[‘email’] = ‘ThinkPHP@gmail.com’
$User = new UserModel(); 
$User‐>add($data);

如果你的主键是自动增长类型,不需要传入主键的值就可以新建数据,并且如果插入数据成功的话,Add 方法的返回值就是最新插入的主键值,可以直接获取。 
$insertId   =   $User‐>add($data);

一般情况下,应用中的数据对象不太可能通过手动赋值的方式写入,而是有个数据对象的创建过程。
ThinkPHP 提供了一个 create 方法来创建数据对象,然后进行其它的新增或者编辑操作。
$User = D(“User”); 
$User‐>create(); //  创建 User 数据对象,默认通过表单提交的数据进行创建
$User‐>add(); //  新增表单提交的数据

Create 方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等
$data[‘name’] = ‘ThinkPHP’; 
$data[‘email’] = ‘ThinkPHP@gmail.com’
$User‐>create($data);

//  从 User 数据对象创建新的 Member 数据对象 
$Member = D(“Member”); 
$Member‐>create($User);

支持新增多条记录 
$User = new UserModel(); 
$data[0][‘name’] = ‘ThinkPHP’; 
$data[0][‘email’] = ‘ThinkPHP@gmail.com’
$data[1][‘name’] = ‘流年’; 
$data[1][‘email’] = ‘liu21st@gmail.com’
$User‐>addAll($data);

在 MySql 数据库下面,会自动使用一条 SQL 语句实现多数据的插入。

2、查询记录

读取数据库的记录我觉得是数据库操作中的最有意思的一件事情了,写过文本数据库的人都知道,保存和删除数据不难 (无非是规范和效率问题),难在可以通过各种方式来查找需要的数据。ThinkPHP 通过各种努力,让数据库的查询操作变得轻而易举,也让 ThinkPHP 变得富有内涵。

ThinkPHP 有一个非常明确的约定,就是单个数据查询和多个数据查询的方法是分开的,或者你会认为有时候自己也不知道要查询的数据是单个还是多个,但是有一点是明确的,你需要的是返回一个数据还是希望返回的是一个数据集。因为对两种类型的返回数据的操作方式是截然不同的,无论何种方式的返回,我们都可以直接在模型对象里面操作,当然也一样可以作为数据传递给你需要的变量。

先举个最简单的例子,假如我们要查询主键为 8  的某个用户记录,我们可以使用下面的一些方法:
$User‐>find( 8)
这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据: 
$name = $User‐>name; 
$email = $User‐>email;

遍历查询到的数据对象属性 
foreach ($User as $key=>$val){ 
  echo($key.’:’.$val); 
}

//  或者进行相关的数据更改和保存操作
也可以用变量保存下来以便随时使用。 
$user = $User‐>find( 8)
对于上面的查询条件,我们还可以使用getById 来完成相同的查询
$User‐>getById( 8)
需要注意的是,对于  find  方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用 findAll 方法。

//  查询主键为 1、3、8  的记录集
$User‐>findAll(‘1,3,8’);

//  遍历数据列表 
foreach ($User as $vo){ 
  dump($vo‐>name); 
}
3、更新记录

了解了查询记录后,更新操作就显得非常简单了。

  $User‐>find(1); //  查找主键为 1  的数据
  $User‐>name = ‘TOPThink’; //  修改数据对象 
  $User‐>save(); //  保存当前数据对象

  //  还可以使用下面的方式更新 
  $User‐>score = ‘(score+1)’; //  对用户的积分加 1 
  $User‐>save();

如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件 
  $data[‘id’] = 1; 
  $data[‘name’] = ‘TopThink’; 
  $User‐>save($data);

除了 save 方法外,你还可以使用 setField 方法来更新特定字段的值,例如:
  $User‐>setField(“name”,”TopThink”,’id=1’);

同样可以支持对字段的操作 
  $User‐>setField(“score”,”(score+1)”,’id=1’);

  //  或者改成下面的 
  $User‐>setInc(“score”,’id=1’);

4、删除记录 
  $User‐>find(2); 
  $User‐>delete(); //  删除查找到的记录
 
  $User‐>delete(‘5,6’); //  删除主键为 5、6  的数据
  $User‐>deleteAll(); //  删除查询出来的所有数据

项目的Css,Js,图片文件需放到Public目录下面

官方提供的入门例子就是这样,如果你放到其他目录,是找不到这些图片,CSS,JS文件的。

 MVC架构,实现逻辑与视图分离

比起普通的PHP代码写法,这个对于后台开发人员和设计人员的分工,显得方便得多,也便于以后的维护

 Keep moving..

Posted in 编程开发 | Leave a comment

项目变更控制介绍

项目需求变更,对于每一个IT项目研发人员来说,是必定会遇到的问题

以下是我遇到的两个项目更改时,研发成员提出的意见和看法:

 

    一:晚上和桂才讨论这一周和下周的工作内容的时候,桂才提出一个问题:能不能在项目开始做之前,把东西都考虑好,然后再动工,这样就不用每次做完了然后再去进行修改。

 

    二:凌峰在上海实习,现在是进入实际项目的代码编写当中了,现在遇到的一个困惑是:客户多次提出项目的更改,一个项目需要修改是可以理解的,不过对方客户是微软,要求可能比较严格点,项目的一部分功能是微软的人自己写的,现在客户的负责人觉得以前写的不够规范,要求现在的研发人员对以前的功能进行功能的调整。凌峰有点困惑

 

    三:

    White :P oplar 00:43:30

    你怎么样看待项目需求变更? 

 

    自由鸟~birdy 00:43:47

    综合考虑了

    自由鸟~birdy 00:43:56

    第一:什么时候变更的

 

    自由鸟~birdy 00:44:01

    第二:变更的程度

    

    自由鸟~birdy 00:44:16

    第三:变更可能带来的结果    

 

    White :P oplar 00:44:46

    今晚一个师弟和我讨论项目需求的问题

 

    他说能不能全部想好了再动工 

 

    自由鸟~birdy 00:44:46

    第一:如果在项目开始前,就变更,影响可能比较小

    自由鸟~birdy 00:44:51

    不可能

    White :P oplar 00:44:57

    呵呵 

 

    自由鸟~birdy 00:45:11

    项目需求变更,是不可避免的

    White :P oplar 00:45:18

    然后hlf又找我讨论,他现在做的东西,客户总是变来变去 

 

    自由鸟~birdy 00:45:26

 

    很正常

    自由鸟~birdy 00:45:57

 

    客户只会考虑自身的利益

    自由鸟~birdy 00:46:33

 

    每个项目都有一个点

    自由鸟~birdy 00:46:54

 

    围饶这个点,怎么变都可以

    自由鸟~birdy 00:47:18

 

    超出这个点,就要慎重考虑

 

 

    以上是两个关于项目变更发生的例子,而现实生活中,项目变更是正常的、不可避免的。而这篇文章主要是介绍如何对项目变更进行控制。

     

 

项目变更控制-简介  


 

变更控制的目的并不是控制变更的发生,而是对变更进行管理,确保变更有序进行。对于软件开发项目来说,发生变更的环节比较多,因此变更控制显得格外重要。

 

IT 项目中引起变更的因素有两个:一是来自外部的变更要求,如客户要求修改工作范围和需求等;二是开发过程内部的变更要求,如为解决测试中发现的一些错误而修改源码甚至设计。比较而言,最难处理的是来自外部的需求变更,因为IT项目需求变更的概率大,引发的工作量也大(特别是到项目的后期)。

 

虽然可以事前定义好变更控制流程,但在各种压力下真正“控制”起来其实非常困难。

 


     

项目变更控制-内容分类

1、项目整体变更控制

1)项目变更控制的基本要求: 
关于变更的协议; 
谨慎对待变更请求; 
制定变更计划; 
变更的实施: 明确界定项目变更的目标优、选变更方案、做好变更记录及时发布变更信息

2)项目整体变更控制框架 
项目整体变更的输入: 项目计划、项目执行报告、变更申请; 
项目整体变更控制的工具和技术:项目整体变更控制系统、配置管理、绩效测量、补充计划编制、项目管理信息系统;

3)项目整体变更控制的输出:项目计划更新、纠正措施、经验教训。 

2、项目辅助变更控制:范围变更控制、进度变更控制、费用变更控制、质量变更控制、风险变更控制。

项目变更控制-原则

为了对项目的变更进行有效地控制,成功地完成项目的目标,项目变更应遵循以下原则: 

把项目变更融入项目的计划中去; 
选择影响最小的方案; 
所有的变更在准备变更申请和评估之前,必须与项目经理进行商讨; 
及时地发布项目的变更信息。

项目变更控制-控制程序

项目变更是正常的、不可避免的。变更控制程序如下: 

明确项目变更的目标; 
对提出的所有变更要求进行审查; 
分析项目变更对项目绩效所造成的影响; 
明确产出相同的各替代方案的变化; 
接受或否定变更要求; 
对项目变更的原因进行说明,对所选择的变更方案给予解释; 
与所有相关团体就变更进行交流; 
确保变更合理实施。

 

项目变更控制-参考资料

 

[1] 考试大 http://www.examda.com/pm/Know/zonghe/20080815/094707329.html
[2] 智典网 http://www.zeedy.com/zdwk/project/xmfwgl/20081025/12147_2.html

   

 

 

Posted in 反思总结 | Leave a comment

信息学院2005级计算机,软件专业就业方向概况介绍

信息学院2005级计算机,软件专业就业方向概况介绍

想起晓生,昌贤师弟问到关于就业方向的问题,今晚抽空总结一下今年我所了解到的同学的情况。

到目前为止,大四的同学主要分为技术相关公司,国企,四大,公务员,考研,出国.

技术相关公司:   华南地区的IT名企不是很多,每年都进行校园招聘的企业更是屈指可数。腾讯,网易,深圳freeborder软件外包公司,上海群硕软件开发公司,三星广州研发中心等,以上是有部分同学进去了的。上面的公司都不错,腾讯的笔试主要考c/c++,数据结构基础;
网易的笔试题目是一份卷子,分必做题和选做题,必做题也是c/c++,数据结构,选做题则是每个职位的细分问题;
freeborder则是用了一套测试系统,全英的,考的也是基础的知识;
群硕这家公司做的是微软外包的项目,忘记了有没有笔试这个环节,面试问的东西是和职位相关联的问题,是招.NET的公司之
一,如果你选择他的.NET软件开发工程师,那电话面试的时候问的都是.NET
相关的问题了。
技术相关类的公司,最好自己做过一些实际的项目,多点了解行业的发展动态,在面试的时候和面试官有聊不完的话题是最好的情况。

国企相关单位: 国企待遇好,压力不大,同时很少裁员,风景这边读好,身边的同学有进了各地区的移动和电信,如xx市移动,xx市电信,工商银行广州软件开发中心,xx市 农业银行,还有一些事业单位。国企的选人比较传统,成绩中等以上,当然优秀就更好了,有奖学金之类的,国家的资格认证也比较重要,国企注重的是资格考核, 证书相关的东西。招聘的周期也会比较长,一个班里的同学是年二十八才收到offer,要有足够的耐心。国企会提供很多职位(技术和非技术的)给你选择,自 己的兴趣+能力去选择也差不多了,读计算机专业的不做技术相关也很正常,取决于自己的发展想法。

四大:    进四大,首先英语要好,然后有一些相关的认证(BEC)会容易进一点,隔壁班四个进去了,有男有女,我们班是一个女同学进去,口语非常厉害的那种.进去做的职位有技术相关,也有非技术的。其他班就不怎么了解到。

公务员:   有一部分同学是边求职,边考公务员,两边都赶,现在还没出成绩,公务员是2009年十大热门职业的第一位,铁饭碗也没那么容易捧,最好有非常好的人脉关系。
  考研:     一部分同学是考研的,边准备考研,边求职的例子也有个别,大三暑假开始筹备,提前点准备会好点,找上有打算考研的战友一起,多个人就有气氛点。

出国:     04级有几个师兄师姐是出国的, 他们都是从大一的时候就开始计划出国,如果到了大三的时候才准备,可能就有点迟了,出国要考托福,要有教授写推荐信 etc。

在大四第一学期的时候,我们的辅导员说过一句话,印象挺深刻的:"各位来读大学,就业并不是唯一的目的,而应该以全面发展的思想来计划自己的人生"。就业仅仅是生存的一个部分,希望你们对自己的成长进行思考,除了就业,还有很多方面值得我们去深思的。

Posted in 成长--经验分享 | Leave a comment

XAMPP apache 集成Subversion安装攻略

Subversion是一个便于进行项目管理的软件,基于Subversion的VisualSVN很好用,不过这个星期在使用的时候突然间端口在外网怎样也访问不了。

了解到Subversion可以集成到apache,绑定到apache的81端口。VisualSVN在百般努力下还是没法恢复正常,只能重新选择集成到apache里面

 

 

 

首先列出我使用的软件以及版本

windows server 2003

xampp 2.5 (9.may,2007)内置2.0的apache

 

Subversion  Setup-Subversion-1.5.3.msi  (SVN 服务器)

 

TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi (TSVN 一个GUI,便于使用SVN功能)

 

不同的Subversion对应独有的TortoisesSVN,原因是这两个开源软件为不同的志愿者开发

 

首先安装axampp,一般来说直接点下一步就可以了,.安装xampp要注意的是,你的电脑上80端口不能被占用,否则你的http服务是启动不起来的你可以在浏览器的地址栏输入http://localhost看看,是否安装成功,如果安装成功的话,这个时候浏览器里面应该是可以看到一个页面的.
然后,再安装Setup-Subversion-1.5.3.msi,也很简单,一步一步点下步就可以了,在安装的过程中,它会默认选中一些选项,其中就有一个是是否对apache的HTTP服务器提供支持的选项,这个默认是勾上的,不要去反选它,其它的你可以反选掉.然后svn就宣布安装成功了.你可以到CMD下面去试一下svn这个命令,如果有输出,则说明安装成功了,如果提示svn 不是内部或外部命令,也不是可运行的程序或批处理文件。那就说明没有装好.或者没有把这个命令加入到path中,所以最好的办法是到svn的安装目录下的bin里面去看一下.
两者都装好了以后,就开始配置,当然,配置也是最重要的.
首先要建立一个数据仓库,我们假设建在E盘,数据仓库最好不要建在C盘,因为C盘重装系统以后就格了.我们先在E盘下面建立一个目录叫svnroot,然后在svnroot下面再建立一个我们专门放我们工程的目录,比如叫MyProject.于是我们在E盘下面就有了这个一个文件夹:E:\svnroot\MyProject,然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下:
svnadmin create E:\svnroot\MyProject


当然你也可以使用TSVN的create respoisity来进行
如果运行成功的话,什么也没有输出,这个时候,我们再来到MyProject文件夹下面,我们会发现多了几个文件夹和文件,我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行# password-db = passwd,然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如
[users]
hadeslee=hadeslee1234
tom=123456

这个的话,我们就启动了两个用户,一个叫hadeslee,密码是hadeslee1234,一个叫tom,密码是123456.然后我们保存passwd文件.然后,我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[MyProject:/]
hadeslee = rw
[MyProject:/module1]
tom=rw
hadeslee=rw

这表示,MyProject下面的所有子目录hadeslee都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.有关于MyProject文件夹下面的设置,我们就告一段落了,我们现在开始设置apache,使它能和subvertion一起工作.

首先来到Subersion的安装目录,进入它的bin目录,我们会发现如下两个文件:
mod_authz_svn.so
mod_dav_svn.so

我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中,然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
LoadModule dav_module modules/mod_dav.so
然后模块的设置就完成了,下面我们要设置SVN的目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
httpd.conf文件中,增加如下内容:
<Location /svn/MyProject>
DAV svn
SVNPath E:/svnroot/MyProject

AuthzSVNAccessFile E:/svnroot/MyProject/conf/access.auth
Satisfy Any
Require valid-user

AuthType Basic
AuthName "Subversion repositories"
AuthUserFile  E:/svnroot/MyProject/conf/users.auth
Require valid-user
</Location> 

添加完上面这些,我们会发现access.auth是我们刚才新建的,可是users.auth我们并没有新建啊.怎么就把它加进去了.不要急,现在我们就来生成users.auth文件.

进入apache的安装目录的bin文件夹,输入如下命令:

D:\Program Files\Apache Group\Apache2\bin>htpasswd -cb users.auth hadeslee hadeslee1234
Automatically using MD5 format.
Adding password for user hadeslee

D:\Program Files\Apache Group\Apache2\bin>

我们就会发现在bin目录生成了users.auth,我们可以看到,hadeslee用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢,可以用如下方法:
D:\Program Files\Apache Group\Apache2\bin>htpasswd -b users.auth tom 123456
Automatically using MD5 format.
Adding password for user tom

D:\Program Files\Apache Group\Apache2\bin>

只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了,这个时候,我们把users.auth移到E:/svnroot/MyProject/conf/里面去,使我们上面的设置生效.

这个时候,我们的设置就完成了.可以在浏览器里面输入http://localhost/svn/MyProject试试看.

如果以后我们还要加入其它的项目呢,可以有两点解决方式
1,把以后的项目也导入到我们的MyProject的仓库中,这个的话,就不用改什么配置了
2,新建一个数据仓库,然后只要按上面的步骤,把新的<Location...>设置放到httpd.conf里面就可以了.
当然,验证文件,访问权限文件,还有访问SVN的密码都要自己按上面的方法再设一遍.

祝大家能够设置成功 :)

Posted in 成长--软件技巧 | Leave a comment

体验到了这样一种助人的快乐

今年年初七,凌峰发短信给我,说已经到了上海,初八就开始他的上班实习生活,我在校内写了一篇日志,鼓励凌峰好好珍惜在上海的日子,远在美国的镕畅师兄留言:很开心看到凌峰去了上海。

生命中总会遇到这样一种人:当你遇到困难或者困惑的时候,把他的想法毫无保留的告诉你,力所能及的帮你,当你的生活有值得高兴的事情,他会觉得和你一样高兴,和你一起祝贺,并鼓励你继续进步。

志均是我一个很优秀的师弟--阳辉的舍友,多多少少的受了我的影响,开始了他的项目开发之路。从一开始的服务器软件的问题,到项目的开发,他有问题的时候会知道找我讨论。中午看了志均做的功能,每一个功能我都细细的试用和观察, 从他所写的代码方法,实现的功能效果,我感受得出他的用心和认真。

小聘现在和璐欣,燕妃接了个电子商务相关的项目在做。时不时,她们会和我讨论一下项目的问题。晚上,打电话和我讨论她在做文章内容分页时候遇到的问题,还有在群讨论如何通过路由器访问局域网的一台电脑,我把自己如何解决的想法和她分享 。

 我开心的是,在他们遇到问题的时候,懂得找人来帮忙解决问题,而不是把问题搁在一边,错过了提升 的机会。

我更开心的是,在他们遇到问题的时候,我可以和他们讨论怎样去解决,对自己是一种考验,对他们,多了一个伙伴,也就多了一份解决问题的信心。

体验到了镕畅师兄那种看着自己的师弟师妹一步步成长的快乐。 

  

 

Posted in 成长--经验分享 | Tagged | Leave a comment

畅快

为了项目的事情,建军昨天也从家里赶回来了。

昨晚我们坐在大学城内环路旁边的草地聊天,一聊就是2个多小时。

不知道是第几次和建军说了:我们的认识为如果提早一点该多好啊。

建军是一个善于独立思考的人,对很多事情经过思考才发表意见和做出决定,我最欣赏的是,他会指出我做得不足的地方。

我们的工作计划, 我们研发组认真做开发的师弟师妹,我和他的外婆,我家和他家的不同的难念的经...丁磊要养名牌猪...09年广东大学生的签约率 etc

生活中有一个和你有同样的目标,对你的看法有不同的意见并提出有价值的想法, 夫复何求?

 

Posted in 成长--80后生活感悟 | Tagged | Leave a comment

解决了妍,Amy提到的博客feed格式不完整的问题

      放弃写了四年的QQ空间,开始学习和尝试使用目前最流行的博客系统--wordpress,本来是计划租用虚拟空间,mysql数据库。但试过租用一个群英idc的空间,效果不尽人意。有星介绍购买宽元idc的空间,联系宽元idc的客服,得知我要放博客,要我备案了才敢卖给我。

      前车之鉴,为了节省不必要的麻烦,最终决定了使用yo2.cn--基于wordpress的BSP.

      经过这两周的试用,总结了以下几条使用心得。

      第一:博客feed的制作: yo2.cn提供的wordpress的默认feed输出为文本格式,一篇文章少不了颜色代码,换行代码,还有一些排版的效果,需要在后台,设置--输出---勾选html,勾选全文(full text)。这个时候输出的rss feed将会包含html代码。

     设置好博客的feed输出后,到feedsky.com(一个管理feed的免费服务网站),定制博客feed的订阅地址,订阅图标的类型,并测试你的feed输出是否为全文,html格式。http://feed.feedsky.com/xxx 可以通过feedsky.com分配的feed访问地址来测试。

      第二:深夜时段yo2.cn经常出现网关错误,网页访问出错。试过两个晚上1点左右,进入yo2.cn后台操作的时候,很多页面出错,而网易,google等网站就正常,排除了我的网络问题。猜测可能是使用yo2.cn的人很多IT的夜猫子, yo2.cn的并发访问有待改进。白天操作的时候很少出现网关错误。

      第三:允许一定程度的修改,yo2.cn适合想玩wordpress博客的新手。

       尽管少了一部分的文件修改,适合刚入门的新手哦,等以后有必要,在独立开个博客。 

   

 

 

  

       

     

       

 

Posted in 成长--软件技巧 | 2 Comments

[推荐]高效时间管理,介绍GTD

      一位大三的师弟和我讨论他的2009年计划,考研,在大三下学期找一份实习,做两个项目,为大四求职先做准备,也想了解下考公务员的相关信息,不知道该怎样分配自己的时间,时间不够用,每天都有忙不完的事情。相信大家也遇到过类似的情形,其实除了我们这些普通人会遇到这样的困境,且看一位在腾讯公司核心部门(Customer Research & User Experience Design Center即用户研究与体验设计中心)工作的牛人是通过什么方法来解决这样 的问题的。

原文地址:http://cdc.tencent.com/?p=790

gtd-cover

   人说在IT公司没有不忙的。你会发现每天RTX要闪烁几十个对话框是再正常不过的事情。可能你正好在写一个ppt,同时领佳节又重阳导安排今天必须出一 封邮件,刚在酝酿的时候突然还会有人电话催你开会,离开时刚好还有个朋友在QQ上请求帮忙找回密码,每天周而复始,逢人遍说忙似乎成了流行的口头禅。你会 发现,时间永远也不够用,每天永远都有着“做不完”的事情。带着和所有人共同的问题,我了解了时间管理的方法莫道不消魂论:GTD。下面我会带着一些自己的理解、更 加直白的介绍一下GTD。

  GTD就是Get Thing Done的缩写,翻译过来就是“把事情做完”,David Allen这本书的中文名叫:《尽管去做》。GTD的核心理念概括一句话,就是:你必须记录下来你要做的事,然后整理安排自己一一去执行了。说起来简单, 做起来不容易,我们看一下GTD的五个核心原则是:收集、整理、组织、回顾、执行。

gtd-principle

  先记住这五个原则的先后顺序。

  一、人类的大脑很强大,能存储很多东西,但让一个成年人回忆起所有童年的事情,很难。与其让大脑存放了这么多信息,不如把信息从脑海里拿出来记在纸上, 让大脑释放出来去思考如何做一件成功的事。所以,GTD的第一步是“收集”,把所有在脑海里浮现的信息(任务, 想法, 项目等等)记录到随身携带的小本子上(或者任何适合你的工具),把你的工作从大脑里面清出来,记录在可以看到的地方。GTD把这个叫做“收集箱”。

collect-workflow

  记录小提示:在纸上或其它设备里记录下工作时,应注意安排优先级,思考你的工作哪一项优先级最高,需要动脑筋。

  记录的技巧:涉及到记录的工具和线上和线下两种情况。线上能提醒的可以使用Outlook的任务和日历。比如:几点要找张三打个打电话,几点要 发给李四一封邮件,几点去开会。另外还可以使用Google Calendar Sync把Google日历和Outlook日历同步,随时在多个办公地点查看。

  线下的工具是纸笔和手机,这里首先推荐的是纸和笔。当你“收集”完所有的信息后,就是“处理”了。

 二、 “处理(整理)”英文原意是Process,我提取了三点重要的内容:

  1) 不把任何信息放回收集箱,处理完一件任务就打一个对勾。
  2) 如果任何一项工作需要做,就马上执行去做(如果花的时间少于两分钟);或者委托别人完成,或者将其延期。
  3) 否则就把它存档或删除、或是为它定义合适的目标与情境,以便下一步执行。

two-minute-principle

  两分钟原则:不能不提一下处理的两分钟原则,我想更细的是:1秒+2分钟原则,对突然打断的事情,一秒钟评 估,两分钟内能解决的,无论是任何事情,马上着手解决掉。如果不能在两分钟内解决,就进行下一步处理。这里不能拖,一件事一件事的来,一心不二用,两分钟 处理完一件事,马上回到主要任务上来。

三、“组织”。“组织”应该是GTD中最关键的一点。“组织”主要分为对下一步行动的组织与对备份资料的组织。
下一步行动的组织一般可分为:等待处理清单、将来处理清单、下一步行动清单。  

  1) 等待处理清单主要是记录那些委派他人去做的工作,比如有封邮件问这件事有谁负责,可转交处理,如果你是主管,可安排下属去做。  
  2) 将来处理清单则是记录延迟处理且没有具体的完成日期的未来计划等等。  
  3) 下一步处理清单则是具体的下一步工作。而且如果一个任务涉及到多步骤的工作,那么需要将其细化成具体的项目。老外认为不能在两分钟钟内完成的、需要一系列动作来进行的任务叫作“项目”。

  常使用Outlook做时间管理的,还可以把Outlook建@todo,@waiting,@next三个文件夹进行“组织”任务。记得在工作中看到托哥使用的是“每日待办”文件夹。

  备份资料来自于对任务可行动的处理结果。对备份信息的组织主要就是一个文档管理系统,可用很多工具去存档这些资料,以前我使用的是网文快捕,现在发现Onenote也不错,推荐Onenote2007。 

  四、“回顾”

  我对回顾的理解是PDCA循环的一种方式,在每周回顾中,应该对比自己的年度目标,回顾自己在过去一周取得的进步,制定下一周的计划。如:回顾 你的长期目标、中期目标和短期目标、回顾你在Onenote里的笔记、回顾你在Outook里的日程表、回顾你写在纸上的清单、回顾你的项目进展情况等 等。

  目前我采用的是每日回顾、每周回顾一次,对自己的工作和其它事情进行回顾,看看哪里做的不好,需要改进,重新做出调整计划。

  五、“执行”就不用多讲,另外借用托哥的一个词“集中精神”,结合在一起就是:集中精神执行。

  最后看一下GTD的工作流,作为对GTD几个核心原则的回顾。记住工作流,然后严格按这个工作流来处理你手头上的任务。
gtd-workflow
  接近文章结尾,如果说时间GTD时间管理可以帮助我们做什么的化,我想无非是:更合理的安排时间、更宏观的看待工作、更方便归纳总结,更快速的提升工 作效率,让你成为时间的主人。有人说采用GTD时间管理可以有更为明确的人生目标,我想,严格按着他来执行你的工作,不断的去完善,一定会有一个清晰的未 来。下面是一些我经常浏览的GTD中文网站或论坛:
http://www.gtdlife.cn
http://groups.google.com/group/gtdlife?hl=zh-CN
http://www.mifengtd.cn/articles/category/gtd

Posted in 成长--时间管理个人高效 | Leave a comment

设定目标失败的原因分析


今天一位好友和我分享她的2009年人生目标,其中一项是努力准备中山大学的硕士研究生考试。

有学习关于时间管理,目标设定的知识,我为她修正了一下她的目标的描述。

 20103月,成为第一个进入中大全球营销研究生的xx大学艺术专业的学生

 更详细一点的是

 20103月份收到中大研究生录取通知,成为第一个进入中大全球营销研究生的xx艺术专业的学生

 20104月份某个周四下午为xx打算考研的师弟师妹们开经验分享会

 20104月底,,宴请杨xx同学吃一顿大餐

 这样看上去效果是不是好很多了。

 反省过,自己和身边很多同学都试过在一年之处设定新年目标,假期目标等,往往会发现到最后要么忘记了,或者是根本不起作用。

 是什么原因导致忘记了目标,或者是目标不起作用?摘录网上的原因如下:

 

在设定新年计划和目标时,导致失败的一些常见原因:

  1. 太多的大计划你是否设置了很多的计划和决心,恨不得这一年都能够完成?有些计划,例如:减肥、学习一门新的技能、或者练习英语口语。这些需要花费几个月才有可能达到目标。如果你设定了很多诸如此类的大计划,那么你这一年中,要达到这些设定的目标,就必须花费非常多的时间和精力。这样的话,你就没有多少剩余的时间来完成其他相对的计划了。所以,建议你只留2-3大计划,另外,小的计划尽量保持在12个以内。把你大计划的持续时间分散到一整年里,这样,这些大计划就不会独占一年中好几个月。
  2. 不明确个人的目标你为什么要设定这个计划?达到这个计划的目标对你意味着什么?当你达到目标后你会有什么感觉?如果你对这些问题都还不是很清楚,说明今年你还不是特别急切地希望达到这些目标。要达到一个目标,即使面对艰难和挑战,仍然急切地想要竭尽所能来达到它。所以,你需要十分透彻地明白你制定的目标对你的意义。否则,你不只会很容易忘记它,而且很难会有进展。
  3. 不把它们写下来要想明白自己制定的目标,最好的办法是把它们写下来。如果你之前没有这么去做,那么看完这篇文章后你可以马上试一试。把你的目标下下来,详细描述并阐述你制定该目标的原因。我敢打赌你不能一下子in one go)把它们都写出来。为什么?因为需求和想法通常都是分散的,不明确的。如果你不把你的目标和想法写下来,它们就永远是不明确的想法。含糊不清的想法就有了模棱两可的计划,最终导致失败的结果。所以,如果你不能一下子明确自己的目标,那么坐下来花一点时间把它们写下来吧。(Yang:我把我的目标写在了MS Outlook 2007,每次打开Outlook的时候就可以看到)
  4. 不能每天都看到自己的目标即使你把你的目标写下来,并且很明确,你仍然可能忘记它们,因为人类是健忘的动物。你可以把你的计划放在你每天可以看到的地方,例如,写在记事本里,或者通过电脑提醒。这样就从客观上减少了忘记的可能性。 (Yang:我利用我的PDA,把我的目标内容设定为每天的第一件事情,我一起床的时候就可以第一时间看到,走路的时候,等车的时候,都可以随时随地的看到我的目标,提醒自己)
  5. 不去定期回顾自己的目标光是记住你的目标还不够,你还需要定期检查和回顾(Review)你的计划进度。就像飞行员驾驶飞机的时候,需要定时检查和修正飞行的航线。要达到个人的目标也是一样。如果在定期检查时,你发觉没有取得预期的效果,为什么呢?可能是出现了一些新的障碍,也可能是你的计划本身出现了问题,例如占去了其他事情的时间等等。那么你就可以针对新出现的问题制定解决办法,或者重新修正你的计划。如果你定期(比如一个月)检查你的计划的进行状态,那么这个计划对你来说是可以控制的,你达到目标的可能性也会提高。
  6. 你的计划只有自己知道你知道为什么人们害怕作出承诺吗?因为人们害怕自己做不到。制定目标计划也是一样。在你把目标写下来之后,可以把它告诉你的家人和朋友,并向自己保证一定要成功。把自己的计划向别人公布,并且要对你的计划负责,这可能会让你感觉别扭,你可能不愿意这么做。但是你可以这么去想——如果现在你连这么一点不自在都受不了,那么在下一年中你又会花费多少心思在你的计划上?你又如何保证能够达到目标?不过,如果是属于自己隐私的计划和目标,还是自己知道的好。 (Yang:我把我的计划告诉了好朋友,老师,家人,和他们交流我的想法,并得到他们的支持)
  7. 得不到别人的支持达到自己的目标并不意味着你要做一个独行者,相反,如果你有家人和朋友的支持,你将会得到意外的成功。例如:如果你打算减肥,但是你的家人却每天吃快餐,这并不是什么支持,对你没有什么帮助。还有,如果你想早起,但是你的家人却每天很晚睡觉,这也不会对你有帮助。去和你周围的人谈谈你的计划,看看他们能够给你多少支持,不管是精神上的还是物质上的。

 

Posted in 反思总结 | 1 Comment