软件先要好用,才可以考虑盈利

最近几天《超级课程表》和它的 CEO 余佳文很受关注。受关注的原因并不是其软件有多么出色,而是余佳文“出众”的言论(摘自网络):

在节目中,余佳文宣称“我的公司全是90后,员工薪水自己开,我鼓励员工之间吵架,吵不了就打,住院了我出钱。明年我会拿出一个亿的利润分给员工!”。

自然这一言论引来了一大片的质疑声,余本人也有回应,又引来了更大的质疑和嘲讽。这里我并不想评价《超级课程表》这款应用,因为我已经毕业多年,不会有类似的需求了。这里只是从用户的角度探讨一下软件(或者应用,或者服务)应该怎么做。

我试图回想了一下,大学期间是怎么样记住课表的,不过发现怎么也想不起来了。很有可能是用纸记下来的,或者直接记在脑子里。那时候没有智能机,仅有的手机连上网也上不了。不过那时候同寝室有一个学习非常刻苦努力,而且不仅自己努力,还要拖整个寝室一起“下水”的好基友。大概是由于他的督促,我们寝室才能按时上课吧。

即使把当时的场景放到现在,我想我也不需要一款应用来帮我记住课表。首先,一学期的课表基本是不变的,我所在的学校是短学期制,一学期三个月,也就是说,学期刚开始的时候我可能需要看几眼课表,后面的三个月基本就都能背出来了;即使有一些课是中途有变化的,我记得有一门化学课只上了六周时间,这不还有室友和同学么。同学互相提醒,也能做到和应用一样的效果,为什么还要装应用呢。再算上寒暑假的空闲时间,这款应用的利用率并不高。

于是,课程表一类的应用没有任何前景。就别说利润了,用户每三个月到半年才会用一次的软件,连活下去的可能性都没有。

那么,怎么样的软件才算是好软件,才可以盈利呢?简单来说,这个软件要“好用”。至于怎么样才算是好用,我觉得可以分为以下几种吧:

一、帮助用户解决实际问题。比如“去哪儿”。我不太用“去哪儿”订机票,但经常用它在查价格,做预算。“去哪儿”能查到一大堆的订票代理给出的票价,其中不乏坑蒙拐骗的,最低价通常不太靠谱,但至少能得到一个大概的心理预期,用于旅行之前的线路安排非常合适。

二、帮助用户节省时间。时间就是金钱,省时间就是省钱。比如微信的语音消息功能。中文输入一向是个费力费时的事情,特别是在公交车上或者走路的过程中,手机打字尤其不方便,有了语音消息之后,不用打字了,交流也没有障碍。虽然它每次也只能省下几秒钟时间,但积少成多嘛,你可以花更多的时间做其它的事情了,比如专心开车,光这一点就非常有价值。

三、让用户有成就感。比如 360 的“您的开机时间击败了全国 99% 的用户”。虽然这种类型的测量没有什么实际意义,但它给了用户很大的成就感。随之而来的是愉悦,用户每次开机都很开心,好心情每一天。

四、提升生活品质。比如各种团购促销会员卡服务。它们让用户花费少量的费用购买到价值更高的服务或产品,用户就有更多的余钱去做其它的事情,从一定程度上提升了生活的质量。

可以说,课程表应用不符合上述任何一条。它顶多和第一条有点关系,但实际上,大学生对于课表的依赖并不高,其中有一些问题但都无关痛痒。于是它连一个“好用”的软件也不是,更谈不上能盈利了。或许 BAT 可以提供一个免费的解决方案,但是靠这一项来开公司,显然是不行的。

评论时自动填写身份信息

在别人的博客里留言,总少不了填写一些个信息,昵称、邮箱什么的。如果对方的博客中启用了集成式的评论,比如“多说”,那还登录一下就好了;但如果是最基本的评论功能(比如本站),还是要填这些信息的。虽说这些信息很少,打打字也不花多少时间,但如果有工具能帮我们填,岂不更好?

Chrome 的收藏夹有一个功能,它不仅可以记录一个网页地址,还可以执行一段 Javascript。这段 Javascript 需要以“Javascript:”开头,且只能有一行。大致样式如下图。当你点击这个收藏项的时候,Chrome 就会对当前页面执行这段 Javascript。于是我们要做的就是,写一段 Javascript 代码,在当前页面找写评论的地方,填上个人信息即可。

以下代码受博客评论个人信息自动填写代码一文启发,略加修改而成。它会依次搜索支持的博客类型,如果找到,就自动填写昵称、邮箱和网址。目前支持的博客有:Wordpress、Typecho、z-blog、Emlog。在手机和平板上同样可用。

把以上代码添加进你的收藏夹,填写好昵称、邮箱和网址之后,点击“生成链接”,然后把生成出来的链接拖曳进收藏夹:

>>>填写博客留言<<<

中文交流中夹杂的英语

如果你经常关注本博客,你可能会发现,超过一半的博文标题中都夹杂着英文。对于英文不太好,或者非业内人士,这样是不太友好的。他们可能一句话都读不顺,看文章很累。我个人不太喜欢这种风格,但作为一名程序员,这种情况又是几乎不可避免的。

大概二、三十年以前,外来语都要先翻译成中文才可以使用的,比如沙发(sofa)、巧克力(chocolate)、坦克(tank)等,连品牌也不例外,肯德基(KFC)、星巴克(Starbucks)、惠普(HP)等。这样人们在交流中不需要用到英文,降低了社会对英文的依赖,也保证了中文的纯洁性。但是近几年,外来语越来越多,已经到了来不及翻译的程度,有一些官方没有给出中文的,比如 H&M、7-Eleven 等,还有一些在年经人中很流行,懒得使用中译版本的,比如WiFi(无线网络)、Cappuccino(卡布奇诺咖啡)等。

而在 IT 行业中,有一点历史的词汇可能大家都习惯它们的中文译名,比如微软(Microsoft)、个人电脑(PC)等,但很多新词都还停留在英文阶段,比如 Java、PHP、HTTPS、Chrome 等。在和同事的日常交流中,总免不了需要涉及到这类词汇,于是谈话中就夹杂着很多英文。举个例子,我以前的一个老板,美国人,号称要学中文,于是约定每周的周五大家都说中文,帮他练习。在测试中有一个常见术语叫“file a bug”,“bug”指软件的缺陷,“file”作动词表示汇报/登记,“file a bug”就是在系统中登记一个“缺陷”的信息,以便让开发人员去修复。但是在实际使用过程中,大家都还是觉得英文比较好用且大家都能接受,于是我老板的中文就说成了“file 一个 bug”……这中文学了等于没学……

这种现象的出现,主要是因为美国输出的技术非常多,不仅是IT词汇,生活工作中的各方面都可能有英语的踪影,比如计算机领域的快捷键 Ctrl+F,对我们来说只是一个按键组合,但实际上它表示 Find(查找)。当然这个是世界性的问题,其它非英语国家也都正在被英语入侵,多数国家要么拿来直接用(拉丁语系),要么粗暴地译成本地语言(非拉丁语国家,如日语)。据我所知,除了法国之外,也只有中国在努力规范外来语。很多年前,我们国家的确有非常优美的翻译作品,比如“若为自由故,两者皆可抛”,但那是诗作,计算机行业就没有那么多文人雅士了,翻译质量低下,比如“鲁棒性”(Robustness)、“句柄”(Handle)、“缺省”(Default)等。译者自然看得懂并理解原文的意思,但看译文的读者和学生们就云里雾里了。又因为那些“经典”译作的销量之高,这些翻译就这么被传下来了。这些拙劣的翻译,影响了计算机学生对技术的理解,也从而阻碍了技术的传播,于是有越来越多的人建议:技术书籍请看原版。看原版固然不错,但这也进一步阻碍了计算机知识的汉化进度。于是就产生了本文开头所描述的现象。

为了解决这个问题,本博客会尽量使用中文写作。当出现无法翻译的情况时:

  1. 如果是品牌名称,且没有官方译名,则保持原名,如 WordPress;
  2. 如果是术语,则使用广泛接受的中文译名,如“电子邮件”,当没有普及的中文译名时,则按上下文选择最合适的一个,并加以原文注释,如“域名转向(Domain Forwarding)”。

当然,那些劣质的翻译要尽量避免,比如 Robustness 可以译成“强壮性”、Handle -> 操作符,Default -> 默认等,希望这样能逐渐提升中文技术词汇的普及程度。

博客在移动设备上有了更好的阅读体验

随着手机平板之类的移动设备的普及,博客现在也要照顾一下小屏幕的读者了:)。

在小屏幕上,如果还显示出完整的桌面版网页,会显得很拥挤,字体很小,阅读不方便。于是很多网站都额外提供了面向小屏幕的设计,把菜单等不必要的内容隐藏起来,这样读者可以专注于文章本身。但是对于个人博客来说,我没有精力去维护两套界面,需要配置很多参数,还需要很多设备来测试。于是就有一些博主采用了另一种方法,但这样一来,移动版的体验上去了,桌面版实在是惨不忍睹。

我一直在寻找一种折中的方案,直到我膝盖中了一箭,直到我知道了 Reponsive Layout,又称响应式网页设计。

貌似它是 CSS 3 中的新功能,简单来说,浏览器收到 CSS 的指示之后,会根据当前窗口的大小,来进行不同的渲染。这样一来,同样的网页在不同的设备上显示的内容不一样。如果你想看一下效果,就用手机看一眼现在这个页面,会发现侧边栏没有了,而博文内容更方便阅读了。

在已有的网页上添加 Responsive Layout 也不难,只需要写一些 CSS 即可:

上面一段的语义是说,如果屏幕宽度最大只有 480 像素,就使用以下的 CSS 进行渲染。当然我使用的 Suffusion 主题集成了对 Responsive Layout 的支持,在后台设置一下就好了,非常方便。

顺便附一个二维码,方便用手机访问:

Nexus 5上手两个月总结

从硬件来说,Nexus 5 和 iPhone 5s 打平,甚至更好;从软件来说,Kitkat 比 iOS 7 差了至少一代,顶多和 iOS 6 相提并论。

应用就不说了,之前提到过,Google 自家的应用好到无敌,但是第三方应用烂到没话说。下面直接吐槽一些系统的问题:

第五,没有开启/关闭屏幕旋转的快捷按钮。这个选项隐藏在“设置”的两层菜单以下,在床上用手机的时候非常不方便。当然可能它已经提供了快捷设置,但是我没找到,这也是用户体验的问题。不过这是小问题,和下面的几个比起来都是小巫见大巫了。

第四,WiFi 会在休眠状态上莫名其妙地打开。WiFi 的高级选项中,是有一个“只有充电的时候才保持 WiFi 连接”的选项的,起初我还觉得这个选项不错,至少 iOS 的设置是没法更改的。后来某天晚上休眠状态下直接掉电 50% 以上之后才发现,应用是有权力把 WiFi 打开的。敢情这个选项的意思是,在不充电的时候,WiFi 连不连我也不知道。

第三,落后的权限设置。Android 系统在安装应用之前,会提示这个应用需要哪些权限,如果你觉得不妥的话,可以不装。但 iOS 6 引入了一个更牛x的功能,就是在应用第一次需要这个权限的时候,再问一次。比如使用微信的时候,第一次要传照片之前,iOS 会提示微信需要访问照片,是否允许,如果不允许的话,微信的其它功能照常工作,而微信也无法访问我的照片,确保了隐私安全。而在 Android 上,只要你安装了微信,它就可以访问你的照片,不让它访问的唯一方法就是不装。这个模式相当得落后。

第二,“我不知道要怎么设计,你们随便玩吧”的心态。Android 的很多设计都体现出了架构师的无能。比如应用商店,Google 有一个总的 Google Play Store,但是每个运营商,或者第三方组织都可以设立自己的应用商店,比如电信有电信的天翼空间,三星有三星的 Samsung Apps。这样导致了,我自己的 Play Store 用得好好的,爸妈的定制机上,Play Store 在哪我都找不到。这也充分说明了,最初设计应用商店的时候,设计师对厂商说,我不知道要怎么设计,给你们一个接口,你们自己玩去吧。

还有比如桌面布局,Android 的术语叫作 Launcher,除了默认的 Launcher 之外,Android 还可以安装自定义的 Launcher,用来弥补 Android 默认 UI 的不足之处。看上去很美好的功能,但是我至少试过 5 个 Launcher,没有一个满足我的需求。最初我安装第三方 Launcher 的原因是,默认的 Launcher 中,Google 的搜索框总是会显示出来,占了一小部分的屏幕,但其实我每天能用一次这个功能就不错了,我想把它隐藏掉,但发现除了安装第三方 Launcher 别无它法。于是我就装了,比如 Nova Launcher,比起默认的是好用多了,但少了对 Google Now 的支持,这也是非自家的应用跟不上时代一个表现。总之,Android 的设计师也不知道 UI 该设计成什么样子,于是把这个任务下放给了第三方,但没有一家能做完美的。

最后一条,也是最雷人的一条。目前只在国内碰到过,不知道是不是国外的产品在国内水土不服而导致的。事情是这样的,某天同学聚会,早上 9 点钟要出门,为了不迟到我设了 8 点半的闹钟。后来我醒过来的时候,看了一眼手机,8 点 57 了,闹钟没有响。于是我想看一下是怎么回事,输了解锁密码之后,手机就自己关机了。需要手动开机才恢复过来。手机一直充着电,不是没电的原因。猜想八成是系统死机了,但出于某种原因,它不肯自动重启,要等我看它最后一眼,它才能安心地死去。这个现象一共发生过 3 次。还好没有因此而误了飞机,不然我找谁理赔去。

综上,Android 目前还处于非常烂的状态,有条件的话,还是追随 iPhone 会好一点。

Adobe,你就索性删掉我的帐号吧……

Adobe又出安全问题了,这次不是Flash,而是它网站本身。最无语的是,它还不知道严重程度。Adobe发来的邮件如下:

We recently discovered that an attacker illegally entered our network and may have obtained access to your Adobe ID and encrypted password. We currently have no indication that there has been unauthorized activity on your account.

大意就是说:我们被黑了,但是不知道你的帐号有没有被窃取。

你就干脆删掉我的帐号吧,反正我也没什么重要资料存在里面。

年初的时候,本来想买个正版的Lightroom 5,于是注册了一个帐号,打算在线买个CD-KEY填一下就完事了。然后奇葩的事情就发生了……

首先,Adobe的帐号在注册的时候需要填写所在国家,而且一旦填好之后就不能修改。要换国家的话只能注册一个新帐号-_-

OK,没问题,我不嫌麻烦再注册一个,所在地填的是瑞士。然后我就兴冲冲地去买Lightroom了。瑞士地区的报价是129 CHF…WTF!! 美国地区的报价是99 USD。即使不计算汇率(129 CHF ~= 143 USD),我也不会傻到去多花30块钱啊。在商品流通这么发达的现代,想不通Adobe为什么要设这样的壁垒,更何况这TMD还只是个软件。

于是我就又注册了一个美国的帐号,然后就点了“Buy”打算去付款了。帐单地址(Billing Address)当然是乱填的,因为我不住在美国。然后不出意料地付款被拒了(要不然他们设这个地区壁垒干嘛),网页上没说原因,只是说Pending,等邮件。然后就是N天没有邮件来。这只是个软件,搞得比淘宝快递还慢算什么意思嘛。后来猜测原因可能是我的信用卡是瑞士的,用美国的地址可能被认为是盗用了。但是你好歹给个说法哪……

再后来,好吧,那我用回瑞士的帐号。重新走了一遍购买流程,填了各种资料。结果……还是Pending……这是和我的信用卡有仇还是什么……

好,既然你不想赚我的钱,我也不想多花钱。直接打开Chrome,键入"Lightroom 5 keygen",然后就搞定了,简单明了,还不是泄露资料。

Adobe就是家烂公司……