iPhone in China

中国联通的3G野望

请看新闻报道:联通100亿买断500万部iPhone 9月上市。虽然联通后来发出辟谣的声明,但是这一说法还是得到大众的认可,认为iPhone上市已经排定了最后的日程表。

而且也有传闻说联通准备优化调整3G资费(联通欲大幅调低3G资费 正式商用资费酝酿出炉),看来对iPhone是寄予厚望了。

 

iPhone without Wifi

失去了WIFI模块的iPhone对用户的吸引力会不会减小呢?这很难说。从普通用户的角度出发,如果3G链接的速度和资费能达到比较理想的程度的话,其实用户用到WIFI的机会倒不是很大。从我看到的用户使用iPhone的情况来看,在休闲的时候使用3G快速链接到internet,访问网站浏览照片查找咨询是比较常见的。

WIFI的好处是在公司和家里有固定的AP的情况下,同步公司邮件服务器的email或者访问家庭服务器中的资源。对于商务用户来说这些功能是非常有帮助的,但是这类用户在手机用户中占到多大的比例还不确定。也不排除没有WIFI功能会影响这类用户迁移到iPhone平台。毕竟市面上内建WIFI的水货机,“内测机”还是很多的,另外具有WAPI/WIFI的手机在不久的将来也会上市。

 

MISV的机会

自从Apple Store公布,mISV的成功故事就层出不穷。不管为iPhone开发程序会不会让你变成百万富翁,至少iPhone有着很庞大的用户群,他们乐意下载和试用各色的应用程序。iPhone对于开发者来说是一个非常标准的开发和部署环境,(最基本的前提是有台mac机器,还有不会非常讨厌object-c语言)对于国内的mISV来说,这多少算是一个机会吧,尤其是在这个市场刚刚打开的一年中。

Script language for Shareware

脚本语言早已不是什么新潮的玩意,在shareware中应用脚本语言的例子也不少,例如Resolver Systems的Resolver One软件。脚本语言在构建shareware的过程中究竟有何优劣,应该如何利用好脚本语言的特性呢?

快速原型

轻量的动态脚本语言在构造快速原型方面有着先天的优势。语言的表达能力强过一般的编译语言,开发周期中省却了编译部署的步骤,代码变更后的效果即改即现。灵活的类型系统不仅仅在写程序时比较便捷,写unit test的过程中,构造mock object也更容易。

 

扩展功能

希望在程序中嵌入插件的功能用脚本语言来实现是最简单不过的了。比起用C/C++写dll,或者用reflection来调入.NET的Assembly,脚本语言使用起来方便得多。

扩展模块可以由有编程能力的用户来实现,也可以由软件作者自己开发。极端点的情况是,软件开发者只要利用编译语言和开发环境搭建一个程序的GUI框架,整个程序的功能可以完全使用脚本语言来实现。

 

防破解

在程序中嵌入脚本引擎或者虚拟机,并且让程序本身和脚本/虚拟机代码有比较复杂的交互是一种减少程序被破解的途径。脚本语言和虚拟机引入了有别于主程序代码的额外复杂性,这种复杂性对于试图进行破解或逆向工程的人有一定的阻碍作用。

 

不利之处

这里简单列出了在程序中使用脚本语言可能带来的问题:

  1. 额外的学习曲线
  2. 多种语言并用使程序的复杂程度变高
  3. 应用程序部署问题

WPF Client

blu

blu(来自http://www.thirteen23.com/experiences/desktop/blu/#)是一个使用WPF技术创建的Twitter客户端程序。外观看起来很漂亮,易用性方面也还不错。

Blu blu II

最近读了本书《Programming WPF》,学习了一些WPF相关的知识,主要是WPF编程方面的。从粗略的了解来看,WPF是Windows平台下很有希望的一项客户端程序UI框架(WPF的Web精简版本Sliver Light也是构建Web平台Rich Client的好工具)。随着微软Vista/Win7的普及,WPF所必须的.NET Framework 3.0/3.5支持不再会是一个问题(实际上Win7当中附带的是.NET Framework 4.0版本,而新的开发工具VS.NET 2010本身就是基于WPF的),可以预见基于WPF构建的程序在1-2年内将会流行起来。

开发人员的WPF

WPF的开发并不是特别的困难。不过和以往的技术不同,WPF有着很好的code-presentation分离。如果想开发出吸引人的WPF程序,一个好的界面设计师是必不可少的。

对于开发人员来说,了解如何使用微软Expression套件工具创建WPF资源、设定WPF特效乃至直接设计WPF界面对开发WPF程序是非常有帮助的。

而这是对于程序开发人员来说最大的挑战——掌握一个矢量图创建工具(Expression Design)可不是那么容易,比学一套新的编程框架困难多了。

Next Step

创建一个我自己的WPF程序吧,也许会是一个豆瓣的client。

关于软件作坊

前段时间看了《走出软件作坊》这本书,觉得不错(也有不同意见),是作者多年工作的积淀和总结,有很多经验可以借鉴,也可以从一个侧面了解了特定行业软件企业和从业人员的状态。没想到书没看多久,最近就遇到了一个软件作坊。

事情是这样:公司需要开发一个SAP到金税税控机的接口软件,用于自动打印发票。找了几个供应商来做演示,有SAP、IBM和国内某作坊。

因为与会者有不少是来自国外的同事,所以主要用英文来做讲解,多少有点小难度,影响了沟通。

演示机器的设置也有问题,临开始了才发现不能接入我们公司的网络,手忙脚乱了半天。

演示中展示了一些系统截图,为了保护敏感数据,对截图上某些数据做了涂改。这当然可以理解,可是偏偏幻灯片上的截图用mspaint上涂抹得东一块西一坨,如同涂鸦。

熟悉自己系统的演示者操作起界面来速度超级快,APM达到60+。

感叹一下,作坊不易开啊。

平衡

开篇

好吧,其实我还不是mISV,只是一直以来有这样的计划,期望成为一个mISV。

我是全职IT developer,在所服务公司的IT部门工作。主要的职责是开发公司内部使用的软件(包括Windows程序和Web程序)。

8年以来,我的工作经验基本集中在微软的.NET平台上。随着.NET平台在客户端的逐渐流行,Vista也内建了.NET平台,使得用.NET开发客户端产品越来越简便。这应该是让我成为mISV的一个契机。

起步

有做产品的想法很久了(5年?差不多吧),自己也有一个Idea List来记录偶尔蹦出来的想法,期待有一天能把某个想法变成一个产品——能赚钱,很多人喜欢用的那种。

然而我是缺乏行动力的,种种原因让我始终没有迈出第一步。

回头探究这些原因,无非是某种懒惰在作祟。今先以文载之,究其根本,而后动,则产品可成也。

平衡

我没想过成为全职mISV(至少不是现在)。兼职mISV的同时保持全职IT developer的工作听起来是个不错的选择(至少这是两个选择,比只有一条路,一道走到黑强)。

作为一个兼职工作,我需要在不同的方面平衡它与我的全职工作,它与我的学习生活之间的关系。大致应该有下面几个方面:

  • 时间 – 与全职工作的时间冲突
  • 技术 – mISV需要的技术能力不会和全职工作的需要完全重合,和我的兴趣也不一定完全相同
  • 金钱 – 全职工作的薪水还过得去,这反倒成为我开始兼职工作的最大阻力之一 —— 目前看起来没有特别的动力让我去努力赚取第二份“工资”
  • 生活 – 全职工作已经比较繁忙了,多了一份兼职会挤占原本就不多的私人时间

粗略分析以上几条,最大的问题是时间这一条。我不太想做那种在上班时间做上班以外事情,拿着薪水去不关心做好自己工作的人。所以mISV的活尽量要在晚上和周末来做。

技术倒还好,大部分是重合的,暂时工作中用不到的技术研究下去也可以做为储备,以后也许就会用得着。

金钱方面,有份不错的薪水至少是对兼职工作很好的支持。在购买软硬件,购买第三方服务方面会有更充足的预算。其实这应该是个很好的推动力,而不应该是阻力。

生活方面,老婆还是蛮支持我的爱好,给我尽量多时间,也支持我购买书籍还有花钱买些看起来没用的电子垃圾。有了明确的目标开始做产品后,也许可以把时间更准确得花在需要的方向上,反而会更有效率。

开发软件的过程有无数的折衷和平衡,全职/兼职的工作也是一样。我能做好前者,相信也可以处理好后者。

希望这里能成为我开始mISV生涯的第一步。