分类目录归档:个人杂碎

阿黎从手机联系人同步说到智能机

阿黎今天突然想整理一下自己的手机联系人,我现在的手机是三星i9003,安卓。阿黎很喜欢google的各种服务,我已经默认将联系人的显示和新建都选择为google联系人,但是手机的电话联系人里面还是有很多人。安卓手机的联系人有很多种,本身电话有电话联系人,同步了google账户之后会有gmail里面的联系人称为google联系人,有的定制版本还可以有各种sns里面的联系人。同步啊同步,这是一个很不错的功能,丢手机不丢人,这是我选用智能机的一个原因。

很久很久以前,要同步两个手机之间的联系人,用的方法是将联系人信息复制到sim卡里面再在另一部手机复制出来。这种方法明显有点过时,首先,sim卡存储联系人容量有限,可能对于有很多联系人的人士来说是不够用的;其次,要是手机连带sim卡都丢了,没有其他备份,你就真的欲哭无泪了。到后来,有了一种新的联系人同步技术出现,基于SyncML协议,感兴趣的同学可以搜索一下。这一个东西使得很多索爱、诺基亚等很多品牌的普通手机都可以通过这一项技术同步联系人到某个服务器上面。但是这里还有一个问题,就是当时提供同步服务的服务器信息得自己寻找和设置,手机本身不预设。当时google是有提供这样的一个服务叫google sync的,此外中国移动、腾讯还有少数的一些服务商也有。这个协议的设计本来是可以同步联系人,便笺,日历等信息的,但是大部分服务提供商只提供同步联系人一种服务。

就拿08年附近,阿黎自己的使用经历来说吧,我觉得当时这一个同步联系人的服务还是有很多缺陷的,现在不知道怎么样。第一点,它同步联系人的单位不是一个联系人,而是一条电话条目。一条电话条目包括电话号码和姓名这一个对应关系,别的就没有了,当然sim卡里面的电话存储也是这样的一种简单的模式。但是,这一种模式明显不能满足需求,因为有可能而且很可能有些联系人有多于一个电话号码。很多手机自身的电话簿是可以提供一个联系人里面存储多个号码这一功能的。但是到了同步的时候却不可以将他们以一个联系人做单位来同步,还是电话条目这种模式。例如阿黎当时的手机索爱k700,手机为了区分一个联系人的不同号码,直接在联系人名后面加后缀,例如存放的是手机号码,就有后缀/M,如果是家庭电话,就有/H等。这样一来,同步到服务器上面的电话条目的姓名文本里面都是带有后缀的,可问题是,这个后缀标记法貌似没有统一规则,因为当我使用同样方法想将联系人同步到另一部手机的时候,这些有不同后缀的同一联系人的不同号码并没有能重新合并到一个联系人里面。这点让我一点也高兴不起来,因为我需要为其手工做很多工作。第二点,就是可以同步的联系人信息太局限了,现在我们的联系人一般除了电话号码,还会记录像邮箱、生日甚至是头像等信息。这些资料没办法同步也很成问题。

到后面就是智能机的年代了,阿黎在高中很洋气的用了一两年palm treo 600,palm系统的pim真的是做得很好。当时palm的同步是跟电脑联系起来的,同步需要一根专门的同步线,上面甚至还有同步按钮。电脑上面需要安装相关的驱动程序和应用软件才可以进行同步。当时同步的重点是文件,因为palm如果掉电系统会回到刚开始的状态,相当于电脑重装或者一般手机的恢复出厂设置。这一点有点让不明真相的用户觉得,技术太落后了,甚至是倒退了。当时阿黎的palm手机(应该叫pda了)系统存放联系人等信息也是存放在普通文件里面,所以同步文件的时候就一并同步了,当时的同步倾向于是一种备份的性质。
升上大学,阿黎换了手机,主要是换掉之前的主力非智能机索爱k700。palm那一台只能说可以用来折腾玩玩,但是不能作为主力。这个问题是由它的外观,它的重量,还有因为它小众导致国内应用不多等原因决定的。当年阿黎还很依赖qq和ucweb这两个东西,但是,众胖(palm)友懂的,当时对于palm平台,这两个应用都没有官方原生支持(现在貌似也一样)。

阿黎换的是HTC Kaiser/P4550,windows mobile(简称wm)的平台,自己给刷成6.5版本。Windows Mobile可以通过普通usb数据线跟电脑连接,电脑需要安装windows设备中心用以同步(前身是ActiveSync)。通过这个软件我的手机可以很轻松地跟电脑outlook express里面的日历、联系人以及Microsoft Onenote同步,但是这样一种同步仍然局限于pc和手机两个设备之间的同步。现在都在说“云”,各种云服务之下,这种同步方式简直是弱爆了。

阿黎认为,一个完整的云同步体系应该由云端服务器、个人电脑、手持设备以及它们之间的传输介质组成。电脑上面有pc端软件,手持设备上也有客户端,那么云端也应该有一个web前台页面供用户操作。而云端这一块是wm系同步所没有设计到的地方。例如现在如果我的手机和电脑都不在身边,我可以利用其他可以上网的设备登陆我的gmail来查看某个联系人的信息。但是如果还是使用wm系的同步,就一点办法木有了。

没错,后面阿黎就投入了安卓的怀抱。因为微软放弃了windows mobile系列了,微软潜心要弄他的windows phone7。windows mobile也开始变得小众,就qq这一款应用就一直停留在2008beta2版本。阿黎不是追新,但是对于各种应用的需求很强,从qq、ucweb等几个全民级应用也可以侧面看出当前某个手机或者智能机操作系统是否小众、边缘。阿黎的观点是,要想获得好的中文应用支持,这个平台必须在中国不小众。而在阿黎的眼里,中国不小众的智能平台只有两个,一是水果公司的爱疯,二是安卓阵营。塞班?nokia不要了,会慢慢小众的,按照目前的形势阿黎对整个诺基亚都不是很看好。wm?微软不要了。水果买不起并且不喜欢,所以阿黎投奔了安卓。

安卓系统出自google所以和google很多服务能够很紧密的结合起来。首先一点就是同步联系人,在绑定了google账户之后,安卓系统可以实现完整的包括联系人的头像、生日、多个电话号码等信息的双向自动同步。而且联系人头像又可以跟我电脑上面的picasa人脸识别联系起来。然后还有日程,就是日历,可以跟google日历同步。不过,阿黎利用日历还处于很基础的事件提醒应用,像课程表(上课地点时间提醒)、会议提醒等。另外还有我最爱的google reader的内容也可以同步到手机的reader应用上面离线浏览。

话说使用google系同步服务阿黎做了一个比较艰难的决定,因为阿黎之前是使用outlook express来管理日历和联系人的。outlook express是电脑上面的软件吧,手机也不需要联网,接上数据线就能跟电脑自动同步。而google的日历和联系人服务都是在web上面实现,需要网络支持,操作方法也有很大的不同,再加上前段时期访问google的https服务频繁撞墙,阿黎可是用不少时间才适应过来。

下面阿黎想说说买智能机当普通手机用的童鞋们。如今好像已经是全民智能时代,各个厂商都想推智能机给一般用户,特别明显的是诺基亚的sb系统。我们年轻人很多在用智能机,另外很多人就算是没用过智能机的也想买来用。没错,时代是不断发展的,科技也不断创新,但是有的童鞋拿到了高科技的新一代智能手机,却在像使用普通非智能手机那样使用他的智能机。

想问一下有哪位童鞋用智能机但是从来没有用过联系人同步的,然后又丢过手机然后四处求号码的?阿黎好像见过不少哦。还有日程呢,有多少人用智能机从来没有使用日程的功能的?在阿黎的身边,很多同学使用智能机和非智能机的区别仅仅是多玩几个高档一点的游戏像是水果忍者、愤怒小鸟之类的,这样使用智能机很浪费哦。智能机的生命在于折腾,如果你还在仅仅使用智能机来打电话、发短信、上网上q发微博、打高级游戏的话,那简直是弱爆了,赶紧去寻找各种神奇的应用尽情折腾你的智能机,让它发光发热吧。

阿黎的轻博,阿黎虚拟主机上线了

继这一个阿黎的个人博客之后啊,阿黎又试着用wordpress改造了一个轻博客,地址为http://xinjian.li.

这个轻博还是比起大博(现在这个,阿黎的个人博客,a-li.me)还是让我省心了好多的。

第一,轻博客,轻。改造这个轻博客的过程中我一直在做减法,一直在删代码,我主要对样式进行了调整,让其比较符合自己的心意(阿黎承认自己的美工水到不行,阿黎愿意接受大家的批评)。这个主题原本很炫,用了好几个网络字体,好大好大,而且这些字体明显是显示不了咱们中文的,去掉换成雅黑。原本主题有一个500多kb的背景图,现在被我换成了只有十来kb的黑猫。整个轻博就只有这一个图片,很轻吧。

文字表现形式上面,我参考了推他,文章默认不显示标题,直接显示正文,当然我也做了meta控制显示标题部分是否显示的代码(考虑到可能发大文章需要标题)。分类、标签这些功能都不用了。我还改造了评论,单行紧缩显示,改造了原本fixed的底栏,总之整个就是翻天覆地的修改啦。

第二,轻博客,随心。之前推他刚出轻博客的时候,我很早抢到了邀请码,算是很用心的玩了一会。有一段时间感觉真的很好,一个新的圈子,说的话不会被身边这个圈子的人看到,随心所欲。但是后来有其他人进来之后,又回到了你关注我,我关注你这个阶段,又到了不停去刷信息流的阶段。没错,可能我想要的,其实只是,一个我说话没人听到,也不需要别人听到的地方,我也不需要再拿一个平台关注其他人,我只需写自己的,读自己的,用处呢,可以算是一种存档吧。

第三,轻博,不简单。为什么是轻博客,不是微博?虽然说现在很多微博都可以发多媒体的东西像视频啊什么的。但总体还是限制多多,例如140字。轻博客的话,这样用wordpress改造的话,都是属于文章,我高兴我把它写成文章,图文并茂;我不高兴我只写一句话。另外,像主题啊什么的全部可以自己修改,全部可以自己定制,这种自由度就是我想要的,这就是我的需求,不是新浪轻博,不是推他,是阿黎的轻博,霸气。

关于发布,很简单啦,我都不用wordpress后台完整的tinymce编辑器,我直接在后台首页快速发布就可以写了。主题随便写几个字,反正我弄成默认不显示了,除非有显示的meta设定。内容写上,就这两项,就这样快速发布。另外有一点就是wordpress官方的手机客户端,很不错哦,可以看评论、审核评论、回复评论,发文章(发轻博)也很方便。人家在手机开微博客户端发微,我开了wordpress发轻博,是不是特霸气?

==============分割线,上面一时高兴说太多了===============

这几天还折腾了VPS,终于下了决心花了银子买了一年,并且开始为之折腾。

阿黎为什么要弄个VPS?请参看http://vps.a-li.me。除了那个页面写到的,这里再多说几句吧。阿黎真的不是想赚钱才弄得这个VPS的,我也不敢说把“为大家提供学习环境”这个原因放在第一点,我放在第一点的是这个VPS可以让阿黎有一个学习的环境。这么大一个VPS阿黎一个人玩就太浪费了,所以给它配置成服务器啊弄控制面板啊给童鞋提供虚拟主机等的服务。而且,这个VPS的费用老实说阿黎也需要人分担,阿黎现在一年续费三个域名jianhome.cn a-li.me xinjian.li就好几百呢,阿黎的个人博客所在的主机、阿黎还有一个国内主机、这个VPS,加起来又好几百呢。但是人多力量大,分摊下来,阿黎只是让使用阿黎虚拟主机服务的童鞋帮忙小小的分担VPS一年的费用中的三至四十,看看阿黎给的配额吧,真的是超值的。

阿黎的虚拟主机怎么用呢?做个网站吧,开个博客吧,一切随意,由你来定。那么你有没有担心一年之后的问题呢?放心吧,阿黎保证不会丢下大家不管的,只要还有一个童鞋坚持用,阿黎就会继续续费。在这里阿黎要提醒一下,最好去买个属于自己的域名吧,域名不便宜其实,比阿黎的虚拟主机要贵多了。但是如果你没有域名,又要开网站,阿黎只能说给你分配一个阿黎的二级域名,这样不好,等于免费给阿黎做广告。小小的提议可以考虑注册自己的名字,说不定你以后就是个大人物啊,参考http://xuyanyu.com许彦宇 http://luolei.org 罗磊 ,还有阿黎的http://xinjian.li  https://a-li.me

人家是这么给我说的,一个学计算机的,你怎么能没一个自己的网站或者个人主页什么的呢?没错,这一句留给我用来做宣传语吧,上面提到的许彦宇哥哥和罗磊哥哥其实都是我们暨南大学的哦,09的师兄呢,他们都不是学计算机类专业的。你看看你看看,他们都做wordpress网站了(彦宇哥哥的个人站可能还没建好,偷偷的说一下暨南人网新闻网就是彦宇哥哥建立起来的呢,也是wordpress),我们计算机类专业的童鞋一定要给力啊。

不过这里继续明确一点,这一切一切的优惠,都只是供应给阿黎的童鞋朋友们,不卖给外人啦,所以别的主机商也不用担心哦。一般来说,其他主机商,只要不是他主机的问题,别的东西是不提供技术支持的,而阿黎这里有哦,这也是因为人少所以才能这样提供服务。但是其实 ,谷歌是个好老师,有问题多搜索,实在弄不好再问阿黎吧,阿黎确实也很忙,身边的朋友也知道的。

好吧,被一个电话打断了,也好让我停止胡言乱语,就写到这。

新浪云计算初体验-SAE图床

今天晚上开始在新浪云计算平台SAE部署我的第一个应用,一个图床。程序代码据说是提取自isaid的,整个代码和教程来自于这里,其实这个算比较简单的一个组件吧,我只做了小部分修改。教程里面有的我就不重复了,下面说一下教程里面没有的。

开始使用使用新浪云计算的sdk上传代码的时候,需要先在新浪云计算应用中心,进入你的应用里面的 “应用管理-代码管理” 里面创建一个版本,版本只能是一个正整数,默认为1。创建版本之后,在本地sdk中选择“下载全部Apps”,然后对应到你的本地app目录(默认为你sdk目录下面的apps文件夹,例如我这里是E:saeSAE_SDK_Windows_1.0.5apps)里面应该有与应用名一致的文件夹,再往里面就是一个应用各版本的文件夹,以版本号为目录名。在这个以版本号数字为名的文件夹里面你需要放置code文件夹,code文件夹里面才是需要上传的代码,对应web的根目录。我一开始犯的错误就是没有使用创建代码版本,直接手工建立各级文件夹(例如我这里是E:saeSAE_SDK_Windows_1.0.5appshorsley1code,horsley是应用名)。

版本等问题解决之后我在sdk中点击“更新上传”按钮得到了一个error,说不存在config.yaml。有玩过用过Google App Engine (GAE)做各种应用(各种代理程序……##¥%&%¥)的童鞋应该大概知道这是一个配置文件,包含应用的版本号,应用名等信息。这个文件存放位置应该是在版本号文件夹下,与code文件夹处于同一层(例如我这里是E:saeSAE_SDK_Windows_1.0.5appshorsley1config.yaml)。没有这个文件夹怎么办呢?我们可以在sdk工具右上方文件列表窗口右键,选择菜单里面的“编辑config.yaml”,这时候他就会提示你“APP的config.yaml文件不存在,是否创建一个?”当我们点击“是”按钮之后它就会帮我们创建一个config.yaml文件,并且里面已经有需要的默认的内容了。这个文件创建好之后我们再上传代码就不会有问题了。

上传完之后按照教程进行安装初始化,安装成功之后开始登陆,登陆以后却出现了错误

SAE_Warning: Cannot modify header information – headers already sent by (output started at /data1/www/htdocs/605/horsley/1/config.php:1) in manager/index.phpon line 53

这个问题有点眼熟,以前折腾暨南人新闻网wordpress的时候遇到过。大概情况就是php里面用到了header函数,header函数要求必须在有任何实际浏览器输出之前调用,下面是php手册里面的对header函数的原文提示:

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

很多时候我们都需要调用header函数发送location的http都控制浏览器跳转,而这个错误的发生原因很多时候是我们不经意制造了一些浏览器输出。按照sae警告的内容找到这个config.php,在有行号显示的编辑器里面(例如我在使用的notepad++)打开这个文件可以很明显的看到文件末尾有一个空行,这就是问题所在。我们写c++代码的时候,使用例如我们作业要求的c-free5+mingw编译环境,如果文件末尾没有一个空行,将会产生一个编译器警告。php和c是同一系列的语言风格,不知道是不是这个原因所以在这个php文件末尾多了一个引起问题的空行。

突然想起一个东西,当我们为sae上边的应用创建一个新代码版本之后,sae默认写入一个index.php,内容如下

<?php
echo '<strong>Welcome to SAE!</strong>';
一开始我看了觉得很奇怪,怎么这个php标签没有闭合啊?简单google一下发现,其实这种写法有一个主要的好处:避免 ?> 后面的不可见字符(多余的空格、换行符)等破坏页面显示,也不会导致 Header already sent 这样的警告信息。因为没有结束标签 ?> 所以就算文件末尾有多余空行,用于没有php结束标签,这个空行就属于php解析的范围而不是直接的浏览器输出。在php代码范围里面,空行不产生输出也不影响代码。不过,我们也应该注意这个用法只能是在文件末尾的php结束标签?>才可以这样省略,其他地方我们还是需要使用结束标签的,例如php嵌入html。
凡事多思考,多问个为什么,这样才能有进步。