创业那点事

前几天在微博上看见了一则消息

这个感知网所倡导的模式就是我和几个朋友曾经做过并打算自己创业去做的事情,而感知网所属的北京星谷科技有限公司,之前也曾经有过接触。08年的12月份,我和几个公司同事启动了基于Jabber架构的互联网实时监控系统的开发,历时8个多月,我们都是利用周末双休来进行,这其中的甘苦只有自己知道,整整8个月,我们都没有了双休日,但是值得欣慰的是,我们完成了整个系统所涉及的所有开发,从前端摄像头的控制程序,到后台的存储服务、转发服务、后台管理系统等等。也因为这个系统的完成,激发起了大家内心早就蠢蠢欲动的创业念头。然后就像很多第一次创业的人一样,大家群情激奋,本该冷静的心不冷静了,脑海中都是创业后的美好前途,却没有平静下来,真正思考下创业可能遇到的问题,这也为后来的创业失败埋下伏笔。

而我自己本身就是属于感性大于理性的人,在几个创业朋友中属于最亢奋的,当时只是觉得只要能出来做什么都好说,因为我和几个同事都是做技术的,我们没有市场资源,也不太懂如何启动和经营一家公司,所以找了其中一个同事认识的朋友作为合伙人,正是由于我们几个太想出来了,因此第一,对于合伙人的选择,完全没有冷静的判断一下,当时只是觉得既然是其中一个的朋友,那肯定就没问题,后来证明当时的选择是错误的,我们几个跟后来加入的合伙人在公司战略和公司经营思路上有很大分歧,第二,当时在股份的配置上,我们也没有据理力争,我们几个带着自己开发的产品和技术,仅仅只占了40%股份,而后加入的两个合伙人却占有了60%,这又导致了在后面的公司经营上,我们失去了话语权,但是当时的心态导致了只想尽快出来把公司搞起来再说。因为这两个原因,最终导致了公司在整体战略和经营思路上并不是我们构想的,我们自己花了8个月时间的产品也就束之高阁了,反而做起来外包项目,我自己在10年4月份结束了自己为期8个月的创业生涯,事后自己也是感触颇多,总结了几点:

1.创始人最好不要都是搞技术,最好能有一名市场和销售出身的哥们,最佳配置个人认为技术1个,产品1个,市场销售1个

2.合伙人一定要找自己熟悉的,因为如果不熟悉,很可能在今后的公司经营中在沟通交流上出现大问题

3.合伙人的年龄相差不能太大,我们原来后期加入的合伙人都接近我们父母辈了,真的是存在代沟了,他们更适合的角色应该是投资方而不是合伙人

4.创业之前一定要把股份分配搞清楚了,俗话说亲兄弟明算账,自己及核心创始人团队所占股份一定要超过50%

5.认准的产品方向,一定要坚持做下去,至少要推到市场上去接受一下市场的考验

6.公司创始股东人数不宜过多,最多不超过3人,我们当初股东6人,也是很有问题

每个人内心都有一颗期待创业的心,如果你准备好了,那就毫不犹豫的去干吧!

也谈自动化构建及部署

之所以谈到这个问题,源于跟公司QA同事谈到了项目管理中流程管理,流程管理里面很重要的一个环节就是实现测试部署的自动化,提高产品的整体研发效率。下面就简单谈谈我自己的经历过和理解的自动化构建及部署。

04年在一家台湾公司的时候,第一次接触了自动化构建,当时公司做的是客户端软件,使用的版本控制工具是VSS,开发工具是VC6,之所以会提出软件的自动化构建,是基于测试部提出,由于原来的测试包都是由开发人员在自己机器上编译后再提交给测试,但是经常会出现的问题是,测试人员发现开发人员提交的测试包根本无法测试,然后查到的原因,往往是因为开发人员自己的机器环境跟测试机环境不一样导致,比如开发人员本机安装了某个类库,他使用的某个方法恰恰又依赖这个库,但是他自己又 不知道,或者忘了把这个库也打包进去,所以才出现了测试人员无法测试的情况。为了改善这种状况,当时提出了写一个批处理,实现自动化构建,当时自己承担了这个任务,当时实现的只是一个简单的自动构建,基本原理是,在一台build机器上首先按照lable,从vss库checkout代码,然后运行nmake命令编译代码,这里面需要利用vc6生成mak文件并上传到vss,如果编译成功,则把编译生成的包拷贝到指定的测试机的目录,目录名按照产品名+日期来命名。如果编译错误,则需要上build机器查看输出的错误。这部分都写成了一个批处理,批处理接受参数,参数由要构建的产品名(vss上的名一致),要构建产品的lable,每次完成一个测试版本开发后,开发人员把该上传的都上传到vss,并打上lable,然后邮件通知测试人员,邮件内容主要是测试的产品名称和lable,测试人员根据邮件,运行build机器上的批处理程序,然后根据测试机器上是否正确生成了测试包来判断本次构建是否成功,如果没成功通知相应开发人员进行检查,下面是该批处理的部分代码

这个自动化构建还需要完善的是增加一个构建结果的邮件通知机制。

其后05年进入了一家互联网公司,在这里有幸接触了互联网应用的自动化部署,其中当时自己负责的一个会员管理后台,采用的是.net开发,vss进行版本控制,部署在IIS上,同时公司另外一个业务是java开发,cvs进行版本控制,部署到apache,这部分我虽然不负责,但是也接触到了相关脚本的构建。这里面的基本部署原来,也是跟之前的类似,稍有不同的是,这里面的自动化脚本可以分别生成内网测试包和外网测试包,分别用于进行内网测试验证和外网测试验证,同样这部分也是由测试人员控制,开发人员在完成一个测试版本开发后,邮件通知测试人员即可。

这里写这么多关于自动构建和部署,要说明的一点就是,我们要提高效率,改善流程,很大程度就是把人做的工作交给机器来做,人可能会因为各种原因犯错误,比如今天心情不好了,或者今天心情太好了,多可能会使自己在部署过程中产生错误,而如果是由脚本来完成,如果脚本本身没有问题,那这种犯错误的几率接近于零。曾经看过一篇文章,讲到了twitter全球几千台机器的部署只需要短短几分钟就能完成,都是有赖于他们的自动化部署,这里面需要我们参考的就是如何改进和提高这种自动化部署,使其也能在最短时间内完成部署并且实现零错误。自动化构建或者部署,因采用的开发语言不通,版本控制软件不同会略有区别,比如java本身就带有ant,而linux下的c或者c++服务程序则可以通过cmake,而所有的版本控制无论vss、cvs、svn、git都有命令行方式,因此自动化部署的基本原理类似,只需要我们之前多花点时间把这个部署脚本构建好,那就是一劳永逸的。

 

 

 

时间决定市场

05年在中科院读MSE时候,一个来自微软的首席XXX在给我们讲数据库这门课程的时候,提到了“时间决定市场”这个概念,并且拿微软作例证,微软的很多产品之所以成功都在于及时的推出并面向用户,虽然可能存在这这样那样的问题,但是基本功能已经实现,而且在用户的反馈中不断得到改善,最终成为了赢家。

在今天的互联网,时间决定市场更加明显,当某一个概念成为热点的时候,大家一拥而上,但是能够在这一群人中脱颖而出的一般都是能够很快完成产品基本功能并且快速推向市场的。互联网产品的研发理念应该是,尽快做出一个60分的产品,快速的推给你的目标用户,在和用户的不断互动中改善产品,从而达到70分,80分,甚至90分。

曾经碰到过这样的公司,总认为要把产品做到90分才推出,3个月,半年,一年过去了,迟迟不推出产品,而可能就是在这3个月,半年,一年中你的对手已经推出了自己的产品并且根据用户反馈不断调整完善了。而你即便这时候推出了你所谓的90分产品,胜算也已经非常非常低了,首先你丧失了先机,你的竞争对手可能已经形成了用户壁垒,其次,你的90分产品,只是自己闭门造车的结果,是一堆人拍脑袋的结果,这个90分只代表了这一部分人,并不能代表真正目标用户的感受,所以你的90分很大程度在真正目标用户那里就是60分,可能60分还不到。

因此产品经理的责任是尽快根据市场调研数据和自己的设计理念输出一个满足基本功能的60分的产品设计,同时推进研发尽快完成产品,在保证基本功能测试通过后,尽快把自己的东西拿到真正的目标用户面前,让他们来帮助你完善产品,这里面的帮助有很多方式,最基本的就是第一通过构建用户反馈论坛,及时查看用户的反馈信息,并第一时间做出判断和解决方法,第二构建完善的用户行为数据分析手段,根据这些行为数据来完善产品设计。

关起门来是拿不到真正的用户需求的,我们只有尽快的拿出东西,让你真正的目标用户来告诉你,什么是他们内心真实的需求,只有这样,你才有可能会做出一款真正满足用户需求的产品。

 

做川菜还是上海菜?

 

今天下班后,在楼下的一家四川风味的饭店吃的晚饭,点了一份面,一份夫妻肺片,且不论夫妻肺片的食材本身怎么样,但是其味道还是让人大赞。不由的想起了一个对比,我老婆家是湖北的,做菜风格偏川菜风味,而我自己老家靠近上海,属于上海系,同样是做个鸡肉,如果是我父母来做,那他们首要考虑的就是这个食材本身是否优质,所以必须是买那种纯正的散养鸡,只有这样加上到位的厨艺炖出的鸡汤和鸡肉才会非常鲜美,而我老婆的爸妈,则不会特别考虑食材本身,可能就是一个普通的肉鸡就可以,他们更注重的可能是做菜的辅料,会在辅料上大做文章,再辅以不错的厨艺,出来的,可能吃的时候已经感觉不出鸡本身的味道,而是被浓浓的辅料所带来的鲜美味道。

由两个菜系在烹饪上侧重点不同,一个偏重食材本身,一个偏重辅料,对比互联网产品,其实这里面颇多相似之处,在互联网整个产品的诞生过程中,主要的三个因素,技术、产品、运营恰好可以对应我们做菜时候的食材、辅料、厨艺;在中国互联网的大环境下我们是做川菜还是上海菜?大家平时都能感觉到,在中国的大部分城市,开的最多的一般都是川湘菜系,而开的比较少,但是普遍偏贵的一般都是粤菜上海菜,这个情况在北京更明显。这反应出川菜适合草根也可以服务高端,粤菜上海菜通常只为精英服务,而如果论整个市场占有率相信川湘菜系应该是占更大比重的。我们做互联网产品应该也是做川菜,为普罗大众服务,其主要原因是,挑选上好的食材很难而且成本非常昂贵,目前中国的技术大环境也是普遍属于大众化的技术,少有突出者,如果你非要选择做上海菜,那带来的结果可能是,你的精英客户很快就会因为他们那非常不好伺候的嘴尝出了你食材的不够优秀而放弃你,而如果你是川菜,那你完全可以在辅料上下足功夫,即我们在产品设计要多花时间,多深入了解用户需求,最后也是最关键的,不管川菜还是上海菜,如果你碰到了一个厨艺蹩脚的师傅,那不管怎么做,出来的都是难以下咽的东西,而如果是一个厨艺高超的师傅,有了前面的基础,不管是优秀的食材,还是下足功夫的辅料,都可以做出一到让人回味无穷,食之难忘的美食。

最后,通常好食材难求,但是在辅料上做出特色,更多源于你是否足够投入和专研,所以与其做只为少数不容易伺候的精英服务的上海菜,不如踏踏实实利用自己高超的厨艺做出老少咸宜、雅俗共赏的川菜。

ubuntu11.04安装JDK

 

ubuntu11.04本身不带JDK源,所以你不能直接通过sudo apt-get install sun-java6-jdk来安装

首先你需要增加java的sdk源,这个通过下面的命令可以实现

 

sudo add-apt-repository ppa:ferramroberto/java

ubuntu11.04一般不带有add-apt-repository这个命令,至少在我的机器上如此,所以我们需要执行下面的命令来安装add-apt-repository

sudo apt-get install python-software-properties

 

完成了上述步骤后,接下来就是正式开始安装JDK了

首先运行

sudo apt-get update

接着

sudo apt-get install  sun-java6-jdk

这样jdk就顺利安装上了,剩下的就是做一些配置了。

 

 


Ubuntu 11.04 + Apache2 配置域名绑定及rewrite

 

Apache2配置rewrite

首先cd /etc/apache2/mods-enabled ,新建一个rewrite.load,文件内容如下:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

修改 /etc/apache2/sites-availabe/default

把所有的AllowOverride None 修改为All

重启Apache2即可

 

域名绑定

修改  /etc/apache2/sites-availabe/default 增加标红部分

<VirtualHost *:80>

        ServerAdmin webmaster@localhost

        ServerName  www.stonenotes.me

 

域名跳转  实现stonenotes.mewww.stonenotes.me跳转

修改  /etc/apache2/sites-availabe/default 增加如下部分

<VirtualHost *:80>

ServerName stonenotes.me

RewriteEngine on

RewriteRule ^(.*)$ http://www.stonenotes.me$1 [R=301,L]

</VirtualHost>

互联网产品“运营>产品>技术”

中国互联网的一个大佬说过“好产品是运营出来的”,中国互联网这样的例子举不胜举,新浪微博的成功、360的横空出世都是因为其出色的运营手段辅之以优秀的产品设计和技术。自己也是技术出身,coding了10年样子,但是在经历了创业失败,接触了更多关于产品、运营方面的知识后,对互联网产品的成功之道,有了深入的认识。新浪微博、360的成功肯定有产品和技术因素在里面,但是这两者绝对不是其最终战胜竞争对手的主要因素。

可以这么说,中国目前的互联网大环境偏急功近利,大部分公司做的都是应用层面的产品,这里面涉及的技术都是成熟技术,因此基本不可能形成技术壁垒。以360为例,当时已经有了瑞星、金山、江民这样的国内老牌杀毒厂商,也有卡巴斯基这样的强势外来势力,但是360杀毒却横空出世,并以非常快的速度成为了个人杀毒的龙头老大,其凭借的是什么,技术产品当然都需要,但是应该说在技术产品上360并没有比其他对手更突出的地方,真正成功的点,就是其推行免费杀毒理念这样的运营手段。

运营、产品、技术是互联网产品的三驾马车,缺失其中任何一个,都很难成功,三者互相依赖,彼此依靠。但是三者之间又有轻重之分,一个成功产品应该具备的是: 运营>产品>技术,应该是以运营为核心,以产品和技术为支撑的一个运转方式。

WordPress静态化

自己的Wordpress已经搭建了将近2周了,今天尝试了把Wordpress做一下静态化处理,静态化的好处就不说了,大家应该都知道。先在网上搜了一下关于Wordpress的静态化,有很多是通过插件实现的,因为不想装太多插件,所以选择了Wordpress本身提供的静态化方式,虽然网上的很多说法,这种静态化是伪静态化。

第一步,先在Wordpress的根目录下建立一个.htaccess文件,文件内容为空即可,接下来赋予apache运行用户对于.htacess文件的写权限,chown -R   XXX:XXX    .htaccess(XXX为本机apache运行用户)这步很关键,如果没有这个写权限,在后面的静态化会失败。

第二步,以管理员身份进入Wordpress管理后台,选择左侧“设置”下面的“固定链接”,选择自定义结构,按图中标红处方式填写。

自定义的格式比较多,常用的有

/%postname%.html  http://server/postname.html

/%post_id%.html  http://server/11.html     

/archives/%post_id%.html http://server/archives/11.html

/%category/%postname%.html  http://serer/category/postname.html

具体更多的自定义结构格式可以上网搜一下

填写完自定义格式后,这时候在保存更新下面会出现将要写入到.htaccess文件内容

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

如果.htaccess是可写入状态,点击保存更新后,就会出现“固定链接结构已更新”提示,这样Wordpress的静态化就完成了。

 

我眼中的点点网

这是点点网内测没多久,自己在点点发的第一个帖子,一直很关注互联网的新生事物,点点是因为中国版的Tumblr进入了视线,也因为点点,自己对Tumlbr和轻博客有了些认识和了解,从最初的充满热情,到如今已经很少再打开自己的点点了,这里面自己感觉主要有两个原因,第一,点点推出的时候,新浪微博正火,那时候自己也热衷于新浪微博,一段时间因为点点自己两线作战,后来就感觉有点不方便了,当时希望点点至少能同步内容到新浪微博(目前这个功能已经有了);第二,点点有别于微博的最大点是,发布内容超过140字,图片可以连续发布,这也让点点后来更像一个图片博客,而自己属于一个文字阅读爱好者,可能点点未来的用户群应该是图片控。

自己并不看好点点的前景,点点目前还只是Tumblr的中国版,并没有在产品设计中融入更多的本地化元素,而新浪微博的成功就是它并不是简单的模仿Twitter,而是根据中文用户作了很多改进,在某些功能点上可以说做得比Twitter更好。目前新浪的轻博客也已经上线,点点虽然已经到了100万用户(这里面送电影票活动应该功不可没),但是应该说,点点前途依然未卜。

WordPress主题安装问题小结

WordPress默认安装好后,进入管理后台,选择安装主题,提示安装失败,这是因为主题安装采用的是ftp方式,需要有wp-content目录的写权限

我使用的是Ubuntu 11.04 Apache2  WordPress版本为3.13中文版,操作如下

sudo chown -R XXX:XXX  /var/www/wordpress/wp-content       其中XXX为ftp的用户名及所在用户组

完成以上操作后,ftp问题解决了,但是仍然会提示一个解压缩错误,这是因为apache运行用户没有wp-content的写权限导致,需要如下操作

sudo chown -R www-data:www-data /var/www/wordpress/wp-content    www-data为我机器上的apache运行用户,查看apache的运行用户很简单

ps -ef |grep apache   显示如下

www-data  8017  7991  0 10:11 ?        00:00:12 /usr/sbin/apache2 -k start。

完成以上这些操作后,主题就可以顺利安装了。