1.float类型
float列类型默认长度查不到结果,必须指定精度,
比如 num float, insert into table (num) values (0.12); select * from table where num=0.12的话,empty set。
num float(9,7), insert into table (num) values (0.12); select * from table where num=0.12的话会查到这条记录。
mysql> create table tt
-> (
-> num float(9,3)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql> insert into tt(num)values(1234567.8);
ERROR 1264 (22003): Out of range value for column 'num' at row 1
注:超出字段范围,无法插入
mysql> insert into tt(num)values(123456.8);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 123456.797 |
+------------+
1 row in set (0.00 sec)
注:小数位数不够,自动补齐,但是存在一个问题就是如上的近似值。
mysql> insert into tt(num)values(123456.867);
Query OK, 1 row affected (0.04 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 123456.797 |
| 123456.797 |
| 123456.867 |
+------------+
3 rows in set (0.00 sec)
mysql> select * from tt where num=123456.867;
+------------+
| num |
+------------+
| 123456.867 |
+------------+
1 row in set (0.00 sec)
mysql> insert into tt(num)values(2.8);
Query OK, 1 row affected (0.04 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 123456.797 |
| 123456.797 |
| 123456.867 |
| 2.800 |
+------------+
4 rows in set (0.00 sec)
mysql> select * from tt where num=2.8;
+-------+
| num |
+-------+
| 2.800 |
+-------+
1 row in set (0.00 sec)
mysql> insert into tt(num)values(2.888888);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 123456.797 |
| 123456.797 |
| 123456.867 |
| 2.800 |
| 2.889 |
+------------+
5 rows in set (0.00 sec)
注:小数位数超了,自动取近似值。
--------------------------------------------------------------------------------------
2.double类型
mysql> create table tt(
-> num double(9,3)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into tt(num) values(234563.9);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 234563.900 |
+------------+
1 row in set (0.00 sec)
mysql> insert into tt(num) values(2345623.2);
ERROR 1264 (22003): Out of range value for column 'num' at row 1
mysql> insert into tt(num) values(234563.2);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 234563.900 |
| 234563.200 |
+------------+
2 rows in set (0.00 sec)
mysql> insert into tt(num) values(2.8);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tt;
+------------+
| num |
+------------+
| 234563.900 |
| 234563.200 |
| 2.800 |
+------------+
3 rows in set (0.00 sec)
FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。这里,“(M,D)”表示该值一共显示M位整数,其中D位位于小数点后面。
例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999。MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001。
posted @
2012-07-09 23:15 zhanghu198901 阅读(8785) |
评论 (0) |
编辑 收藏
所谓编程达人,就是工作时要用多个显示屏幕,甚至多台计算机的人
在他们眼里,一个显示器,再大都是小的,哪里有两个显示器用得爽,感觉好
但弱水三千只取一瓢饮,多的时候还是只看一个显示器,这时另一个显示器(下称辅助显示器)怎么办呢?
一般有两个选择:
一是不管他,亮着就亮着呗
二是把辅助显示器电源关了,要用的时候再开
当然,屏保就不成其为选择了,因为它需要时间,其次它会把所有屏幕全部屏保,最后是因为它是自动的,就象汽车,自动挡没有手动挡那么爽
利弊自己体会,以过来人的感觉说一下:
前者,倒是方便,只是时间长了,眼睛难受,一直有两个高亮度的屏幕在距离你头部几十CM的地方亮着,闪烁着,会不会导致头晕就看你体质而定了。
后者,有点麻烦,有时候找电源开关还得换下脑筋
不才区区在下,自己归于编程达人一类,自己发现这个需求,所以就编了个小软件
运行时有两种状态,一种是黑辅助屏,一种是在托盘显示图标,即世界还是正常的。
posted @
2012-07-09 23:15 zhanghu198901 阅读(792) |
评论 (0) |
编辑 收藏
摘要: 一些要说的话:如果你没有正则表达式的基础,请跟着教程“一步步来”。请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂。当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门。事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教程,最后都能在文章采集系统中使用正则表达式完成任务。而且,他写...
阅读全文
posted @
2012-07-09 23:14 zhanghu198901 阅读(779) |
评论 (0) |
编辑 收藏
学习web这块儿的知识已经有一段儿时间了,最基础也是最常用的便是HTML标签。今天便对HTML知识进行一个小节。
HTML,超文本标记语言,即Hypertext Markup Language,是用于描述网页文档的一种标记语言。HTML是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。它功能强大,具有简易性,可扩展性,平台无关性三大特点,支持不同数据格式的文件镶入,这也是万维网盛行的原因。
一、总结图
二、标签解析
三、总结
HTML的知识非常重要,它是我们学习以后知识的基础。精确掌握这一部分知识,对我们无疑是非常必要的。
posted @
2012-07-09 23:14 zhanghu198901 阅读(1426) |
评论 (2) |
编辑 收藏
Sql注入.
简介.
我们很容易从网上查找到sql注入的定义: 就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,很容易遭到SQL注入式攻击.
用户可以提交一段数据库的查代码,根据程序返回结果,获得一些敏感的信息或是控制整个服务器.sql注入就发生了.
当然我们要魔高一尺,道高一丈.
防止sql注入:
永远不要信任用户的输入,对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双 - - (在数据库中认为是数据库语句的连接)进行转换等.
永远不要动态拼接sql,可以使用参数化的sql或者直接使用存储过程来进行数据查询存取.
永远不要使用管理员权限的数据库的连接,为每个应用使用单独的权限书库连接.
不要把机密的信息直接存放,加密.
应用的异常信息应该处仅少量的提示,最好使用自定义的错误信息对原始的错误进行封装.
采用软件和有效的网站平台来检测sql注入.
实例.(用参数化的sql进行插入来防止Sql注入)
向数据库的新闻类别表(category)通过字符串拼接的方法插入一条语句。
插入函数的代码.
- <span style="font-size:16px;">public bool Insert(string caName)
- {
-
- bool flag = false;
- string sql = "insert into category(name) values('" + caName + "')";
- flag = sqlhelper.ExecuteNonQuery(sql);
-
- return flag;
- }</span>
我们的界面:
我们在调试中可以看到传入数据库中的sql语句。
Ctrl+F5我们不调试直接执行,或是我们把此sql语句复制在查询分析器中执行。界面中我们可以看到。
在增加一行的基础同时我们id为3的记录消失了,被删除了。
让我们对插入数据库的插入代码修改,用参数传递来代替数据库字符串的拼接。
在SQLHelper加上个ExecuteQuery(string sql ,sqlParam[] paras)的重载.
- <span style="font-size: 14pt; "> </span><span style="font-size:16px;">
-
-
-
-
-
- public bool ExecuteNonquery(string sql, SqlParameter[] paras)
- {
- bool flag=false ;
- using (cmd = new SqlCommand(sql, GetConn()))
- {
-
- cmd.Parameters .Add (paras );
- if (cmd.ExecuteNonQuery()>0)
- {
- flag =true;
- }
- }
-
- return flag;
- }</span><span style="font-size: 14pt;">
- </span>
- <span style="font-size:16px;">
-
-
-
-
- public bool Insert(string caName)
- {
-
- bool flag = false;
- string sql = "insert into category(name) values(@caName)";
- SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@caName", caName) };
- flag = sqlhelper.ExecuteNonQuery(sql);
-
- return flag;
- }</span><span style="font-size: 14pt;">
- </span>
这次我们再进行插入,结果如下.
posted @
2012-07-09 23:13 zhanghu198901 阅读(779) |
评论 (0) |
编辑 收藏
DOM文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。
DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3):
Core DOM
定义了一套标准的针对任何结构化文档的对象
XML DOM
定义了一套标准的针对 XML 文档的对象
HTML DOM
定义了一套标准的针对 HTML 文档的对象。
JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言。
Dom和JavaScript的关系就像是C#语言和.Net的关系一样
通过 JavaScript,你可以操作DOM来重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。
posted @
2012-07-06 15:48 zhanghu198901 阅读(1032) |
评论 (0) |
编辑 收藏
网上看到一篇博文,是一位原网易的产品总监辞职进行创业。他针对如果大公司抄袭自己的话如何来应对。
整篇文章通过分析大公司中的各种弊端,来确定创业型公司的优点和长处。通过这篇文章一些想要创业的同学会获得一些信心和动力。
不过我个人感觉,如果以前在大公司里遇到的问题的根源是自身的毛病话,即使换个环境也不会自动消失的。
很多人总是会抱怨环境不好,时机不好,境遇不好。而实际很多困境或难题是自己造成的。希望大家共勉。
原文如下:
腾讯抄你肿么办
2012-06-10 23:13:04| 分类: 行业 |字号 订阅
对不住腾讯的同行,我标题党了。
其实,这篇文章是打算写“大公司抄你肿么办?”很明显腾讯最典型嘛,以至于我还在网易的时候,Boss也问我,腾讯抄你怎么办?此时屡屡有一股邪火在胸口燃烧着,想大吼一声:腾讯抄我怎么办?老子跳槽去腾讯!
最后我还是选择了创业。
我在网易5年,一直带业务部门,从内容总监转职产品总监,算得上资深中层吧。网易做产品的环境,放在业内大约是中等偏上,它的好处别家未必有,弊端则是寰球同此凉热。年初跟VC谈天使融资的时候,对方大统领换了一个问法:如果网易抄你怎么办?我很吃惊地回答,如果留在网易就能把这个项目做出来,我还创什么业?难道你以为我创业是为了发财、专权,或者给自己戴上SB风格的CEO头衔?
那么大公司到底是真老虎还是纸老虎?我得从大公司业务运作的常识说起。
▎部门背景
大公司是一个笼统的概念,由若干个事业部>大部门>中小部门>项目组构成。其中战斗力过硬的项目组是少数,王牌军不足十分之一,而水货项目组的占比至少超过一半。
我们品头论足说XX公司的产品做得很好,其实是某几个项目组实力非凡。如果不与他们正面对抗,其他组做产品也就是60出头的平均分。难道你连产品70分都没有自信?没这自信你还做个屁啊。
所以在忌惮大公司之前,先摸摸底,和你竞争的大公司项目组归属在哪个部门下面,它又是什么背景。正如我以前对某大公司很是好奇,为什么一部分业务很烂,另一部分很赞?内部人士答:因为它们分属于两个不同的事业部,一队落魄边沿化,另一队则是常胜王牌军。
▎业务关联
有些时候,你发现某大公司和你进入了同一个竞争领域。别着急,先看看做这个项目的部门,主营业务是否和该项目在同一条中轴线上。
由于野心的驱动,部门主管常常会批准一些和主营业务关系不大的,想象空间又很大的项目,妄想别错过金矿。然而这只是投石问路,买张彩票,主要的资源仍然在主营业务线集中,更不可能忍受平缓的增长曲线(掘金心态嘛,哪怕掘到铜矿也会断然放弃)。外界看见“XX公司悍然进入XX领域”……屁嘞,只有做这个项目的团队甘苦自知,时间紧/期待高/投入少/管理制度别手,不挂基本上不可能。
紧接着上一条,对大公司对手的部门背景作详细调查,或许能解除你对那个庞然大物的恐惧心。如我以前在网易门户做摄影分享社区,第一年里,有8个月分到了1位工程师的工时;接下来一年总算有3位工程师了,其中2位又是实习生。我熬了整整3年,3年呐,才熬到基本够用的技术人员配置,那时市场机遇早已消失不见。
▎公共资源
大公司的公共资源往往包括如下部分:UED、QA、推广位,集中调度以提高利用率。有时候运营人员也是公共资源,有时候更惨一点,连程序员都是公共资源。虽然家底殷实,公共资源摊薄到每个项目上便很寒碜,所谓僧多粥少。项目经理可能把自己有招聘权的人给凑齐了,但他还得腆着脸找各个公共部门老大要资源,有时是恳求,有时是苦苦哀求。
跪下来舔鞋都提不上工单的时候,我以前还使过一茅招,搞点部门经费,请前端组的同事私底下帮忙切图……当作付费外包来对待。那时视觉稿已经堆了个把月,没法推进一步。类似的木桶效应多如牛毛,几乎每个大公司项目都会遇到,偏偏使不上力,被短板卡得上气不接下气。
即便抢到了(勉强够用的)公共资源,你还得面对分配资源的随机性问题。比如说小清新风格的产品,能分到擅长此风格的设计师吗?不能,谁空下来分派谁。擅长小清新的设计师当然也有,人家正在别的项目组,即便那个项目恶俗,设计师也很不开心,做到一半怎可能中途离场。所以我以前跟PM说:有人帮你做就快去烧香还愿,有推广位到手就感恩热泪盈眶,你还挑啥子挑喃?十几个部门几十个项目都闹着要最好的最合适的,你让UED情何以堪喃?
由于公共部门采用派单制,大部分人员缺乏项目归属感,荣誉感,他既无法全程参与,也很难真正融入项目组里边。座位经常隔了几百米,一周只能碰头两三面,甚至因为参与时间短暂,就连对产品的理解也比较浅,应付完这个应付那个,“应付了事”的心态极为常见。往往只有项目经理把产品当儿子看,别人都当成牵到自己家里来串门的邻居小孩儿。
更能理解的是,公共部门这个月做A项目的单,下个月做B的单,这个月A项目组请饭请求加班,下个月B请饭请求加班。项目上线你们倒是领功/打赏/休假,下一个项目组又声泪俱下说这单子特别重要,非得拉兄弟一把不可。这岂不是“无穷无尽的加班”“无穷无尽的拼这一仗”?你们少来诳老子……
曾见以前合作的设计师,私底下为自己做了款玩票的APP,比当初花两三个月为我们部门设计的APP,起码高出两个等级。当真刮目相看。
▎KPI
KPI是万恶的,没有KPI又是万万不能的。
所谓KPI,属于体制的一部分,也是大企业病的一部分。这个世界上不靠谱的人和项目占多数,衡量创业团队是否靠谱的标准很简单——剩者为王。这是一款生存游戏。
随着公司活下来并且膨胀起来,自然淘汰的筛选法很快失了效。创业意味着高风险和高收益,当创业团队成长为中型公司,大公司,则个人的风险降低(收入增加,薪资职位稳定),收益也降低(期权减少甚至没有),容易滋生更多轻浮的冒险,拿公司的钱去玩自己的票,修筑各种烂尾楼。如果不用KPI来制衡,十八般瞎折腾便掏空公司资源。人家旱涝保收底薪很高的,人家从折腾中赚到了经验值,就算引咎辞职,下一份工作还能拿到更高薪水的,而你老板呢,资产耗光只能去摆地摊了。
鉴定和约束各种瞎折腾的管理手段之一,我们称之为项目KPI,即阶段性的项目考核。在这个过程中证明自己靠谱,项目有戏,公司才会继续支持你。以我所见,虽有不少被KPI整死的好项目,但95%以上被涮掉的,确为次品,事后一齐流泪控诉KPI之恶贯满盈,觉得失败原因是“公司不给支持”。问题是怎么证明你和这个项目值得更多的支持?怎么证明你是有可能成功那5%,而不是注定失败的95%?
老板毕竟不是天网,他不可能什么都懂,尤其对新拓展的业务,一旦超出了高层的成功经验领域,只能靠KPI来判断项目前景。这同时意味着[要命的]公司对项目缺乏耐心和远见。若不能看到短期数据利好,则支持度快速下降,资源供给减少,方向盘立刻打到一条名为“黄泉”的路上。预见到灭顶之灾又会干扰项目经理的判断,往往使些目光短浅,饮鸩止渴的茅招出来,苟且保得眼前性命。
▎高层干预
刚才提到大公司对新业务缺乏耐心和远见,这根子还在公司高层身上。所谓高层,最低也是管辖几百人的方面大员,通常从VP起计。能做到大公司高层必有过人之能,不幸人过30岁后对新领域的学习能力直线下降,再加上行政事务缠身,无法专注于业务。故而对于市场拓展,大部分高层混合了视野狭窄与刚愎自用这两种特质,必然大量依赖KPI管理。
反过来看,如果高层瞄准了某个项目,下决心赌上一把呢,它就会得到更多的资源和宽容,初期KPI有可能压根不设,所有公共部门都围着你打转。高层力挺可以解决掉60%的大企业病,作为创业团队,遇到这样的对手是件挺可怕的事情,还好它们只是极少数,占比不足5%。而你会因为大晴天也有可能下雨沾湿鞋,就畏畏缩缩不敢出门吗?
何况高层的支持是一把双刃剑,他会给你喂足粮草,钉好蹄铁,同时也给你戴上嚼子,圈定方向甚至策略。那么高层指定的方向策略出错呢?恭喜,贵项目挂了。长官意志令如山,最怕长官是外行。
另一些情况下,大公司项目因为资源不足,资源错位而做砸,其实还是高层的决策影响。他认为给这些支持已经足够看清前景,若是败局,又何必豪赌下去。毕竟主营业务还赚钱嘛,还有得选择,反倒是“没得选择”转化为创业团队背水一战的韧性所在。
▎齐心协力
说句听上去挺刺耳的话,大公司里很难谈真正的齐心协力。按我的理解,齐心协力的基石不是个人素质,而是成员都适合这个项目,喜欢这个项目,自然努力团结。可你加入某一家大公司,往往受其光环/福利/资历的吸引,有个坑就猛往里跳,其后转岗不易。做什么项目亦受到部门限制,自主权有限得很。
换句话说,参与大公司项目组的,并不是最适合,最喜欢这个项目的人,而是项目经理目前能搞到的人(调动、招聘以及公共部门派单)。甚至项目经理本人也是奉命而为,或无奈抓阄。驱动工作的动力是职业道德,季度考核,奖金与功名,却非你对这款产品的爱。老实承认,我自己即是一例。哪怕在网易加班极多,直到辞职出来做有爱的产品,方才觉得过去皆是行尸走肉。
而我目前的创业团队只有6个人,来自5家大公司(上市或即将上市)。你说大家放弃了高薪福利,稳定工作,来上海做一款前途未卜的产品是为什么?当然不是服了我的三尸脑神丸……
于是我现在的项目速度比之前在网易快3倍,工作进展有规划,无管理,队员的主动性之强,内部合作的愉快与默契是过去从未经历过的。两个字:“开心”。换回大公司,那得打多少鸡血开多少动员大会啊,最后有人还在会上睡着了。
▎人多嘴杂
小团队凭什么跟大公司竞争呢?有人说是“专注”,有人说是“耐心”,有人说是“远见”。这些都对,我还要补充一点,小团队一定要比大公司犯更少的错。
这句话听上去挺莫名其妙的,大公司人才济济,小团队凭什么跟人家比正确率?回答很简单:人才济济,同时也人多嘴杂。给项目提意见的人越多,执行效率越低,这是铁一般的定律。尤其当建议者中包括各级领导的时候,决断就更加飘忽不定。你非得考虑上司的立场,部门的立场,微妙的公司政治环境,固然不乏真知灼见,合拢在一起便成噪音干扰。大量时间花费在报审/修改/开会/争吵/写文档/走流程上面,行动迟缓举棋难定,更增加误入歧途的概率。
相比之下,小团队的快速决策,快速行动,正好击中了大公司的软肋。一款新产品出来,大公司实权派发现它起码得2个月,看懂它2个月,立项组好队还得花2个月。再加上市场前景不明朗,在创新者大红大紫之前,大公司愿意投入(冒险)的资源是极少的,试水而已,复制抄袭多于革新改良,保守跟随多于锐意开拓。结果一两年过去了,创新者勇猛精进已成气候,大公司才回过神来,欲与之全力一搏。人家的前期积累已领跑市场,后来者未必追赶得上。
类似案例,多不胜数。创业者眼里唯一的好机会,大公司看来却只是1000个模糊不清的机会之一,拿捏不定。由此逆向思维的话,创业团队最好不要插入大公司的主营业务去虎口夺食。人家苦心经营多年,凭借对这块市场的理解力和戒备心,会更快发现你,重视你,然后高层吹响号角击溃你。但你去开辟新战场呢,大公司跟还是不跟,用多大力跟,往哪个方向走,它就很难统一内部意见。
▎基因转移
人都艳羡大公司“资源多”,所谓资源,一半是人才资源,一半是海量用户,即推广资源。然而不常被提及的是,大平台的团队基因/用户构成/用户习惯,与新项目是否吻合。或者笼统点说,大平台的资源优势是否能向新项目平滑过渡。
我一直是“基因论”的支持者,公司实权派的个人偏好,决定了团队构成与文化,进而决定了主场优势与劣势。正如APPLE在社交网络几战皆败,伟大如Google也被Facebook压得抬不起头来。只是受到野心蛊惑,即便八字不合,大公司也会悍然进入新领域(凭什么我不行),随后又惨然退出(原来我真不行)。
比团队基因更令人恼火的,是用户基因,即当前用户群的构成与使用习惯。做产品经常遇到“跨域”这个问题,借势推广也一样。新项目的产品诉求,用户构成,如果和母体在同一个域内,则资源优势平滑过渡,对竞争者是致命的杀伤力。但其实……平滑过渡又是一件特别不多见的事情。有时新项目整个的跨域,比如腾讯做拍拍,做朋友,导入损耗率惊人;有时大平台向垂直市场细分,无法精准过滤推广目标,导入用户良莠不齐得厉害,对于重视“气质、氛围”的垂直市场则是拔苗助长。
以我之前做网易摄影为例,不推吧,在大公司做产品跟创业有多大区别,生怕浪费了资源。推吧,不搭边的人路过都来踩一脚,各种低端用户、自拍用户、审美低下热情万丈的中老年用户蜂拥而入,氛围混乱,运营成本指数级上升,最终受困多过受益。反倒是独立摄影产品如图虫,用户气味相投而来,自然增长营造的社区气质远胜从大平台引流,气质恰恰又是社区的核心竞争力。
做产品,鲜有一夜暴富,尤其UGC,口碑带动增长才是最稳健的方法。道理固然大路货,KPI压力下却容易急于求成。母体供血一旦大量掺水,相当于修炼邪道武功,起步快而后力不济,很快会触碰到天花板。这时大平台所谓海量用户,反倒成为盛满鲜花的陷阱,涂抹蜜糖的慢性毒药。好似小时候四环素治病,长大后灿然一笑露出满口黄牙。
——————————我是总结分割线——————————
总之,在大公司里做产品的雷区多多。与内部环境作战所使的力气,往往占到血槽的2/3强,只留下不足1/3去对付市场。它抄你,不见得就打得过你。它是个大家伙,但也喜欢把两个脚拇指绑起来走路。在多数情况下,大公司的新项目只是全身挂满钻石镣铐的,虚弱的巨人,被活活抄死抄残多半说明你太逊色,而不是大家伙太凶恶。
不过,这个行业的主流论调并不这么看。
最近几个月,各式各样的人纷纷来问我,既然立志“不走寻常路”,大公司抄你怎么办?
对这个问题,我有各种具体的回答,但都不是真心话。只是面对某些人,比如投资人的时候,你跟他讲虚的,会被当成喷子,得表示我有明确的对策……其实对策易变,反倒是“产品哲学”这类虚的东西更加恒定。
我真心的态度可以用三次自问自答来概括。
1、我的产品质量能不能打败跟随者,至少是与跟随者各擅其长?
如果做不到,这不是我被抄的问题,是我技不如人,我认栽。竞争会刺激我提高产品质量,未必是一件坏事。
2、假定产品通过创新,打开一个新的细分市场,这个市场是否足够大,大到可以容纳下多个竞争者同时生存?
如此则对手亦是队友,我们一边互相作战,一边共同开垦荒地,联手培育市场。即便最后我只拿到第三、第四的份额,也不错啊,谁规定创新者就非得独吞整个市场不可——初夜权不等于占有权,市场又不是从一而终的贞洁牌坊。
3、除了用户口碑之外,产品是否有具象化的的价值沉淀?
比如黏性强的用户关系,比如用户留存的他看重的内容,比如有忠诚度的优质内容发布者,比如含金量与时效性较长的信息。这些沉淀即防御壁垒,从产品架构阶段就应该提前考虑,决定了防守反击的难度。
所以别人来不来抄这种事情,我从来都是不大关心的,偶尔想想,从不忧虑。周鸿祎有句话说得很好,少盯着对手,多研究用户。一天到晚担心“腾讯抄我怎么办”?担心有屁用啊,万一产品做得不好,腾讯抄都不屑于抄,那得白白浪费多少脑能量。我只管埋头做自己的产品,洪兴罩我去战斗~
换个角度看,哪怕比较倒霉,很快被大公司看得起并临幸了,对手在高层力挺下全力以赴地复制并改良,它的基因刚好又平滑过渡……那么,我挂了。但产品创新若是如我所愿地打开某个细分市场,改善某类用户体验,作为始作俑者,老子倾家荡产,虽败犹荣。“小小改变世界”比“赚到三千万退休”更值得追求。
正如我在微博里所说:阻挡你创新的是“无能”而不是“抄袭”,鼓舞你创新的是内心骄傲而不是永远独占鳌头。
——————————我是后记分割线——————————
4月张罗着创业以来,写IT文章的频度锐减。一方面是忙不过来,另外,创业相关的经验虽然多(招聘/产品设计/内部协作),却不适合大嗓门讲,毕竟八字还没一撇呢。有些话说得太早,难免被人等着看笑话。还是等产品落地生根之后再写比较稳当。
所以,亲们,祝福我接下来走得顺利吧,汇集正能量。创业历程中可写的东西,比我在网易时多太多了。萌叔有宝不轻弹,只是未到话痨时。
转载随意,但请带上我的微博地址……
http://weibo.com/cicada
posted @
2012-07-06 15:48 zhanghu198901 阅读(1004) |
评论 (0) |
编辑 收藏
java.lang.ClassNotFoundException: javax.transaction.UserTransaction
解决办法:
到 http://java.sun.com/products/jta/ 下载
Java Transaction API classes 的zip包,解压然后用命令将jta-1_1-classes下都javax文件夹压缩成jar
命令:jar cf jta.jar javax
生成一个jta.jar文件,把这个文件添加到classpath
或者直接在Spring lib中查找,复制添加到classpath
posted @
2012-07-06 15:47 zhanghu198901 阅读(3709) |
评论 (0) |
编辑 收藏
posted @
2012-07-05 14:09 zhanghu198901 阅读(860) |
评论 (0) |
编辑 收藏
摘要: 昨天下午参加了一个面试,因为自己本身的面试经验不足,所以面试效果也不是非常令自己满意。
至于这个面试中问到的问题,其实大多数还是一些关于项目开发过程中的一些问题是怎样解决的,也就是所说的项目经验;还有一些原理性的东西和基础性的东西(基础性的比较少)。
阅读全文
posted @
2012-07-04 20:25 zhanghu198901 阅读(1236) |
评论 (2) |
编辑 收藏