我为什么不追求极致的用户体验(转载)

作者简介:吴伟,资深产品经理,曾就职于新浪,现就职于约瑟网络,旗下产品“企业问答”,一款面对创业者的问答类社区产品。

很多时候,我们并不需要做到极致,我们只要比竞争对手好一点点就可以了。

极致真是一个很难做到的标准。曾经我以为极致就是做的足够好,后来我发现那与极致有着太本质的不同。当mp3主流容量还是64m、128m的时候,足够 好是512M,而极致就是10G的ipod;当主流邮箱的空间是4M、8M的时候,足够好就是10M、20M,极致就是1G的Gmail。

当年我看到这两件产品的时候,给我最大的感受就是四个字:不是真的!

现在每当我回忆起来,还是清晰地记得那种以为自己听错了的感觉。所谓极致,不是那种让人听了说:“wow!”的产品,而应该是那种让人听了说:“你再说一遍,我没听错吧?”的产品。

既然如此,那么我们为什么不追求极致呢?因为这样回报/成本太低。注意,我说的是回报/成本低,而不是回报低。比如主流市场提供128M的mp3,我们 使用100万科研成本就可以把储存空间提升到512M并占领80%的市场;但是如果要提升到10G需要1亿科研成本,占领9[……]

Read more

我们是否应该迎合用户的需求?

标题没有写 “是否应该迎合客户” 而是写成 “是否应该迎合用户” ,原因是因为用户包括了不付钱的人和付钱的人(客户)。

大部分时候,我们写一个软件(要么开源、要么闭源),总逃不过两个字 “名”、“利”。所谓出于爱好,只是软件没有盈利状况下的自我安慰说法。当真正发现开发的软件有市场前景时,爱好也就变成了目的。

根据市场和用户的需求去开发一个适合使用的软件,这对开发者来说是无可厚非的。不过对于用户来说,因为各人的需求都会有些许的不同,所以对于软件的需求总会有一些这样那样的观点,不排除一些用户的随口一说。而开发者在开发一个软件的时候,首先考虑的不应该是那一些不同的声音,而是大众的需求,就是用户人群中普遍需要的功能。这时,大概一些人会说,你开发的这个功能在xx系统中有,在xx系统中有这个功能,你开发的没有,或者你开发的系统应该有这些这些功能,这些都是用户最关注和经常使用的。这样的声音对于开发者来说太熟悉不过了。然后我们要思考一个问题,大部分说这些话的人是否是真正的用户,还有若是真正的用户,说这些的用意又是什么。总的来说可以归结为以下几点:

1、真正的使用者,对于你开发的系统喜[……]

Read more

jquery打印插件jqprint实现网页打印

jquery打印插件jqprint实现网页打印

web的打印方法具我自己懂得知道的有:

1、JQuery插件Jqprint实现

2、JQery打印插件PrintArea实现网页打印

3、CSS控制网页打印样式

JQuery插件Jqprint实现

首先要导入js文件:

jquery.jqprint.js下载

javascript代码

该插件还提供了一些参数可配置:

debug: false,//如果是true则可以显示iframe查看效果(iframe默认高和宽都很小,可以再源码中调大),默认是false

importCSS: true, //true表示引进原来的页面的css,默认是true。(如果是true,先会找$(“link[media=print]“),若没有会去找$(“link”)中的css文件)

printC[……]

Read more

php5.3 解决警告:Notice: Undefined index

安装php5.3后,以前写的代码,很多地方报错。原来是php对于语法检测更为严格。

对于任何一个未声明的变量都会报错。

根治方法:在使用变量前都先声明。

临时方法:对于已经写了的程序如果 变量比较多,可以修改php.ini文件

register_argc_argv = On

error_reporting  =  E_ALL & ~E_NOTICE

软件版本:GA、RC、alpha、beta、gamma等详解

(1)RC:(Release Candidate)

Candidate是候选人的意思,用在软件上就是候选版本。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!

是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版

(2)GA:(general availability)

比如:Apache Struts 2 GA

这是Apache Struts 2首次发行稳定的版本,GA意味着General Availability,也就是官方开始推荐广泛使用了。

(3)有关软件测试中的alpha、beta、gamma版本

广义上对测试有三个传统的称呼:alpha、beta、gamma,用来标识测试的阶段和范围。

alpha 是指内测,即现在说的 CB,指开发团队内部测试的版本或者有限用户体验测试版本。

beta 是指公测,即针对所有用户公开的测试版本。

然后做过一些修改,[……]

Read more

开源中最好的Web开发的资源(转贴)

文章来源:Best “must know” open sources to build the new Web

学习HTML 5编程和设计

  • ★ HTML5 Rocks : Major Feature Groups  的学习 HTML5 的资源 (HTML5 演示, 教程 ). 源码
  • 很不错的 HTML5 Dashboard – Mozilla,效果很炫。
  • WhatWG Developers, 一个清楚的 HTML5 技术规格说明书。
  • ★ StackOverflow : 大名鼎鼎的技术问答式论坛。
  • ★ Addyosmani, jQuery 和 JavaScript 文章教程
  • Sohtanaka, jQuery 和 JavaScript 文章和教程
  • ★ Nettuts+ 是一个面对Web开发人员和设计人员的网站,提供各种技术教程和文章,覆盖 HTML, CSS, Javascript, CMS’s, PHP 和 Ruby on Rails.
  • Codrops, 教程和 web 资源
  • WebAppers, 最好的开源资源
  • Tutorialzi[……]

Read more

  • 开源中最好的Web开发的资源(转贴)已关闭评论

当创始人之间意见不合时该怎么办?(转贴)

初创公司失败的一个最主要原因是创始人之间意见不合。在初创公司成立之初,创始人之间的意见不合可能就会出现。实际上,如果创始人之间从不争吵,这反而令我感到担心。问题在于,你应该如何处理这种意见上的冲突?你是否能够进行正面引导,将它转变成促进公司发展的动力?

我发现,建立解决冲突的框架结构很有好处。以下是我的看法:

1. 要认识到冲突是件好事。我 的联合创始人蒂姆和我总是意见相左。我们把对方逼得发疯,但在当天结束时,我们发现,我们的不同意见促使我们就我们的公司Matchist进行了重要的谈 话。我们质疑对方的假设,从不把任何事情都看作理所当然。虽然有时这种冲突会拖延进展,但总的来说,停止争吵展开对话好过于没有解决冲突就盲目前进。

2. 用数据说话。每当分歧出现时,不要依赖意见,而要依赖数据。着眼于业内最佳实践,花些时间调查其他公司在这个方面的最好做法。通过这种方法,用数据而非情绪来推动决策。当情绪占据上风时,要马上意识到是时候冷静下来挖掘数据或者开展调查了。

3. 知道自己擅长的领域。创 始人之间应该拥有互补的技能,当分歧出现时,拥有相关经验的创始人应该占上风。例如,[……]

Read more

Zend Studio 快捷键

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ct[……]

Read more

很不错的php文章

http://wulijun.github.io/php-the-right-way/

 

21个非常有用的.htaccess 提示和技巧

Apache Web 服务器可以通过 .htaccess 文件来操作各种信息,这是一个目录级配置文件的默认名称,允许去中央化的 Web 服务器配置管理。可用来重写服务器的全局配置。该文件的目的就是为了允许单独目录的访问控制配置,例如密码和内容访问。下面是 21 个非常有用的 .htaccess 配置的提示和技巧:

1. 定制目录的 Index 文件

你可以使用上面的配置来更改目录的默认页面,例如你将这个脚本放在 foo 目录,则用户请求 /foo/ 时候就会访问 /foo/index.html

2. 自定义错误页

当用户访问页面报错时,例如页面找不到你希望显示自定义的错误页面,你可以通过这种方法来实现。或者是动态的页面:

3 控制访问文件和目录的级别

.htaccess 经常用来限制和拒绝访问某个文件和目录,例如我们有一个 includes 文件夹,[……]

Read more

php获取文件路径的方法总结(转贴)

__FILE__:代表__FILE__所在文件的绝对路径
__DIR__:=dirname(__FILE__),这是php5.3之后才出现的
getcwd();获得当前工作路径
chdir($newdir):改变工作路径,前提是$newdir存在,但是chdir所在文件本身不会移动
dirname():求文件所在目录的路径
basename():获取文件名
realpath():将相对路径转换为绝对路径

实例文件C:\zentao\www\test.php(存在www\azhiweb)
<?php
echo __FILE__;echo ‘<br />’;C:\zentao\www\test.php
echo getcwd();echo ‘<br />’;
chdir(‘./azhiweb’);echo getcwd();echo ‘<br />’;
echo dirname(__FILE__);echo ‘<br />’;
echo basename(__FILE__);echo ‘<br /&g[……]

Read more

How to use Imagick with zf2

 

PHP依赖管理器:Composer 入门(转贴)

简介

composer是PHP中的一个依赖关系管理工具。只要(按指定格式)声明项目所依赖的库,composer就可以为我们安装这些库。

依赖关系管理

composer不是包管理器。不错,它处理“包”或库,但他的管理基于单个项目,它把库安装到项目中的一个目录中(例如:vendor)。缺省情况下,composer从不在全局范围安装任何东西。因此,composer是一个依赖关系管理器。

这并不是种全新的思想,composer受到node的npm和ruby的bundler的启发。但对PHP来说,还没有这样的工具。

composer要解决的问题是:

l         我们有一个项目,依赖好几个库。

l         这些库中某些又依赖于别的库。

l         我们声明我们依赖的库

l         composer找到需要安装哪个包的哪个版本,并安装(这意味着composer把他们下载到我们的项目中)。

声明依赖关系

假定我们创建了一个项目,需要一个库做日志记录。我们决定使用monolog。为了把monolog加到项目中,我们只需要创建一[……]

Read more

五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) 【转】

现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。

这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。

BSD开源协议(original BSD licenseFreeBSD licenseOriginal BSD license

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

  1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
  2. 如果再发布的只是二进制类库[……]

Read more

安装MongoDB(转载)

一,下载

1.官网为:http://www.mongodb.org/;下载安装程序的地址为:http://www.mongodb.org/downloads,选择选择的是Windows 32-bit 1.8.1版本。

2.下载MongoDB For .net 驱动开发包,官方的c#driver位于driver菜单下,地址为:https://github.com/mongodb/mongo-csharp-driver/downloads。这里还了解到有samus驱动下载地址:https://github.com/samus/mongodb-csharp

二,安装

1.将mongodb-win32-i386-1.8.1.zip解压到目录D:\Program Files\mongodb_1.8.1,也就是把Bin目录放在该文件夹下。

2.在D:\Program Files\mongodb_1.8.1创建Data文件夹,然后在该目录下分别创建db,log两个文件夹,至此D:\Program Files\mongodb_1.8.1文件目录下有三个文件夹(bin,db[……]

Read more

return top