入手Android数月后有感
2010-09-19

    前段时间手机不小心丢了。貌似是第一次主动丢手机(曾经有一次是被动丢的)。 后来就入手了一个Moto Droid。大概是5月下旬,当时淘宝上面均价3000左右。但是到处问都没货。。。没办法,后来花3300高价买了个。

motorola droid 中国电信天翼3G

    因为Droid用是CDMA2000的3G制式,而且是verizon的无卡机,所以必须要到电信查询uim卡的五码,然后用软件写到手机里面。 拿到五码之后就马上开始写,按照淘宝JS的步骤一步步操作。结果最后一步教程上写做了,害的我用了整整一个通宵才搞定。。。不过写好之后就爽惨了~~null

    本人在四川成都,用的中国电信的3G卡,50元包了1GB的套餐。电信在成都的覆盖相当好,移动和联通的卡在学校寝室基本没什么信号,接电话都要到阳台,但是电信的在任何地方都是满格!手机上网网速也很快,平均200-300KB/s。紧急时候还可以用手机带电脑上网,感觉就像家里的2M宽带。  只是电信的客服差了点,不过也有好处,详见如何敲诈中国电信

    再说android系统。 我目前用的是android 2.2。Home程序是Launcher pro。常用的软件有:

  • UCWeb: 上网
  • Profiles : 情景模式快速切换
  • aQQ: 一个第三方QQ客户端,感觉比官方的好点
  • RockPlayer: 很猛的软件,实现了大部分视频格式的解码,包括rmvb等(乐phone的rmvb貌似是硬件解码)
  • Twidroyd: 第三方Twitter客户端
  • iDigu: 第三方嘀咕客户端(据说官方的快出来了)
  • NewsRob:  第三方Google Reader阅读器,感觉不错,最常用
  • Camera 360:国产照相软件。我觉得是android上最棒的照相程序了。
  • PdaNet: USB连接电脑,可以让电脑通过手机上网
  • TeslaLED:  把手机闪光灯当手电用,相当爽啊,毕竟是闪光灯,比普通手电筒夜晚照明效果好多了
  • 本地通: 一个快速查找附近的餐馆/银行/酒店等的程序,可以显示目标在你的那个方向多远
  • 条码扫描器、人人网客户端、豆瓣电台、Google Talk、Gmail、指南针等等。。。 

    其实最好用的还是android系统预装的各种Google应用。比如Gmail,设置好帐号后,就可以随时接收电子邮件。还有我最常用的Googe Talk,实现了24小时在线。 而且这些程序都是“同步”的概念,而不是简单的一个客户端。 也就是说你在电脑上和一个人聊天,如果手机也打开了这个聊天,那么电脑上聊的内容会自动显示到手机上,因为是同步的! 这样就不怕突然要外出而中断聊天了。

    记得有次看了一篇E文,说Google这些实时同步程序用的是HTTP长连接来保持在线的。保持在线不需要发送数据,因此很省电,而且可以实现实时响应。 比起黑莓的什么Push Mail技术来说门槛低了很多。因为黑莓的push动作需要运营商支持,巨贵无比。而通过手机端http长连接方式来pull,既可以实现黑莓的实时邮件接收功能,又不需要运营商支持,只要可以上网就可以了。

    在我看来android要比iOS好玩一些,自由度高一些。但是android上的游戏没iOS的好。绝大部分应用也都很一般。 

    其实我一直在找一个这样的软件: 手机如果丢了,可以通过别人的手机往我手机上发一个包含特定字符的短信,然后手机进入一个特定模式,自动打开GPS,把手机的方位信息发送到网上或者通过短信告知特定的手机。必要时候还可以锁死手机。那这样就不怕手机丢了。

完。

6144 read 35 comment(s)
JS中数组去重问题
2010-09-15

    面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项。据我所知,百度、腾讯、盛大等都在面试里出过这个题目。 这个问题看起来简单,但是其实暗藏杀机。 考的不仅仅是实现这个功能,更能看出你对计算机程序执行的深入理解。

    我总共想出了三种算法来实现这个目的:

  1. Array.prototype.unique1 = function()
    {
    	var n = []; //一个新的临时数组
    	for(var i = 0; i < this.length; i++) //遍历当前数组
    	{
    		//如果当前数组的第i已经保存进了临时数组,那么跳过,
    		//否则把当前项push到临时数组里面
    		if (n.indexOf(this[i]) == -1) n.push(this[i]);
    	}
    	return n;
    }
  2. Array.prototype.unique2 = function()
    {
    	var n = {},r=[]; //n为hash表,r为临时数组
    	for(var i = 0; i < this.length; i++) //遍历当前数组
    	{
    		if (!n[this[i]]) //如果hash表中没有当前项
    		{
    			n[this[i]] = true; //存入hash表
    			r.push(this[i]); //把当前数组的当前项push到临时数组里面
    		}
    	}
    	return r;
    }
  3. Array.prototype.unique3 = function()
    {
    	var n = [this[0]]; //结果数组
    	for(var i = 1; i < this.length; i++) //从第二项开始遍历
    	{
    		//如果当前数组的第i项在当前数组中第一次出现的位置不是i,
    		//那么表示第i项是重复的,忽略掉。否则存入结果数组
    		if (this.indexOf(this[i]) == i) n.push(this[i]);
    	}
    	return n;
    }
    

    其中第1种和第3种方法都用到了数组的indexOf方法。此方法的目的是寻找存入参数在数组中第一次出现的位置。很显然,js引擎在实现这个方法的时候会遍历数组直到找到目标为止。所以此函数会浪费掉很多时间。 而第2中方法用的是hash表。把已经出现过的通过下标的形式存入一个object内。下标的引用要比用indexOf搜索数组快的多。

    为了判断这三种方法的效率如何,我做了一个测试程序,生成一个10000长度的随机数组成的数组,然后分别用几个方法来测试执行时间。 结果表明第二种方法远远快于其他两种方法。 但是内存占用方面应该第二种方法比较多,因为多了一个hash表。这就是所谓的空间换时间。  就是这个测试页面,你也可以去看看。

2010年10月7日更新:

根据hpl大牛的思路,我写了第四种方法:

Array.prototype.unique4 = function()
{
	this.sort();
	var re=[this[0]];
	for(var i = 1; i < this.length; i++)
	{
		if( this[i] !== re[re.length-1])
		{
			re.push(this[i]);
		}
	}
	return re;
}

    这个方法的思路是先把数组排序,然后比较相邻的两个值。 排序的时候用的JS原生的sort方法,JS引擎内部应该是用的快速排序吧。 最终测试的结果是此方法运行时间平均是第二种方法的三倍左右,不过比第一种和第三种方法快了不少。

完。

25207 read 9 comment(s)
七月份的尾巴和八月份的前奏
2010-09-14

    以前一直以为星相学和算命差不多是骗人的。但是随着阅人数量增加,逐渐发现星相学的一些结论的确很有实用性,尤其是在我发现两个生日相差两天的狮子座女生性格极其相似之后。

    M是我的前女友,典型狮子座女生。 在我看来,她的特点就是很像“狮子”: 在外面看起来很奔放,女强人,事业心重;但是在家确温柔的像可怜的小猫(狮子其实也是猫),很黏人,很需要人疼。  这样的性格其实也挺可爱的,但是却存在隐藏的问题。

    另外一个狮子座朋友Y比我大几岁。她最近刚失恋,具体原因不明。她很喜欢对方,但男方坚持要分,她很受伤。于是把精力全部用在工作上,像藉此忘掉不愉快的事情。但是我告诉她这样做是逃避,要正面她面临的问题,于是我们分析一通。我发现极有可能是对方在接触她到跟她恋爱之后发现她性格的很大差异,从而发现两个人不适合。没办法,狮子座就是这样的。

    我觉得狮子座内与外的较大差异就是存在的隐藏的问题: 跟别人外在的接触的时候,别人认为你是这种性格; 但是恋爱之后,发现你却是那种性格。 这样很容易让双方都受伤。 Y曾跟我说过,她几乎排除掉所有星座了,也没发现适合她的。 我倒不这么认为: 首先人不可能凭借出生的时间就可以分成三六九等,各个星座的人都有各自的优缺点; 其次星相学只是基于大量统计得出的大概结论而已,不是每个人都合适。 再说了,不可能所有狮子座都没找到真爱吧? 肯定是有人很喜欢狮子座这种性格的。 (就像我喜欢受虐一样,总有人喜欢施虐 :) )

    最后。。。。其实。。。。这篇日志主要目的是为Y征BF的,哈哈哈。 如果你觉得你很喜欢狮子座女生,可以联系我,我帮你介绍,null。对了,Y目前24岁左右,四川人,长得还不错,人品好,成电硕士,目前在成都腾讯当官。

    呃。。最后。。。其实我想说,我很喜欢曾哥的歌,尤其是《狮子座》

    呃。。。。其实我还想说,我也很喜欢春哥。。。

完。

4328 read 7 comment(s)
博客搬迁到Linode VPS
2010-09-04

    以前用的Lunarpages的空间,虽然很稳定,但是在国内某些地方访问很慢。 于是最近搞了一个Linode的VPS玩玩,一来可以获得良好的访问速度,二来可以有一个位于墙外的服务器可以折腾。 

    据我了解在全国各地ping php.js.cn的延迟时间在200ms左右。 如果你访问我的博客觉得速度比较慢,请帮我测试一个延迟多少,另外别忘了告诉我你的网络环境,谢啦~

完。

5228 read 26 comment(s)
[原创]如何敲诈电信
2010-09-04

    前几天再次成功敲诈电信50元话费。 到目前为止,我已经通过拨打10000号投诉电话,向电信索赔了130元的话费。过程是这样的:

    第一次今年1月快要过年的时候,本来我打电话到10000号包了100元3GB的手机上网流量。但是到了2月一查,套餐竟然没有包成功。。。于是打10000号投诉,开始还没想到索赔,只是想讨个说法。 后来电信的客服回去听了我当时打电话的录音,发现确实是客服的错误,就主动提出给我30元话费的返还。

    第二次是今年5月左右。当时电信的100元包3GB的手机流量包已经没有了,100元只能包2GB。 但是我询问了一个客服,他居然给我说100元可以包3GB。 于是我果断包了。 到了下个月,发现只有2GB,于是又打到10000号投诉。这次目的就很明确了,要话费啊~~哈哈哈。  这次态度很强硬,非要让电信把少了的1GB流量按没MB 3毛钱折算给我。(电信的流量套餐用完后,就是没MB 3毛钱)。经过几次交涉之后,电信一个MM说给我返还50元话费。

    最近这次是因为我住的地方网络故障。 我是用电信的wlan无线上网。大概24号的时候,出问题了。上不了网了。于是打10000号保修,被告知第二天答复。 但是到了26号还没好,我又打到10000号投诉,被告知故障处理完毕了!但是我没有收到过任何电话说处理完毕了。于是我愤怒了,一连投诉了3次。。。最后到了31号,故障才修复。 于是又投诉到10000号说要求误工赔偿,因为我是在网上做兼职,不能上网就不能工作。 经过几次交涉后,电信又同意返还50元话费。

    以前用了几年的中国移动,大三的时候追求3G而换成中国电信。目前用的是天翼19元的学生套餐,手机是Moto Droid写号机。电信3G在四川用起来相当爽,只是客服很差。 中国移动给我的印象就是网络很差,客服很好,完全没有破绽。

    以后如果你发现电信客服的明显错误,就可以通过投诉的方式获得话费返还。 提示:投诉的时候态度要强硬一点。他们就明白了。。。。我第三次投诉的时候就不够强硬,他们开始想给我5元搞定,我不同意,他们又说10元。于是我愤怒了,态度强硬了之后他们就给我50元返还了。

完。

5553 read 7 comment(s)
上一页 1... 6 7 8 [9] 10 11 12 ...35 下一页
Copyright © Longbill 2008-2024 , Designed by EndTo , Powered by EndCMS