<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>头脑反刍</title>
	<atom:link href="http://www.pyapp.com/liuce/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pyapp.com/liuce</link>
	<description>技术，技术管理与产品。学过的东西，做过的事情都要像反刍一样重新拿出来品品滋味</description>
	<lastBuildDate>Sat, 31 Mar 2012 09:52:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>软件开发悲剧的由来</title>
		<link>http://www.pyapp.com/liuce/archives/%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e6%82%b2%e5%89%a7%e7%9a%84%e7%94%b1%e6%9d%a5/</link>
		<comments>http://www.pyapp.com/liuce/archives/%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e6%82%b2%e5%89%a7%e7%9a%84%e7%94%b1%e6%9d%a5/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 09:52:11 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=143</guid>
		<description><![CDATA[这几天有一些小感悟，然后呢，发现这些又能串在一起，于是就有了这篇文章。 1. 在没有足够的驾驭的能力时，不要在写代码甚至设计系统的时候考虑设计模式；设计模式应用的更好的时候，是在对刚做完的项目做重构和做项目/软件技术交流时，用来交流的。比如我用一个单件替换了原来的做配置信息的全局变量。 2. 对于程序员来说，难度排序应该是： 写代码 < 读代码 < 写人人能看懂的代码 。所以，一般看到别人代码时第一反应是“这个代码应该重写&#8221;的程序员，是初级程序员，尤其是对好好的在线提供服务的系统或者软件。 3. 软件不可控的因素更多的在于软件的不可见，即使给你软件的架构图纸也没法可控，但对于建筑或者机械行业，即使没有图纸也能比较简单的看到结构。 &#8212;&#8212;&#8212;&#8212;- 故事的分割线 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 基于以上的总结，其实很容易讲一个让绝大多数程序员似曾相识的故事. 一天，老板问程序员A：我们要做这样一个项目，你看大概要多少时间？ A： 以这些功能点来说，我估计需要2-3个月吧 老板：哦， 2个月阿，好，那就教给你了. A: &#8230; (心想，我啥都没干呢怎么先给我砍掉了1个月的时间呢？) A: 老板阿，2个月不靠谱阿 老板：你不是说2-3个月吗？ A: 那2个月是肯定不够的阿 老板: 这个事情确实非常重要，非常着急，有什么困难你克服一下，加加班。这个项目搞完了好处少不了你的. A： &#8230;. ， 好吧 &#8212;&#8212;&#8212;&#8212; 时间的分割线 &#8212;&#8212;&#8212;&#8212;- 一个月后 老板: 兄弟，咱那个项目进展如何了？ A：正赶工做呢，辛苦阿 老板：让我看看 A打开界面让老板大概用了用，然后.. 老板：很不错阿，都能用了，还有哪些是没做完的呢？ A: 一些参数检查，一些细节功能, bla bla bla 老板:那些先不用做了，这里改一下，那里改一下，哎，你拿支笔记一下 bla bla bla [...]]]></description>
			<content:encoded><![CDATA[<p>这几天有一些小感悟，然后呢，发现这些又能串在一起，于是就有了这篇文章。</p>
<p>1. 在没有足够的驾驭的能力时，不要在写代码甚至设计系统的时候考虑设计模式；设计模式应用的更好的时候，是在对刚做完的项目做重构和做项目/软件技术交流时，用来交流的。比如我用一个单件替换了原来的做配置信息的全局变量。</p>
<p>2. 对于程序员来说，难度排序应该是： 写代码 < 读代码 < 写人人能看懂的代码 。所以，一般看到别人代码时第一反应是“这个代码应该重写&#8221;的程序员，是初级程序员，尤其是对好好的在线提供服务的系统或者软件。</p>
<p>3. 软件不可控的因素更多的在于软件的不可见，即使给你软件的架构图纸也没法可控，但对于建筑或者机械行业，即使没有图纸也能比较简单的看到结构。</p>
<p>&#8212;&#8212;&#8212;&#8212;-  故事的分割线  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
基于以上的总结，其实很容易讲一个让绝大多数程序员似曾相识的故事.</p>
<p>一天，老板问程序员A：我们要做这样一个项目，你看大概要多少时间？<br />
A： 以这些功能点来说，我估计需要2-3个月吧<br />
老板：哦， 2个月阿，好，那就教给你了.<br />
A: &#8230; (心想，我啥都没干呢怎么先给我砍掉了1个月的时间呢？)<br />
A: 老板阿，2个月不靠谱阿<br />
老板：你不是说2-3个月吗？<br />
A: 那2个月是肯定不够的阿<br />
老板: 这个事情确实非常重要，非常着急，有什么困难你克服一下，加加班。这个项目搞完了好处少不了你的.<br />
A： &#8230;. ， 好吧</p>
<p>&#8212;&#8212;&#8212;&#8212;  时间的分割线  &#8212;&#8212;&#8212;&#8212;-<br />
一个月后<br />
老板: 兄弟，咱那个项目进展如何了？<br />
A：正赶工做呢，辛苦阿<br />
老板：让我看看<br />
A打开界面让老板大概用了用，然后..<br />
老板：很不错阿，都能用了，还有哪些是没做完的呢？<br />
A: 一些参数检查，一些细节功能, bla bla bla<br />
老板:那些先不用做了，这里改一下，那里改一下，哎，你拿支笔记一下 bla bla bla</p>
<p>然后，一堆靠谱和不靠谱的需求产生了</p>
<p>&#8212;&#8212;&#8212;&#8212;  时间的分割线  &#8212;&#8212;&#8212;&#8212;-<br />
又两月过去，项目发布</p>
<p>老板: 小A阿，咱们那个项目反响不错，就是bug稍多了点，另外还有些功能需要增加一下，bla bla bla<br />
A：bug多是正常的，时间太紧张，能做完就很不错了。（喵了个咪的，一早告诉我三个月，一早告诉我那一堆想法，怎么会有这么多问题，还反响不错，我看就是不能用）<br />
老板: 小A阿，我列了个清单，后面你就照着这个单子改吧<br />
A: 好吧 ，（怕怕，那一堆赶工的代码，还得我改，我可再也不想碰那堆垃圾了，先忍几天）</p>
<p>&#8212;&#8212;&#8212;&#8212;  时间的分割线 &#8212;&#8212;&#8212;&#8212;&#8211;<br />
又两周过去</p>
<p>A: 老板，我准备考研了。所以，我得离开公司了，感谢老板的栽培<br />
老板： ？！， 年轻人阿，有想法是好的，但也要负责任阿，你看咱们的项目还有那么多事情要做，你看你能不能坚持一下，把咱们的项目处理完再走<br />
A: 不成阿，我这里好多事情都安排好了，时间没法变了，对不住了。（我靠，都是你拍脑袋的注意，这时候你要我负责，想得美）<br />
老板:(@#@$@%)</p>
<p>几天后，招了新程序员B到公司了<br />
老板: 小B阿，现在公司有个拳头产品，需要你来维护一下。<br />
小B： 太感动了，我才来就把这么重要的事情交给我，老板你放心吧</p>
<p>几天后<br />
小B: 老板，那套系统的代码我看了，前面干这个活的程序员太傻X, 明明有很多地方可以改进，他都是瞎写的，你要的新功能和那些bug，在这个老系统里基本上没法改。不行我就给咱重写了这个系统得了。<br />
老板：那需要多长时间阿<br />
小B: 估计要2个来月吧，<br />
老板: 那我要的那些功能和那些bug的修改呢？<br />
小B： 您放心吧，我会用最新的XXX技术,yyy架构，保证东西出来的又快又好</p>
<p>&#8212;&#8212;&#8212;&#8212;  时间的分割线  &#8212;&#8212;&#8212;&#8212;-<br />
一个月后<br />
老板: 兄弟，咱那个项目进展如何了？<br />
B：正赶工做呢，辛苦阿<br />
老板：让我看看<br />
B打开界面让老板大概用了用，然后..<br />
老板：很不错阿，都能用了，还有哪些是没做完的呢？<br />
B: 一些参数检查，一些细节功能, bla bla bla<br />
老板:那些先不用做了，这里改一下，那里改一下，哎，你拿支笔记一下 bla bla bla</p>
<p>然后，一堆靠谱和不靠谱的需求产生了</p>
<p>&#8212;&#8212;&#8212;&#8212;  时间的分割线  &#8212;&#8212;&#8212;&#8212;-<br />
又两月过去，项目发布</p>
<p>老板: 小B阿，咱们那个项目反响不错，就是bug稍多了点，另外咱们原来那些不错的功能怎么都没有了呢?，bla bla bla<br />
B：bug多是正常的，时间太紧张，能做完就很不错了。那些老功能不是都涵盖在新功能里了么.（喵了个咪的，一早告诉我三个月，一早告诉我那一堆想法，怎么会有这么多问题，还反响不错，我看就是不能用. 还想要以前的功能,那些功能都跟你的新需求有冲突,我不干掉可就没法做完你要的东西了）<br />
老板: 小B阿，我列了个清单，后面你就照着这个单子改吧<br />
B: 好吧 ，（怕怕，那一堆赶工的代码，还得我改，我可再也不想碰那堆垃圾了，先忍几天）</p>
<p>&#8212;&#8212;&#8212;&#8212;  轮回的分割线  &#8212;&#8212;&#8212;&#8212;-<br />
又一个新的轮回开始了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/%e8%bd%af%e4%bb%b6%e5%bc%80%e5%8f%91%e6%82%b2%e5%89%a7%e7%9a%84%e7%94%b1%e6%9d%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>D语言和Go语言的个人看法</title>
		<link>http://www.pyapp.com/liuce/archives/d%e8%af%ad%e8%a8%80%e5%92%8cgo%e8%af%ad%e8%a8%80%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9c%8b%e6%b3%95/</link>
		<comments>http://www.pyapp.com/liuce/archives/d%e8%af%ad%e8%a8%80%e5%92%8cgo%e8%af%ad%e8%a8%80%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9c%8b%e6%b3%95/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 23:01:13 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=169</guid>
		<description><![CDATA[最近几年，新语言出现了很多，其实根本原因是，开发效率远远低于需求的增长 所以很多大牛经过反思，认为是语言还停留在曾经的水平，需要有更高效的语言类工具来满足更多变的应用需求 而开发效率最低的部分，不是GUI,而是网络和多进程多线程的协作 所以google弄出来一个新的 嗯，D的作者认为C＋＋的特性太复杂而且容易导致错误，所以设计了几乎同样复杂但组织结构清晰的D，来降低出错率。包括D的契约编程思想和语言内置的单元测试。 但google认为，网络和进程通讯才是真正的需求之源，所以他更看重的是从根本上去解决真正的需求.  在这里，我的看法又稍有不同，我认为是语言的抽象层次不够。这一点，Go做得比D好一些，因为Go把进程和网络抽象到了语言内。而契约编程和单元测试可以用代码规范来实现。 另外，我还隐约觉得这种抽象还缺少了一些东西，可能需要我学习一些lisp知识之后才能有所了解。 待续吧]]></description>
			<content:encoded><![CDATA[<p>最近几年，新语言出现了很多，其实根本原因是，开发效率远远低于需求的增长<br />
所以很多大牛经过反思，认为是语言还停留在曾经的水平，需要有更高效的语言类工具来满足更多变的应用需求<br />
而开发效率最低的部分，不是GUI,而是网络和多进程多线程的协作<br />
所以google弄出来一个新的<br />
嗯，D的作者认为C＋＋的特性太复杂而且容易导致错误，所以设计了几乎同样复杂但组织结构清晰的D，来降低出错率。包括D的契约编程思想和语言内置的单元测试。<br />
但google认为，网络和进程通讯才是真正的需求之源，所以他更看重的是从根本上去解决真正的需求.</p>
<p> 在这里，我的看法又稍有不同，我认为是语言的抽象层次不够。这一点，Go做得比D好一些，因为Go把进程和网络抽象到了语言内。而契约编程和单元测试可以用代码规范来实现。</p>
<p>另外，我还隐约觉得这种抽象还缺少了一些东西，可能需要我学习一些lisp知识之后才能有所了解。</p>
<p>待续吧</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/d%e8%af%ad%e8%a8%80%e5%92%8cgo%e8%af%ad%e8%a8%80%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9c%8b%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git 命令备忘</title>
		<link>http://www.pyapp.com/liuce/archives/git-%e5%91%bd%e4%bb%a4%e5%a4%87%e5%bf%98/</link>
		<comments>http://www.pyapp.com/liuce/archives/git-%e5%91%bd%e4%bb%a4%e5%a4%87%e5%bf%98/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 11:15:01 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[备忘]]></category>
		<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=164</guid>
		<description><![CDATA[最近开始使用git做版本管理工具，真实感受到了git的强大，同时也苦恼于git的复杂，于是就需要记录一些很常用但又不常用的命令(创建合并等每个项目都会用到，但相对较少)下来，以备查看。]]></description>
			<content:encoded><![CDATA[<p>最近开始使用git做版本管理工具，真实感受到了git的强大，同时也苦恼于git的复杂，于是就需要记录一些很常用但又不常用的命令(创建合并等每个项目都会用到，但相对较少)下来，以备查看。</p>
<p>鉴于我对git的这些命令了解得还是不够清楚，顾以下说明仅供参考。</p>
<p>1. 创建服务器上的仓库，作为公共仓库，需要<br />
   git init &#8211;bare<br />
   但要在本地创建一个自己用的仓库， git init 就够了。</p>
<p>2. 在服务器上初始化好一个仓库目录后，就可以使用了。只需要有远程访问的权限就可以作为远程仓库。<br />
   如:<br />
   克隆到本地仓库:<br />
    git clone user@host.domain:/Path/to/repository/</p>
<p>3. 创建好本地克隆之后，总会有提交到服务器仓库的时候，第一次push，需要使用<br />
    git push origin master</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
最后更新: 2012-02-11 19:28</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/git-%e5%91%bd%e4%bb%a4%e5%a4%87%e5%bf%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>作为艾某人的债主，晒单</title>
		<link>http://www.pyapp.com/liuce/archives/%e4%bd%9c%e4%b8%ba%e8%89%be%e6%9f%90%e4%ba%ba%e7%9a%84%e5%80%ba%e4%b8%bb%ef%bc%8c%e6%99%92%e5%8d%95/</link>
		<comments>http://www.pyapp.com/liuce/archives/%e4%bd%9c%e4%b8%ba%e8%89%be%e6%9f%90%e4%ba%ba%e7%9a%84%e5%80%ba%e4%b8%bb%ef%bc%8c%e6%99%92%e5%8d%95/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 11:07:07 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=154</guid>
		<description><![CDATA[难得成为世界名人的债主啊 如何成为艾未未的债主 1）邮政汇款（2－3天）：北京朝阳区崔各庄乡草场地村258号 100015 路青收 （国外可选择西联汇款） 2）（首选方式，即时到账）中国建设银行北京市分行前门支行幸福大街储蓄所 6222 8000 1013 1006 244 刘艳萍（国际转账SWIFT代码: PCBCCNBJBJX） 3）支付宝：fakesheji@gmail.com（即时到帐，每天取出15万限制） 4）paypal：fakesheji@gmail.com （因为资金进入频繁目前被paypal冻结） 信息来源：http://loveaiww.blogspot.com/2011/11/ai1001_6999.html]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pyapp.com/liuce/wp-content/uploads/2011/11/Screen-Shot-2011-11-08-at-下午6.44.27.png"><img src="http://www.pyapp.com/liuce/wp-content/uploads/2011/11/Screen-Shot-2011-11-08-at-下午6.44.27-300x164.png" alt="" title="Screen Shot 2011-11-08 at 下午6.44.27" width="300" height="164" class="alignnone size-medium wp-image-155" /></a></p>
<p>难得成为世界名人的债主啊</p>
<blockquote><p>
如何成为艾未未的债主<br />
1）邮政汇款（2－3天）：北京朝阳区崔各庄乡草场地村258号 100015 路青收 （国外可选择西联汇款）</p>
<p>2）（首选方式，即时到账）中国建设银行北京市分行前门支行幸福大街储蓄所 6222 8000 1013 1006 244 刘艳萍（国际转账SWIFT代码: PCBCCNBJBJX）</p>
<p>3）支付宝：fakesheji@gmail.com（即时到帐，每天取出15万限制）</p>
<p>4）paypal：fakesheji@gmail.com （因为资金进入频繁目前被paypal冻结）
</p></blockquote>
<p>信息来源：<a href="http://loveaiww.blogspot.com/2011/11/ai1001_6999.html" onclick="pageTracker._trackPageview('/outgoing/loveaiww.blogspot.com/2011/11/ai1001_6999.html?referer=');">http://loveaiww.blogspot.com/2011/11/ai1001_6999.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/%e4%bd%9c%e4%b8%ba%e8%89%be%e6%9f%90%e4%ba%ba%e7%9a%84%e5%80%ba%e4%b8%bb%ef%bc%8c%e6%99%92%e5%8d%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我们需要更好的代码生成工具</title>
		<link>http://www.pyapp.com/liuce/archives/code-farmers/</link>
		<comments>http://www.pyapp.com/liuce/archives/code-farmers/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 04:09:39 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=139</guid>
		<description><![CDATA[> 1819年，巴贝奇在一次去法国的访问中，看到普隆尼男爵招募大量计算工人，在几组数学家的带领下趴在桌上写写算算的情形，深受这种智力放大方式的震撼；而这些计算结果的质量之低，更是让他感到无力。当时的科学作家迪昂赛斯·拉德诺写道，从40册表里随机抽样，就发现了3700项错误；而根据巴贝奇的计算结果，这些计算错误，每年将会为政府带来超过300万英镑的损失。 其实，现在的软件开发也是这个现状，所以我们需要更强的代码生成工具]]></description>
			<content:encoded><![CDATA[<p>> 1819年，巴贝奇在一次去法国的访问中，看到普隆尼男爵招募大量计算工人，在几组数学家的带领下趴在桌上写写算算的情形，深受这种智力放大方式的震撼；而这些计算结果的质量之低，更是让他感到无力。当时的科学作家迪昂赛斯·拉德诺写道，从40册表里随机抽样，就发现了3700项错误；而根据巴贝奇的计算结果，这些计算错误，每年将会为政府带来超过300万英镑的损失。</p>
<p>其实，现在的软件开发也是这个现状，所以我们需要更强的代码生成工具</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/code-farmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gedit插件classbrowser对php文件无效的解决方法</title>
		<link>http://www.pyapp.com/liuce/archives/gedit%e6%8f%92%e4%bb%b6%e7%9a%84classbrow%e5%af%b9php%e6%96%87%e4%bb%b6%e6%97%a0%e6%95%88%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/</link>
		<comments>http://www.pyapp.com/liuce/archives/gedit%e6%8f%92%e4%bb%b6%e7%9a%84classbrow%e5%af%b9php%e6%96%87%e4%bb%b6%e6%97%a0%e6%95%88%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 07:46:09 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[杂]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=134</guid>
		<description><![CDATA[让gedit的classbrowser插件在编辑php源码时生效]]></description>
			<content:encoded><![CDATA[<p>这段时间以来，我一直工作在ubuntu下，编写php程序完全使用gedit编辑器。<br />
写自己的代码和改自己的代码还好，一旦需要编辑别人的代码时，就会遇到找函数的定义或确定一个php文件内的函数列表很麻烦的问题。</p>
<p>本来，我一直用 grep 进行辅助，后来看到gedit有个插件classbrowser还不错，在python程序下完全没有问题，但是在编辑php程序文件时却怎么都列不出类和函数来</p>
<p>经过2天对 classbrowser 代码的跟踪，最后发现问题所在。</p>
<p>classbrowser对php文件的解析使用的ctags工具，我本机的ctags是 ctags.emacs23的符号链接，在ubuntu的安装包里还有另外一个  ctags-exuberant, 这个包则是原生ctags的扩展版本。安装这个ctags包之后，<br />
gedit的classbrowser插件就可以正确解析 php 文件了。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
PS: 列表虽然出来了，但是效果没有那么理想。没有层级，没有折叠，类/变量/函数只是颜色和图标的不同</p>
<p>&#8211;EOF&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/gedit%e6%8f%92%e4%bb%b6%e7%9a%84classbrow%e5%af%b9php%e6%96%87%e4%bb%b6%e6%97%a0%e6%95%88%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>创业的态度</title>
		<link>http://www.pyapp.com/liuce/archives/%e5%88%9b%e4%b8%9a%e7%9a%84%e6%80%81%e5%ba%a6/</link>
		<comments>http://www.pyapp.com/liuce/archives/%e5%88%9b%e4%b8%9a%e7%9a%84%e6%80%81%e5%ba%a6/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 07:08:13 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[反思]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=117</guid>
		<description><![CDATA[对于我，一个部门的管理者来说，我的成就不是我写了某某软件某某系统，也不是做了多好的服务多大的销售业绩，我的成就是我是一家创业成功的公司的中的一员，公司的每一次进步都有我的努力，我的部门顺利的配合了老板和其他部门并取得了成功，并成功建立了部门内和部门间的流程。我想这就是创业的态度吧]]></description>
			<content:encoded><![CDATA[<p>创业公司都是小公司，而小公司的好处，一般都用&#8221;船小好调头&#8221;来形容，其实这更多的是一种无奈和自我安慰。</p>
<p>小公司好调头首先是受制于团队能力。小公司之小，首先必然是人少，而且不够专业。小公司里，一专多能的人会更受欢迎，如果太专，则在小公司里往往无法做事, 因为你上下游配合的环节都做不到足够专业。也正是这样的用人概念，也就造成了小公司需要频繁掉头的事实: 很多过于专业的事情做不了，只能寻找另外一个适合公司当前人力配置的事情来做。</p>
<p>小公司好调头的另一个原因，人力财力有限，一个方向上遇到障碍，不可能拼尽全力去死磕，只能掉头。绝大多数选择创业的老板都是有一点背景并且看到一些希望，所以往往并不缺乏机会，尤其是一战成名的机会。但这种机会也往往需要投入公司的全部人力物力之后都不够，这对创业公司就形成了一个无形的壁垒:慢慢熬; 或者用尽各种手段整合到足够的资源; 或者等下一次更合适一点的机会。 但只要想抓住一次机会，这次机会就绝对不是为你量身定做的，你就一定要对整个公司的业务、流程、甚至团队进行调整。</p>
<p>就这么简单的2个原因，就导致了小公司会频繁的掉头，尤其典型的就是经常可以听到在小公司工作的人在抱怨: &#8220;老板一点准主意都没有，今天做个东，明天做个西的, &#8230; 。 &#8221; 其实，他只是不了解老板的无奈，谁不想踏踏实实把一件事情做好阿, 可是太多的时候由不得他阿。</p>
<p>绝大多数的人会认为确定盈利模式，建立公司制度是老板的事情，我的看法是不全是老板的事情。公司老板的首要任务是如何让公司活下来，做到这一点只需要不断找到盈利点就可以了，然后才是如何让公司更规范化的运行和找到所谓的盈利模式。我们都知道，大公司和小公司的一个显著的区别就是制度明确和流程的清晰，但如果我们仔细的想一下: 谁能记得住一个大公司全部的制度文本和流程要求？ 我相信很少有人能, 能做的这些人估计也都是职业的行政和人力人员。那大公司的制度到底是什么？我也想了很多，突然顿悟了: 是习惯。</p>
<p>继续深挖我这个结论，就不难得出: 一个公司做事的习惯，不是老板说了算的，是靠整个团队不断磨合来养成的，最终形成文字的变成了制度, 形不成文字的就是文化。小公司既然面临不得不变来变去的困境，又要养成良好的做事习惯，这真是雪上加霜，要不为什么会有绝大多数的小公司会在几年内死掉呢。</p>
<p>有了这个结论，就不难看明白另外一个现象了: 绝大多数能从小成长起来的公司，都会在快速发展的阶段进行大换血，甚至有些情况下老板都会被换掉，比如老板自己把公司卖掉了, 或者被投资方炒掉了。其实这些现象都有一个共同的结果: 引入空降兵的做事习惯，让公司的制度建立起来。这样做的坏处大家也都看过无数次了：公司不是家；公司已经不是当初我喜欢的那个公司了；公司越来越没有人情味了；当初的和睦快乐的团队消失了。但这些都不是公司的错，错在管理者。</p>
<p>几个简单的问题就可以想明白: 换血的目的是什么？因为要建立更好的做事的习惯。为什么现有的部门/团队没有建立起良好的做事习惯？因为他们没有做，或者没有意识去做。大换血就一定会成吗？不一定，必然还存在部门与部门之间的合作问题。大换血除了流失了老员工之外，还有什么损失呢？ 损失的公司原有的氛围和文化。所以，现有的团队没有跟上公司的进步，被换掉是自然淘汰的结果，但随着换血流失掉的老员工和原有的公司文化，也没有哪个老板是不心疼的。员工的牢骚我们反倒是见的更多一点，见不到老板的牢骚，也无非是2个原因:太多的事情要做，顾不上；我确实有责任，也没什么好牢骚的。</p>
<p>困境，又是困境。该怎么办，我想了很久。</p>
<p>起初，我认识到，我也许是我们团队中最先发现这个问题的，那么唤醒团队其他成员的责任自然在我身上，为我的部门建立良好的做事习惯的责任也自然在我。然后，我迅速又认识到，部门不是孤立存在的，只有一个部门能在公司的成长的过程中存活下来并不是成功，也并不能真正的保住公司的氛围，反而更容易形成所谓的小圈子。我必须让团队的人和我一起为这个目标努力。</p>
<p>首先，我看到了公司的问题所在，别人可能没看到或者没有精力去处理，更有可能很多人会想那不是我的事情，但那些事情又没有达到需要老板去关注的程度，该怎么办？ 我认为，我看到了就应该我解决。但我的时间和精力也是有限的，我需要解放自己的手和脑，要么换自己部门的人，要么给他们做培训，或者兼有。解决了自己的问题，放开了自己的手，才有机会抬起自己的眼，看看部门合作上有什么问题，有没有可以帮助其他部门共同进步的地方。各个部门的事情都能顺利进展了，我们这些管理层的成员才能让老板的意图更快的达成，才有机会帮老板分担更多的压力，老板才会有时间和精力考虑更多的所谓公司的方向和模式的问题。而所谓模式，往往也是源自各个团队能做的最好的事情。</p>
<p>每次部门的技术交流会我都会讲, 公司的进步取决于公司每个团队的进步，团队的进步又取决于团队的每一位成员，我必须不断的教育我的团队成员，让他们能更专业的胜任工作，唯有如此，我才能有时间和精力去为合作团队分担更多的压力，为我的老板考虑更多的事情。自然，老板仍然只需要考虑如何保证公司的生存就好，管理层更多的要考虑如何发展，只有各个部门的响应不断变得规范速度不断变快的时候，老板才有空余的精力考虑更为远大的目标，公司才能迈向下一个台阶。在规范化不断推进的过程中，缺失的环节和岗位会被自然发现，当这个环节变得足够重要的时候，合适的人自然会加入进来。</p>
<p>对于我，一个部门的管理者来说，我的成就不是我写了某某软件某某系统，也不是做了多好的服务多大的销售业绩，我的成就是我是一家创业成功的公司的中的一员，公司的每一次进步都有我的努力，我的部门顺利的配合了老板和其他部门并取得了成功，并成功建立了部门内和部门间的流程。我想这就是创业的态度吧。</p>
<p>&#8211;EOF&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/%e5%88%9b%e4%b8%9a%e7%9a%84%e6%80%81%e5%ba%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开启我的GTD系统</title>
		<link>http://www.pyapp.com/liuce/archives/%e5%bc%80%e5%90%af%e6%88%91%e7%9a%84gtd%e7%b3%bb%e7%bb%9f/</link>
		<comments>http://www.pyapp.com/liuce/archives/%e5%bc%80%e5%90%af%e6%88%91%e7%9a%84gtd%e7%b3%bb%e7%bb%9f/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 09:49:47 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[反思]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=109</guid>
		<description><![CDATA[我一直就在不断尝试和完善自己的TODOList, 直到今天,加上利用10.1假期的机会，我读完了一本经典的书<Getting Things Done>,我才知道我要实现符合自己习惯的TODOList并不遥远，但要是靠自己摸索，可能又要浪费几年的时间了。]]></description>
			<content:encoded><![CDATA[<p>我一直就在不断尝试和完善自己的TODOList, 直到今天,加上利用10.1假期的机会，我读完了一本经典的书<Getting Things Done>,我才知道我要实现符合自己习惯的TODOList并不遥远，但要是靠自己摸索，可能又要浪费几年的时间了。</p>
<p>我的上一篇blog[<a href="http://www.pyapp.com/liuce/archives/97/">今日小结</a>]中写到，要每周发2篇blog。结果从那天开始，我只在当周打开了自己的blog,之后就再也没有打开了。这是典型的跟自己违约的行为，直接导致了我这么长时间以来，甚至都不敢打开自己的blog.</p>
<p>意识到的另一点问题: 以前很多事情是想好了下一步的，而且有列出全部想做的事情的习惯，问题在于没有当时就把下一步如何做写下来，还有很多事情是没有想如何做下一步的。</p>
<p>在写这篇blog的时候，我重新思考了下。对于写blog态度有所变化: 有什么写什么先不要顾及质量，培养写的习惯是第一重要的，质量会随着数量的增加而逐步提高。既然得出了这样的结论， 那自然要确定下一步的行为了: 不定期(不使用每周每天这样的字眼，降低对自己的要求)总结自己做错的事情，和对想做的事情的下一步的思考过程。</p>
<p>另外，附上我对自己的GTD系统的一点计划，还不完善，希望能对大家有一点启发。</p>
<p>我的GTD系统: </p>
<ul>
<li>Gnote, 使用快捷键， &lt;win&gt;+F1 打开固定便签，收集全部的想法和事情，作为我的inbox. </li>
<li>GTG(Getting Things Gnome!)， 用作我的todo, projects, read/note,管理工具。GTG的插件支持同Remember The Milk网站的同步，支持同Evolution(Outlook clone)任务的同步，而且完全用python写的。</li>
<li>使用Greader,Gdoc和Gmail作为主要的阅读工具</li>
<li>还缺乏一个好的手机客户端和相应的网站, 暂时可以用remember the milk, 但总觉得还不够好。</li>
</ul>
<p>明天又是休息日，是一个开始整理自己Inbox的好时机。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/%e5%bc%80%e5%90%af%e6%88%91%e7%9a%84gtd%e7%b3%bb%e7%bb%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>今日小结[2010-09-02]</title>
		<link>http://www.pyapp.com/liuce/archives/97/</link>
		<comments>http://www.pyapp.com/liuce/archives/97/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 15:14:41 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[杂]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=97</guid>
		<description><![CDATA[ubuntu 3G上网卡的安装方法。 让百度开放平台自生自灭吧 。GTG需要API和网站服务。]]></description>
			<content:encoded><![CDATA[<p>写这种玩意很有充数的感觉，但为了完成前面的目标，还是先将就下吧。</p>
<hr />
今天硬盘分区不知道怎么坏掉了，仔细想想也没丢什么。代码都在svn服务器，重要的几个信息文本，也都在云上有备份，损失最大的是eMule下载的那些剧集。就是新装系统需要按照自己的使用习惯再配置一遍比较麻烦。</p>
<hr />
重装ubuntu 10.04 之后， 3G上网卡连不上网络了。简单google了一下，看一堆招数。其实ubuntu 10.04 已经完美支持3G上网卡了，包括国内的3家运营商。<br />
安装过程很简单，只需要安装 usb-modswitch 就可以了。<br />
可以用软件包管理器<br />
或者命令行<br />
sudo apt-get  install  usb-modswitch usb-modswitch-data</p>
<p>然后，右键点任务栏网络连接的图标->编辑链接->无线宽带，然后按照向导执行下来就行了。</p>
<hr />
GTG 需要一个导出和备份的插件，好在用了 RTM 的插件，昨天刚同步过，没丢条目，只是丢了详细信息和层级关系。<br />
gnote也需要一个跟ubuntuone同步的插件</p>
<hr />
关于百度开放平台<br />
没必要这么多帖子讨论baidu的开放平台。大家能得到好处，自然会挺他；拿不到，就让他自生自灭。何必为了一个没有道德的公司费口舌呢？</p>
<hr />
成天价惦记着文明古国有意思吗？为什么不说说当代文明国度？ 背着文明古国的大帽子又没有当代文明的范儿，岂不是更丢人？</p>
<p>&#8212;-eof&#8212;-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>也说产品</title>
		<link>http://www.pyapp.com/liuce/archives/%e4%b9%9f%e8%af%b4%e4%ba%a7%e5%93%81/</link>
		<comments>http://www.pyapp.com/liuce/archives/%e4%b9%9f%e8%af%b4%e4%ba%a7%e5%93%81/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 15:56:22 +0000</pubDate>
		<dc:creator>刘策</dc:creator>
				<category><![CDATA[反思]]></category>

		<guid isPermaLink="false">http://www.pyapp.com/liuce/?p=90</guid>
		<description><![CDATA[产品生命周期及产品经理的职责]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lvren.cn" onclick="pageTracker._trackPageview('/outgoing/www.lvren.cn?referer=');">绿人</a>职责分工方面一直有问题，其核心无非是一个产品/项目到底应该由什么人来主导。</p>
<p>前几天，白鸦的文章 <a href="http://uicom.net/blog/?p=883" onclick="pageTracker._trackPageview('/outgoing/uicom.net/blog/?p=883&amp;referer=');">絮叨&#8221;产品&#8221;</a> 也在讨论这个问题。</p>
<p>在我看来，无所谓这个人到底应该是什么工种什么特长，只需要他尽量专职，必须专注的为一个产品的生命周期负责。这个产品的生命周期应该包括:需求调研，可行性分析，UI/UE的设计，实现方案的确定，运营方向及方案的确定，效果的统计和分析，项目的后续发展(扩大，持续或终止)。</p>
<p>以上这些阶段，看起来很像软件工程里系统分析师要干的活儿。其实本来就是，因为互联网产品没有明确的需求方，只有潜在的用户。而国内CS专业里，软件工程都是针对客户项目进行教学和实践的。而且，互联网产品和客户项目的还有一个本质的区别就在于:客户项目只需要取悦客户，客户满意就一切OK;互联网项目却要为后续的投入负责。 </p>
<p>按照上述的产品生命周期划分，公司领导和项目经理的职责应该是:公司领导定好方向，产品经理负责分析可行性和制定运营计划，然后由产品经理推动整个项目或终止这个项目。</p>
<p>但因为要对项目的后续投入负责，而一般的互联网公司里，产品经理往往不可能有这么大权力决定一个项目的生死(另一个真相是，没有几个项目经理懂得如何做市场调研和分析)，从而拍板项目要做的是公司领导，甚至连带着把工期也拍板了。因为产品经理的项目前期的不作为，自然，他也不必为后续的投入负责，更不需要为运营的方向和方案伤脑筋了。结果，一个产品经理就被定位成了UI/UE 设计师 兼 设计技术和前端之间的沟通协调人了。</p>
<p>这一点，白鸦的 絮叨&#8221;产品&#8221; 一文里就对baidu产品的成功做了一个描述，其中白鸦最欣赏也正是产品经理的全职全责。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
现在说回绿人，既然我认为自己想的挺明白了，那为什么绿人也在这个困境之中呢？<br />
原因其实很简单:人力不足。</p>
<p>一个好的旅游产品线，涉及的内容是相当多的，每一个点都可以深入下去做出花来。但哪一个点会是能让绿人开花的点没有人能打包票，同时作为一个经济体，生存并盈利始终是最应该优先考虑的问题。所以，就成就了现在的状态: 哪一个点能让绿人多活一段时间或者说多盈利一点，哪一个点就应该做一些投入。</p>
<p>如何解开这个困局呢？ 我还在苦苦寻找</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pyapp.com/liuce/archives/%e4%b9%9f%e8%af%b4%e4%ba%a7%e5%93%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

