成长之路——参与创业一周年有感之产品、团队、运营

原以为互联网创业,大干快上,半年能有一个结果,结果转眼就1年了,产品又面临全面改版,前景还是迷雾。 有很多感触,一些经验,一些教训,分享一下。 1.新产品的创造       一个新产品的诞生通常源于一个新的想法,这个时候对于产品到底是什么样,通常是很模糊的。当我们对这个产品进行天马行空后,产品有了一个大概的轮廓,大概有哪些功能?有什么好玩之处?竞争优势在哪?之后我们做出了一个粗糙的版本,时间大概在创业3个月以内。到这时为止,还算正常。       如果我们资金和时间充裕,而又不影响市场先机,我们可以抠一下细节,再细化一下,然后由范围可控的用户来检验是否喜欢这个产品的设计,并根据反馈来发现定位、设计的问题,及时进行调整,时间大概在创业6个月以内。进而渐进的引入更多的用户来进行产品的检验,这过程中需要加入适度的运营推广。通常到达这个阶段如果是一个好的创新产品,用户应该已经呈现快速增长的趋势。如果用户没有出现快速增长,那么两个原因:1产品不好玩,2运营推广没做好。这时需要查一下原因并立即改进。如果产品的定位与设计确实没问题,并且很好玩,传播扩散的渠道正确、通畅,那么产品基本就有前景可言了。       如果资金和时间有限,市场先机也有限,比如这个创新的思路很好,但是很容易被抄袭。在国内的创业环境一踏糊涂,专利保护都是扯淡的情况下,如何能赶在被大鳄抄袭之前成功,也是一门很深的学问。在这种情况下,“快”是最重要的,连抄袭者产品都大规模推广了,原创还在那磨磨蹭蹭的,就失去了市场先机。       说了这么多,其实就一句话:“创新产品需要在一个基本模型出来后,基于“运营”进行快速产品调整改进”。关起门来自娱自乐,做出来的只是自已的玩具,而不是用户要用的产品,既然是用户要用,就要接收用户的反馈。当然,这不是指用户说什么是什么。 2.团队建设       创业公司需要有激情澎湃的团队,这一点是必然的。保持团队激情的方法就是让每个人真正的参与进来,把公司的利益与个人的利益绑在一起。       创业团队要小而精,要保证至少80%的人是有激情的,团结在统一的创业目标上的。看到越来越多的兄弟激情退却,很无奈。现实是残酷的,没有那么多人像你一样充满了理想,很多人满于现状,不愿改变,并且不断的去压迫周围的人与他们为伍。创业团队没有激情,是极度危险的。       创业团队应控制出现的小圈子,不应让圈子在创业团队中蔓延。圈子不断的为了他们的利益打击其它团队成员,结果可想而知。 3.产品运营       运营目标主要有两个,一个是产品的推广,一个是收集用户反馈。       推广不说了,说说收集用户反馈。       产品好不好用,好不好玩,用户说了算。你说这东西超好玩,结果80%用户说不好玩,那就真的是不好玩。这也是为什么说产品基本模型应该在运营中进行调整改进的原因,这样才能最接近用户,才能更早的发现问题。在最接近用户的情况下,产品的设计调整才更有意义。       有人说不能拿用户做实验,我们要打造出一个精品再推向市场。我只能说,如果你是一个财大气粗的创业者,你可以这么去搞。但是往往现实不是这样的。与未来可能上百万上千万的潜在用户来数,这微不足道。

一个创业公司要想生存发展,必须从产品、团队、运营三个方面严格控制,尽可能的减少“产品摸索、团队消极被动、远离用户”所带来的可能引起创业失败因素。只有这样,我们才能获得一个机会,一个成功的机会。

路就在脚下,成功就在前方。相信经过1年的摸索的过程后,我们会更加自信的加快脚步,早日获得成功!

yan  2012-10-19

A/B测试终极指南

smashingmagazine.com上面的一篇好文章。感谢标点符同学的翻译。我就不重复劳动了。

A / B测试不是一个时髦名词。现在很多有经验的营销和设计工作者用它来获得访客行为信息,来提高转换率。然而, A / B测试与SEO不同的是,人们都不太知道如何进行网站分析和可用性分析。他们并不完全明白它是什么或如何更有效的使用它。本文将为你提供有史以来最好的A

阅读全文

成长之路——纠正员工的错误

纠正员工错误的6个步骤:

1以善意的态度指出问题所在;

2、提出具体、客观的事实根据;

3、讨论产生问题的原因(五分钟为什么);

4、让下属提出解决问题的方法;

5、双方同意解决方法;

6、表示你对他的支持和信任;

阅读全文

如何写出无法维护的代码

11

对于有下面这些编程习惯的朋友,请大家对号入座。另外,维护程序的朋友们,你们死定了!!

If builders built buildings the way programmers write programs, then the first woodpecker that came along would destroy civilization. (如果建筑师盖房子就像程序员写程序一样,那么,第一只到来的啄木鸟就能毁掉我们的文明)

~Gerald

阅读全文

成长之路——《精益创业》读后感

一、关于新产品设计 对于创业而言,成功地执行一项无意义的计划是导致失败的致命原因。 如果企业费尽心思开发出来的产品没人想要,那么是否按时、按预算完成计划就无关紧要了。 二、关于新产品开发质量 创新型产品在创造初期,如果我们不知道谁是顾客,我们也不知道什么是质量。 此时,“低质量”的快速最小化可行产品也能为开发高质量的产品服务。 yan 12.10.11

汉明距离

在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。 例如:

* 1011101 与 1001001 之间的汉明距离是 2。

* 2143896 与 2233796 之间的汉明距离是 3。

* “toned” 与 “roses” 之间的汉明距离是

阅读全文

相似图片搜索的原理

1

上个月,Google把“相似图片搜索”正式放上了首页。

你可以用一张图片,搜索互联网上所有与它相似的图片。点击搜索框中照相机的图标。

一个对话框会出现。

你输入网片的网址,或者直接上传图片,Google就会找出与其相似的图片。下面这张图片是美国女演员Alyson Hannigan。

阅读全文

centos6.2下lamp开发环境部署过程

centos6.2下lamp开发环境部署过程
yan 2012-08-16
一、部署程序apache
mysql
php
mongodb
ImageMagick
Memcached
epel
ssh
rockmongo
phpmyadmin
memadmin
二、部署过程
1.mysql
yum install mysql mysql-server
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
2.apache
yum install httpd
chkconfig –levels 235 httpd on
/etc/init.d/httpd start
测试 apache:
在CentOS里Apache的默认文档路径的位置是在/var/www/html,配置文件的路径是/etc/httpd/conf/httpd.conf。其他的配置存储在/etc/httpd/conf.d/ 文件夹里。
3.php
yum install php
/etc/init.d/httpd start
#php extension
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
/etc/init.d/httpd restart
4.测试apache和php
vi /var/www/html/info.php
<?php phpinfo(); ?>
5.安装ssh并测试登录其它linux服务器:
yum install ssh
ssh -l root 192.168.1.234
exit
6.安装epel:
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
7.安装php常用扩展:
yum install php-mbstring
yum install php-mcrypt
8.安装mongo
yum install mongodb-server
yum install php-pecl-mongo
配置mongo参数:
vi mongodb.conf
dbpath = /data/db/mongodb #数据文件存放目录
logpath = /data/logs/mongodb.log #日志文件存放目录
port = 27017  #端口
fork = true  #以守护程序的方式启用,即在后台运行
创建db目录并设置权限:
mkdir /data/db/mongodb
chmod 777 -R /data/db/mongodb
启动mongod:
mongod –config /etc/mongodb.conf
联接:
mongo
use topka
db.addUser(“topka”,”topkapassword”);
db.auth(“topka”,”topkapassword”);
9.svn co
mkdir /var/www/html/topka/trunk
cd /var/www/html/topka/trunk
svn -co svn://xxx.xxx.xxx/topka/trunk
修改目录权限:
chmod 777 -R /var/www/html
10.配置apache VirtualHost
vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
#配置localhost
<VirtualHost *:80>
    ServerName localhost
    ServerAdmin yan@localhost
    DocumentRoot /var/www/html/
    ErrorLog logs/localhost.log
    CustomLog logs/localhost.log common
</VirtualHost>
#配置www.topka.cn域名
<VirtualHost *:80>
    ServerName www.topka.cn
    ServerAdmin yan.jingang@topka.cn
    DocumentRoot /var/www/html/topka/trunk/web/code/topka_wb/app/
    ErrorLog logs/topka.cn.log
    CustomLog logs/topka.cn.log common
</VirtualHost>
11.配置hosts
#localhost
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#topka
127.0.0.1 topka.cn www.topka.cn img.topka.cn static.topka.cn admin.topka.cn
#db.conf
127.0.0.1 db_master
127.0.0.1 mongoserver
12.安装imageMagick
yum install ImageMagick
yum install php-pecl-imagick
13.安装memcached
yum install memcached
yum install libmemcached
yum install php-pecl-memcache
yum install php-pecl-memcached
启动memcached:
memcached -d -u root
测试:
yum install telnet
telnet localhost 11211
stats
php扩展状态:
使用memadmin管理:

Linux查看日志命令

1、cat命令:

功能:1)显示整个文件。

示例: $ cat fileName

2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。

示例: $ cat file1 file2 > file

说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)      cat参数详解: -n 或 –number 由 1 开始对所有输出的行数编号<br

阅读全文

Linux下chkconfig命令详解

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

使用语法:
chkconfig [–add][–del][–list][系统服务] 或 chkconfig [–level <等级代号>][系统服务][on/off/reset]

chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi

阅读全文

LVS

LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。

简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。章文嵩博士目前工作于阿里集团,主要从事集群技术、操作系统、对象存储与数据库的研究。 宗旨 使用集群技术和Linux操作系统实现一个高性能、高可用的服务器. 很好的可伸缩性(Scalability) 很好的可靠性(Reliability) 很好的可管理性(Manageability)。 特点 可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。 技术 1、技术简介 LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。 2、集群采用三层结构 一般来说,LVS集群采用三层结构,其主要组成部分为: A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。 B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。 C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。 3、调度器 调度器是服务器集群系统的唯一入口点(Single Entry Point),它可以采用IP负载均衡技术、基于内容请求分发技术或者两者相结合。 在IP负载均衡技术中,需要服务器池拥有相同的内容提供相同的服务。当客户请求到达时,调度器只根据服务器负载情况和设定的调度算法从服务器池中选出一个服务器,将该请求转发到选出的服务器,并记录这个调度;当这个请求的其他报文到达,也会被转发到前面选出的服务器。在基于内容请求分发技术中,服务器可以提供不同的服务,当客户请求到达时,调度器可根据请求的内容选择服务器执行请求。因为所有的操作都是在Linux操作系统核心空间中完成的,它的调度开销很小,所以它具有很高的吞吐率。服务器池的结点数目是可变的。当整个系统收到的负载超过目前所有结点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载。 对大多数网络服务来说,请求间不存在很强的相关性,请求可以在不同的结点上并行执行,所以整个系统的性能基本上可以随着服务器池的结点数目增加而线性增长。 共享存储通常是数据库、网络文件系统或者分布式文件系统。服务器结点需要动态更新的数据一般存储在数据库系统中,同时数据库会保证并发访问时数据的一致性。静态的数据可以存储在网络文件系统(如NFS/CIFS)中,但网络文件系统的伸缩能力有限,一般来说,NFS/CIFS服务器只能支持3~6个繁忙的服务器结点。对于规模较大的集群系统,可以考虑用分布式文件系统,如AFS、GFS、Coda和Intermezzo等。分布式文件系统可为各服务器提供共享的存储区,它们访问分布式文件系统就像访问本地文件系统一样,同时分布式文件系统可提供良好的伸缩性和可用性。 4、分布式锁管理器 此外,当不同服务器上的应用程序同时读写访问分布式文件系统上同一资源时,应用程序的访问冲突需要消解才能使得资源处于一致状态。这需要一个分布式锁管理器(Distributed Lock Manager),它可能是分布式文件系统内部提供的,也可能是外部的。开发者在写应用程序时,可以使用分布式锁管理器来保证应用程序在不同结点上并发访问的一致性。 负载调度器、服务器池和共享存储系统通过高速网络相连接,如100Mbps交换网络、Myrinet和Gigabit网络等。使用高速的网络,主要为避免当系统规模扩大时互联网络成为整个系统的瓶颈。 5、监视器 Graphic Monitor是为系统管理员提供整个集群系统的监视器,它可以监视系统的状态。Graphic Monitor是基于浏览器的,所以无论管理员在本地还是异地都可以监测系统的状况。为了安全的原因,浏览器要通过HTTPS(Secure HTTP)协议和身份认证后,才能进行系统监测,并进行系统的配置和管理。 优点 1、开源,免费 2、在网上能找到一些相关技术资源 3、具有软件负载均衡的一些优点 缺点 1、最核心的就是没有可靠的支持服务,没有人对其结果负责; 2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等; 3、开启隧道方式需重编译内核。

js 数组函数

concat

将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响。

var arr = [“a”,“b”,“c”]; var arr1 = arr.concat(“d”,“e”); //arr1 = [“a”,”b”,”c”,”d”,”e”]

join

以指定的字符作为分割符,将数组转换为字符串,当指定字符为逗号时,其作用和 toString() 相同。

var str1 = arr.join(“,”); //str1 = “a,b,c”

pop

通俗的讲,就是弹出数组的最后一个元素。结合下面的 push 方法,使得将数组作为栈来使用成为可能。pop 方法返回数组最后一个元素的值,并将

阅读全文