关于最近,关于一些观点

计划永远赶不上变化,我总是觉得生活如同脱轨的电车,直到最后才发现我的生活一直都没有轨道。

本来写了年终总结,打算下一篇博客明年再写了,就安稳待在家里休息到元旦。不过呢,一不小心一个学校活动又让我无奈的跑回杭州待着,不过也罢,索性再待个几天罢。

这两天迁移了vps,换到另外一个服务商那里了,差不多的价格不过更好的性能,更多的带宽,然后做了一些迁移工作,其实也简单就是重装一下软件,然后把数据wget过来就可以了。新服务器暂时还是让我很满意的,负载都是在0.15 0.2 0.1这样的数据中飘过,很空闲很稳定。

其他最近我的生活没有什么特别值得一说的事情,比较平淡,倒是最近一些小事情触动了我的思绪,这里谈谈我的一点想法罢。

还是一个老问题,手机系统方面的。关于Android和IOS的优劣存活前景讨论。各方都有各种观点,对我来说我算不上哪方面的粉丝。对于Android,我做Android开发,手机一直是Android的,常用的有两台,用过不下10台不同的Android,刷机无数,自己定制过Rom。对于IOS,写过简单的IOS App,没有开发者账户,没在真机调试经验,长年工作平台为MAC OS,最近喜欢用ipad写文,用过很久的iphone、touch等等等等,会越狱会刷机会降级会胡乱折腾一些。应该说对双方的产品都算是老玩家,我觉得哪个好用就用哪个,目前来说还没有完全能满足我需求的单个产品出现。我垂涎ios的统一UI和流畅的用户体验(大部分情况下),但是更喜欢Android的高度可定制性,有时候对我来说Android会更加方便一些,可能因为我是开发者一些问题比较好解决。简单的一个例子就是我喜欢在移动设备上看代码,对于IOS我不得不去高价买一些app来实现这个功能(而且不是很完美),不过对于Android,我大可以自己写一个搞定(CodeBrowser就是我出于这样的念头的产物)花不了多少时间,如果只是一个初步可用的版本我只用了不到3小时的时间就做好运行在自己手机上了,所以也算是容易解决问题罢。

当然,那只是我的方面,我至今也没能在Android上找到一款很舒服的文字编辑软件,IOS上的Pages算是让我比较满意的,所以我乐意用iPad去写作而不是选择一个Android平板,如果有一天Android上也出现一个媲美Pages的软件我也可能会转投过去,我无所谓平台是什么,我只在乎内容和我所需要的能不能得以实现。

我其实觉得把两个手机系统的用户划分阵营然后搞的和世界大战似的老死不相往来,以我个人的拙见,搞技术的人因该是最懂的去选择优秀的产品的,避开成见,不要给自己别人贴上x粉的标签,选择自己需要的产品,选择自己觉得优秀的产品,选择能满足自己需求的产品那不就可以了么?其实你是不是x粉,没有人会在乎。

然后说说所谓的Android和IOS的前景吧,我不是眼光独到口舌锋利的评论员,也不是业界有名的大牛,所以我还是只能在这里说说自己看到的双方的一些不足,Android的不足其实也不用多说,主要就是开发者环境不是非常的好,卖软件很难卖,基本上都是盗版满天飞。至于版本分裂,其实我还真没那么发掘,很多程序对于分裂的版本的Android其实支持都不错,说个国内的常见的qq阿,微博阿,人人阿之流的不管你是用火腿肠HTC,还是摩托,抑或甚至小米阿里云之流也都跑的不错,至少我看到在大部分Android或者Android定制后的机器上面app的使用还是比较顺畅的,并没出现太多的因为系统版本,或者定制问题导致app出问题的情况。当然,Android大量劣质App存在是一个比较严重的问题,曾经开玩笑的说,Apple 的商店里面看到的程序都是一个个包装好的产品,Android的商店里面看到的很多都是感觉大学生期末作业一样的万一,简陋而不完善。这个问题的源头自然是审核了,但是话分两头,Android的审核放松才有一些特别神奇,特别geek的软件能够在市场上拿到,比如busybox,比如openvpn,这些让我爱不释手的玩意。

IOS的劣势呢?一成不变的界面?算是吧,当然你可以通过越狱来解决。以及牢牢控制了的生态圈也是让人有点头疼的玩意,毕竟质量提高了,对于开发者来说也麻烦不少,都说IOS收入高,一年99刀的开发费值得交,不过说实话很多IOS开发者并没有想的那么好,其实IOS开发也和老虎机一样,收入高的往往会被众人看到而羡慕嫉妒,而更多的是默默无闻的人并没能从中获得太多利益。当然,这个生态圈也早就了IOS一流的App体验,这个不容否认。

至于前景,双方都不可能在短期内歇菜,专利战是个阻碍,不过最终也无法停止任何一方的发展,我很喜欢Android的迭代速度,从刚开始落后IOS那么多的一个几乎没法用的系统,到现在4.0大体接近偶有亮点的进步的确应该归功于高速迭代和开放上。至于IOS,一直很棒,在Siri出来之前我是担心过IOS如果一直没有新亮点那么这个系统过渡消费的颓势就会很快出现,不过Siri的出现让我打消了这个想法,我想IOS的生命力还很强大,虽然我们还不得不面对一成不变的IOS界面,不过Siri这种全新的体验绝对是Apple风格的一个很伟大的新亮点。所以,之后的双方能够进化成什么样子才是一个非常有趣的事情,与其关心口水战和划分阵营互相鄙视,还不如多看看双方最新的技术在干什么,双方最前沿的思想是怎么样的来的更加有趣吧。顺便还可以关注一下后起之秀WP7,和半死不活的WebOS以及一出生就绝后的meego/meemo,也未尝不错。提到一下,其实RedHat,Ubuntu之类的貌似也有做手机系统的趋势,这个不知道具体情况,不过短期内应该没什么大的影响,我比较期待的是以后手机系统也如图电脑一样可以自己装着玩,那应该不错(小米那种不算,都是Android,只是不同rom的定制罢了,HD2到有一点这样的味道)

对于这个问题就胡扯了那么一些,纯粹是我的一家陋见,无针对。祝大家生活愉快。

一点点思考

越发觉得,现在我的生活状态,趋向于短时间高度集中注意力,碎片化时间,中断式思考的样子。

所谓短时间高度集中,主要体现在做事情的时候。越来越少的会有大型的需要长战线的事情出现。这个也是一个整体社会意识的趋势所导致的吧,别的不说,就说计算机的东西。现在都是提倡简单、轻量以及高效。回顾一下,几年前,我们玩电脑,需要装各种东西,喜欢折腾的朋友必然有过一打一打的CD-ROM或者老一点的甚至有各种磁盘。我家里还囤积着过去不少的磁盘,以及好几百张过去刻录的碟抑或买来的碟。而现在,很多事情都简化了,浏览器和IM成为一般人最常用的两个东西,大量的工作都是在浏览器里面完成,获取信息,交流等等。而IM则是成为了现在最重要的一个人际交往途径。所以么,就有人提出云计算这种概念,一切都云端化,在云计算的世界里,如果发展到比较极致的状态的时候,你用电脑就不需要现在那么复杂的计算机,你只需要一个能上网能显示的终端,然后一切交给强大的“云”。

当然,我觉得这个完全用云替代传统的PC是不太可能的,纵使我们的网络发展的再快,纵使未来我们网络带宽大到让人忽略不计,但是我们依然需要能够离线工作的平台和工具。而且还有隐私问题,每个人都会有那么一些东西,只能本地保存的。所以么我觉得,趋势应该是小型设备会越来越云端化,而每个人都还是会有一台具有强大的计算能力的本地机器。比如蜂窝网络的发展,未来手机的带宽必然是会有极大的进步,比如说现在的LTE、4G等等。而熟悉Android,或者iOS的都知道,现在的手机智能操作系统是多么的需要手机性能,尤其是Android,没有1Ghz的CPU都不好意思说自己流畅。那么,如果云端化,也许很小的性能就可以提供绝佳的体验,以及现在最让人诟病的电池续航问题也能够解决。而且手机可以做的很薄很酷,甚至全透明的那种也未尝不可,现在透明电路板不是以及有了么。

说到电池问题,倒也是一个值得思考的东西。比尔盖茨同志说,现在移动设备发展的最大瓶颈就是电池。想想也是,稍微凶猛一点的手机,续航都不尽人意。所以么,电池的问题也是未来几年的一个热点吧,就像最近好多厂商都在打太阳能的念头,不过么我觉得核能估计是没希望的,倒是学化学、学生物的同志们可以考虑考虑,弄个牛逼的电池出来就赚大发了,哈哈。

好吧,写着写着就写歪了,回归正题,下面说说碎片化的问题和中断式思考的问题吧。由于能够打断我们的东西越来越多,比如手机,比如电脑,比如上司,比如各种琐碎的事情,现在的人在平时的时候很难有一整块的时间去思考一个问题,往往是分时的来进行。比如我写《胶片摄影小助手》的时候,从只有界面的demo到所有功能都实现了的beta版本,实际开发的时间就2个多小时,但是现实中却过去了快2天时间。这是为什么,因为我的时间是断裂不连续的。大部分的时间我甚至都没去考虑这个程序要怎么设计,只是偶尔突然想到要个什么功能,于是就坐下来写一个提纲,然后迅速实现,就这样断断续续的完成。

当然,包括我的父母在内,许多人都担心这种断断续续的思考和工作方式是不好的。从许多人眼中看来,这是一种不专心,甚至可以说是三心二意的想法,似乎效率会很低。但是,从我个人实践以及一些思考后我觉得,其实没有关系,往往真影响效率的,不是你没花大块时间来做一件事情,而是因为你做的时候不够专注。

我提倡有灵感就立刻实现,没灵感的时候迅速转移注意力。灵感不是屎,靠憋是憋不出来的,灵感来自生活,或者说的玄乎点来自你的潜意识。我经常看书看着看着就突然想到一个想法,迅速起来,实现之。以前的时候总是被教育要迎着困难上,而我觉得我们应该绕过困难抵达目的。再强大的力量,也有穿透不了的障碍,但是水却可以绕过障碍而继续流动,就是这种感觉。遇到困难,不要蛮干,不要工作狂,不要死命的卡着,想想别的办法,能绕过就绕过去,解决问题就好,没有人会因为你比别人多花了3天完成这个人物而崇拜你感激你,只要你做的足够好,没人关心你逃避了多少困难。

胶片摄影小助手0.2Beta 公测版

胶片摄影小助手 ,现在的版本是0.2Beta

发布页地址:http://www.zerob13.in/photographyhelper/

关于 胶片摄影小助手

这是一个帮助那些玩胶片的摄影师的一个实用的小工具

目前主要功能如下:

1.简易测光表:

通过输入现场的数据,计算出较适合的快门速度,方便摄影师估测曝光

2.定时器:

洗胶片的时候总是把握不好时间,有了这个小小的定时器,这些都不是问题了:)
正在开发中的功能:

1.水平仪

2.景深计算器

3.胶片资料查询功能

截图如下:

[1]( "1")

[2]( "2")

[4]( "4")

[3]( "3")

[5]( "5")

CodeBrowser2.6 新春特别版

下载地址:http://cid-d94239a09a81fece.office.live.com/self.aspx/.Public/CoderBrowser2.6.apk

更新如下:

  1. 修复了一些小bug
  2. 可以打开cxx,hpp等当时未考虑到的C语言源文件
  3. 修改了配色,大气的黑色背景强势回归
  4. 更新了高亮的js代码,速度略上升(基本上感觉不出来,囧)
  5. 缓存文件位置改变,不再是放在卡上,缓存放在了手机上,速度有提升

截图如下:

Android 背包 From 谷歌

啊,收到谷歌公司送的 Android 背包了,怎么说呢。。。感觉不美啊。质地也很搓。带子很不舒服,做工非常差,和边上的TNF斜肩包一比就哭了。
不过呢,毕竟是谷歌的纪念品。还是好好收起来吧。
当然,如果谁真的喜欢,出价合理我果断可以转让的,哈哈哈
上图
IMG_9126

IMG_9125

IMG_9117

IMG_9116

CodeReader的诞生

首届Google暑期大学生博客分享大赛——2010 Andriod篇

自从买了android的手机后,用这一直都挺舒服的,从最早买的G1到现在用的G3,android系统的开发让我爱不释手,但是渐渐的我却发现在上面看代码却不是那么的爽快。基本上只能用txt格式的方法看,但是白底黑字的代码是无法让好“色”的我满足的,于是就萌发了自己DIY一个代码阅读器的想法。
由于这个程序主要是满足我自己的需要,所以就打算写的比较简单一点,支持C/C++/Java的简单高亮就好。所以就写出了CodeReader,先放一些截图吧,然后再慢慢说这个程序诞生的故事。



开发这个代码阅读器基本上就需要解决以下几个问题:
1.文件的读写
2.代码显示容器
3.代码的缩进
4.代码的染色
于是我便开始上网查询了一些资料~我发现文件的读写不是什么大的问题,我有一本关于Android开发的教材中讲到了文件读写的部分,于是便模仿出了下面的代码~

package com.zerob13.Codereader; import java.util.Vector; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView; public class fileData{ public String name; public int type; } class ExpBaseAdapter extends BaseAdapter { private Context mContext; private Vector mItems = new Vector(); private LinearLayout layout,layoutmore; public ExpBaseAdapter(Context context) { mContext = context; } public void addItem(fileData it) { mItems.add(it); } public fileData getItem(int it) { return (fileData)mItems.elementAt(it); } public int getCount() { // TODO Auto-generated method stub return mItems.size(); } public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } public int getItemType(int arg0) { // TODO Auto-generated method stub return getItem(arg0).type; } public void clearItems(){ mItems.clear(); } public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub //LinearLayout layout=null ; LayoutInflater inflate = (LayoutInflater) mContext.getSystemService(android.content.Context.LAYOUTINFLATERSERVICE); arg1 = (LinearLayout) inflate.inflate(R.layout.listfile,null); TextView fmtext01= (TextView)arg1.findViewById(R.id.fmtext01); fmtext_01.setText(getItem(arg0).name); //Log.v("vodone",""+arg0+" name="+getItem(arg0).name); /if (getItem(arg0).equals(".")){ }/ return arg1 ; } }

然后就是选择显示代码的容器了,一开始我的打算是用TextView,但是我发现如果用TextView的话似乎无法让代码高亮起来啊~于是我便先去寻找了一下代码高亮的实现方法。首先是找到了一个windows下的实现,就是利用RichTextView的那种组件来完成。但是似乎android自带的组件里面没有这么一个玩意啊(哈哈,我是初学者,什么都不懂)。后来问了一个朋友被告知,其实所谓的RichTextView就是和浏览器差不多的东西,就是解析了HTML之类的标记性语言然后实现了高亮。这下子就好办了,直接用android自带的webview就可以解决容器的问题了~
最后就是最关键也是最核心的部分了,如何把纯文本的代码转化成为色彩斑谰的网页呢?这里我用了一个很简单的算法,就是关键词替换~
基本上就是对文本进行扫描,遇到关键词就替换为html语句,为之上色。很快我的0.1版本就出来了~
不过问题可不是到这里就结束了,我发现原来文本里面依靠的”\t”(tab)的缩进在html里面就被忽略了,于是代码就变成了一整块黏合在一起的。怎么办呢?我查阅了html的语法,发现似乎没有什么东西是可以在html里面现实tab缩进的,一时之间卡住了。当时可谓是百思不得其解,后来很偶然的想到,为什么不直接用几个空格来代替一个tab呢?于是问题迎刃而解,不由感慨,有时候很简单的问题,但是却卡在了一条道上导致无法解决啊。
这样,基本上这个程序就完成了。测试了几段代码,效果还不错~如果大家喜欢的话可以在这里下载哦
猛击这里下载CodeReader