我的新手机i550W。晒晒~!

在淘宝上出掉了用了四个多月的SE M600i。换了现在这个Samsung i550w。

其实,想换掉M600i并不是因为这个机子有多少差,而是因为他现在已经不具备满足我新的需求的能力。实话实说。M600i这款机子不差,音乐方面,应该说是没得说的,因为索尼的机子或多或少音乐也不会差到哪去,特别的,我还为M600i配了一个原装的入耳式线控耳机,索爱的Walkman系列所配的高端耳机,用那个耳机听音乐,光一个好字是没办法形容的。电池续航能力也很强,正常来说至少都能用三天。比我前一个手机N记的N70来说不知道好几倍,以前用N记的N70时,即使电池同样是950ma的容量,N70也只能用个勉强2天,不怎么玩的情况下,要知道,SE的这款屏幕是2.6,比N70的2.1大了不止一点。在这种情况下。电池续航还比N70来得强,可见SE的这个电池确实挺不错。虽然如此,但是M600i没有摄像头这点,现在已经无法让我接受,只身来到北京,有时无聊四处逛逛的时候,发现什么有趣的东西想拍下,又没带相机,没辙,因此基于这个原因,我就已经有点想把该机换掉了。另外,同事的一个9300(没记错的话应该是这个型号),有带WIFI功能,我们中午去吃午饭的时候,那位同事经常拿起来搜一下看看有没有WLAN,如果有的话就是开始网络旅程,通过他的这部9300我才知道什么是WIFI,以前在看M600i评测时有见过哪个文章说这个M600i有个遗憾是不支持WIFI,因为当时也实在不知道啥是WIFI,所以也没当回事,还欣然接受。现在看来,没有WIFI确实少了点什么,想像一下,跟朋友到中关村的星巴克或者有免费无线网络的场所,拿起手机,上上网,喝点小饮料,是多少惬意的事,WIFI上网比GPRS上网有几大好处,一,网速快,这是没得比的。二,免费,只要有无线路由器,有无线信号及你拥有接受的权限,那么你要上什么网,下什么东西都是免费的,不用像GPRS那样支付给谁任何费用,当然手机充电的电费不算。基于这点。M600i不满足我新的需求。再另外,另一个同事买了个N95 8GB,在我们吃完午饭的空档时间里,给我们演示了他的GPS功能,很好很强大,定位到我们所在的大厦,非常准确。对于我一个经常只身到陌生的城市的人来说(07年5月份只身到南京游玩,再从南京到上海,上海再到深圳,虽然说在这几个城市都有熟人在,但并不是你想出去的时候,别人都有时间给你做导游的。因为别人也有别人自己的工作。7月再只身到南京,直到07年11月,只身到北京这个真真正正的人生地不熟,刚来时一个熟人也没有,去哪都需要自己先通过手机上WAP网站查查,然后再根据查到的结果走,还好北京的交通发达,基本很多地方公交都可以到,直达或换乘。唉!突然想到这个有点伤感,因为在那段时间里是已离我远去的M600i陪我渡过的。不过留个回忆吧。),这东西再实用不过了。因为他可以帮助我这个方向感不是那么强的人掌握方向。而M600i是没有的。于时,有了我现在手上这部Samsung i550w。

怎么会是这部呢?可能很多人都没听过这个型号,的确,三星的机器型号并没有像N记的N系,SE的W系和K系那样深入人心。不知道或没听过这个型号是正常的,即使是三星的粉没听过也是正常的。因为这款机子并没有在中国大陆上市,我买的时候(上个礼拜六,2008年3月1号),在香港也还没上市,加上这个i550W是2007年i550的升级版,2月二十几号才刚上市的,网上的评测,新闻相对来说也是少之又少。所以,三星的粉没听过也是非常正常滴。买这个机子是跟我一同事一块买的,他也正好这段时间要换手机(正是因为他要换手机,我才下狠心将我的M600i给出掉的),本来是相中N记的N82的,因为这款机子无论配置,功能什么的都完全符合我们的需求,加上是N记的N系,对其的期待更是不用说了,但是由于上市不久,加上可能性价比太高,买的人多,市场需求量大,在年后,这款机子的价格逆市,不降反升,而且还不只是升了一点点。从价格上来说,3500的价格高出了我的预算不止一点点。加上这款机子现在只有银色版的,个人觉得实在是太难看啦~!(丑记一下)。本来是说好等待黑色版的上的,但是听一些国外的媒体说该机子的黑色版在国外要四月份左右才上市,加上黑色版比普通版可能还得贵个几百块,所以。当时只能选择等待,也跟那个要换手机的同事说好等待N82。因为在买手机前我都会很关注各大门户的手机频道,忘了在哪天,突然看到这款i550w的“曝光”新闻,一眼就相中了,很是喜欢,Samsung,wifi,GPS,S60第三版,300万AF等,于是通知我那同事。一起关注起了这个机子,本以为还没上市。或者还得在一段时间才能上市,没想到到淘宝上一搜,发现已经有人在卖了。而且还是个不错的卖家。没过几天,我们就狠下心,打了钱,等待新机子的到来了。就这样i550W入手了。。。

这个机子的特性我就不写啦。。。小小的记录一下。。。

额外提一下,这个的Camera那是不一般的“简单”啊,那可是真的真的非常非常的简单!功能很少,照相并没有达到我的预期效果。不过好在GPS,WIFI这两个大的功能还算好用。呵呵。

晒晒用我的i550w拍的照片我的第一台本本,Dell Vostro 1400 安静的躺在我的办公桌上。

我的第一台本本,Dell Vostro 1400 安静的躺在我的办公桌上。

在北京新买的一个Dell原装双肩包,用来背着上下班确实比以前用单肩包来得舒服得多在北京新买的一个Dell原装双肩包,用来背着上下班确实比以前用单肩包来得服务得多

关于手机就写这么多啦。

当一个男生在几个女生面向做事手忙脚乱时,意味着什么?

很明显,依我的理解,就是这个男生对这几个女生中的某一个有好感。。。没事瞎YY~~!

PHP如何在一个二维数组指定键的位置插入新的元素?

昨天一同事说起了这个问题,首先考虑的是PHP的内置数组函数库有没有类似的函数,查了查手册,没发现。后来就觉得自己写一个函数来实现。

考虑到“顺序”的问题(在指定键的位置处插入一个新的元素,如在array(’a'=>array(1),’b'=>array(2),’d'=>array(4))中的键为b的元素后面插入一个新的元素array(’c'=>array(3))),而键名又不一定都是数字,所以我第一个想到的就是将非数字的键转化为数字键名,因为只有数字键名才能排序,以前有做过类似的函数,但具体是什么时候用到的,现在一下子也想不起来。现在把我的思路说一下。顺便贴上代码,备忘。

首先用array_keys()获得要插入的数组的所有键名,我们称array_keys获得的结果叫keys,这个键名是通过数字索引的。这样我上面提到的将非数字键名转化为数字键名就实现了。接下来就是获得指定键名在keys中的数字ID,我们称这个ID为offsetID,然后遍历keys将所有大于offsetID的数字键名往后移一位,空出一个位置来存放这个新的元素。这样就实现了。。。

以下是代码

<?php
$arr = array(’a'=>array(1),’b'=>array(2), ‘d’=>array(4));
insert($arr, array(’c'=>array(3)), ‘b’);
print_r($arr);exit;
function insert(&$array, $new, $last = NULL)
{
/* 如果不是数组就退出 */
if (!is_array($array))
{
return FALSE;
}
$offset = $last;
if ($last === NULL)
{
$offset = key($array);
}

$old_keys = array_keys($array);
$new_key = key($new);
$new_val = $new[$new_key];
foreach ($array as $_k => $_v)
{
if ($_k == $offset)
{
$key_offset = array_search($offset, $old_keys);
}
}
foreach ($old_keys as $_k => $_v)
{
if ($_k > $key_offset)
{
$old_keys[$_k+1] = $_v;
}
}
$old_keys[$key_offset+1] = $new_key;
$new_arr = array();
foreach ($old_keys as $_v)
{
if ($_v == $new_key)
{
$new_arr[$_v] = $new_val;
}
else
{
$new_arr[$_v] = $array[$_v];
}
}
$array = $new_arr;
}
?>

新发现:我是个喜欢生闷气的人

一直以来,对自己的了解甚少,可以说,一直都不清楚外界对我这个人的印象是什么样的,怎么认为我这个人的。今天自己对自己有了新的一点发现。或许这个对于有些人来说很可笑,但这对来说确实很有价值的。

我喜欢独自生闷气,遇到不开发的事情,不像一些朋友,可以去散步,逛街,吃零食,或者其它发泄方式。我喜欢独自生闷气,就这样闷着,像闷饭一样闷着,直到遇到一件什么令我能提起兴致来的事情,我才会将它忘记。即使不遇到这样的事情。。。我也会在一两天过后将它忘记,因为我是个“健忘”的人。

早睡早起,今天很早就到公司了。

今天异常的早起。7:100就醒了,磨磨蹭蹭到7:30左右起来,到大厦的B2去吃了次早餐,这次早餐好像是我在北京的第个数次吃,记得之前有吃过一次,就是在还没进公司之前,刚来北京的那几天,在我住的宾馆附近(玉泉路那边)的老上海城隍庙小吃吃的南瓜粥,怀念啊,确实挺好吃,题外话。到公司大概8:30,大厅的灯还没开,前台的两个MM还没有来,偶尔有人进出,这种气氛很熟悉,想想,这么早就到公司应该是继第一次(第一天上班那次)以来的第二次。想起那次来,当时那么早来公司的原因是“第一天上班绝对不能迟到”这个理念,那天,在宾馆的时候很早就起来了,大概也是6点多,洗漱完后就背上我那单肩包出外坐“运通114”,1个多小时的车程。到公司的时候也大概是8:30左右。门也是开着的,我进到公司大厅,坐在了旁边的沙发上,翻阅着公司的宣传单,就这么干坐着,因为那时我还知道我应该在哪上班,我的位置是哪个。大概十多分钟过去后,第一个跟我搭话的人(没记错的话应该是前台的一个MM)跟我说了句:“这么早就来了啊”。这时大厅的灯开启了,陆陆续续的很多同事都到了,刷门卡上班。

早睡早起是好的,继续努力

充实的生活果然会帮你扫除很多烦恼

今天是充实的一天。

昨天晚上很快就入睡了,当然今天也很早就醒了,不过愣是多躺了几分钟,我有睡懒觉的习惯。相比以前,昨天晚上的睡觉质量应该算有所提高,所以对今天白天的精神我有期待。应该会比以前有精神多了。还是老样子刷完牙,洗完脸,背上电脑,出小区,搭公车,上班去。与以往不同的是,觉得今天的早晨很清新,应该说是这两个礼拜来看得最清晰的一个早晨了。

吃完早饭(包子+开水)就开始工作了。

今天一天单挑JS。完成了一个Draggable类和一个Dialog类,在编写中遇到了些问题,比如取浏览器中“网页的宽度,高度,滚动条的scorllTop…”,还有取页面中某个层的高度,由于兼容性问题,取那些高度经常都会差那么点。要嘛在FF下正常取得,在IE下取不得,要嘛就是IE下取得到,FF下不行,网上找了些资料。解决了这些问题。其中有一个问题让我印象很深,在取一个层的高度的时候,我用alert(div.clientHeight)取到的值一直都是0,可是很奇怪,我在Firebug中能看到这个值不为0,研究了挺久,后来想想,是不是因为我没有将这个层放到HTML文档中才引起的(这个div对象是我用document.createElement生成的,还没有append到body中),后来将这个在append到body后alert了一个这个值,果然,取得了。事情也就这么解决了。先append到body后再取值就能取得到了。另外一个问题就是document.body.scrollTop这个值,当HTML文档声明了以XHTML的DTD做为头时,document.body.scrollTop是无效的,总是为0,这个时候应该使用document.documentElement.scrollTop取而代之。

末尾再说句:加油!!!你会克服这些你现在讨厌的东西的!! !

睡觉~~~~!

正确的使用继承

在我们使用面向对象编写程序的时候,经常会因为不知类应该如何组织而无从下手

我们应该如何来组织各种各样的类呢?下面我拿一个简单的例子来说。

在一个网站程序中通常都需要用到上传文件,有的地方只允许上传文本文件,有的地方则只允许上传图片。这个时候我们需要一个类来处理上传文件,很多人通常的作法是写一个FileUploader类,然后在FileUploader中定义一个成员allow_exts来判断所要上传的文件是否是一个合法的,系统允许的文件。这样做是没错的,但是有的时候,我们需要检测上传的图片文件的某些信息来限制图片文件的上传,又有的时候我们需要检测上传的文本文件的信息(比如不能包含某某字符之类的)来限制上传,遇到这种需求,很多人都选择在FileUploader中新增加方法,然后在类中再去分情况调用这些过滤的方法(比如当遇到只允许上传txt文件的时候,就调用某个方法来检测该上传文件中是否包含某个字符),这样做会允许一些问题,假如我的需求变得更多的时候,我就得在“检查文件扩展名”那块代码中写入N种情况,做N种处理,所有可能出现的情况都挤在FileUploader这个类中了,所有的代码都已包含在FileUploader中,从面向对象编程的角度去看 这种作法,显然,你能看出这个FileUploader类并不是面向对象的类,而是一个高级的函数,一个代码组织得比函数清晰的类,仅此而已,它并不能算做是一个面向对象的类。

最近比较常用类来组织自己的代码,因此,以下是我的一点小小的愚见。

对于以上那种情况,我们可以这样子来看。

不管上传文本文件,还是上传图片文件,它都是一种“文件上传”,因为我们可以抽象出一个类,名字叫做”FileUploader”,在这个类中,我们视它为一个万能的文件上传器,你可以上传任意种文件。当然我们也可以通过限制其中的一个成员allow_exts来限制它允许上传的文件类型,“文本上传”我们将其叫为 “TextUploader”,TextUploader从FileUploader继承,因为TextUploader是一种特殊的FileUploader,因此TextUploader拥有FileUploader的所有功能及成员,这时我们需要对TextUploader进行特殊处理,在上传前检查要上传的文件是否是个有包含不该包含的字符,这时我们只需要重写FileUploader的相关函数,在该相关函数中增加判断是否包含不该包含的字符的代码即可。呵呵,这样子关系是不是清楚了点了呢?图片上传同理。

总而言之,在设计类之前首先要先将其能抽象出来的尽量抽象出来。然后即可在代码层面表示了,那个时候一切都那么理所当然

太可怕了,我的密码竟然一直都被另一个不认识的人知道

早在N年前,当我还在读高中时,注册了我的第一个域名,当时对这一行根本不懂,想注册个域名,所以觉得价格最便宜越好,因为当时手头钱不多,50多块钱的域名注册费还是向家里人多要,经一网友介绍,以45元/年的价格购入了我的第一个域名。

到现在已经差不多3年了。这个域名续费了几次。密码也同样忘记了几次。但当时是通过代理端帮忙将密码发回我邮箱的,按一般的想法是,应该是代理商在某后台面板那按某个按钮将我域名的密码通过服务器自动取得密码并自动发送到我域名的管理邮箱。当时也没太在意这回事。今天准备给我域名续费的时候,去找了那个代理,谈着谈着,他直接用QQ给我发了我域名的账号及密码。太可怕了。一个域名的管理密码竟然被这个代理端知道。那要是某一天这个域名做值钱了呢?是否代理商可以很容易的将该域名改为自己的?

回到北京了~熟悉又陌生

1月12号带着无比想念南方的天气,家乡的一草一木的心情搭上回福州的火车,离开了北京,短暂的结束了在北京近两个月的工作。

春节过完了,2月11号,搭上了来北京的火车,离开了家乡。我是个感性的人,在搭火车的前一天刚经历了史上没有过的家族大联,因此,或多或少感觉有些失落,凄凉,想多留在家里一天~。多看看家乡的事物。多听听老爸老妈的声音(有点肉麻,但实话实说~)。

经历了“史上”最长的坐车记录“硬座35个小时” (之前最长的一次是去年2007年夏天去南京时坐的第一趟火车,记得很清楚,车次是2002,最慢的车型,在那之前没坐过火车,也没有达人相告那是最慢的~,所以坐了近26个小时),我终于活着回到了北京。凌晨5点00分左右到的,迷迷糊糊,眼睛都有点睁不开(熬了一天两夜)。在没来之前还担心火车那么早到有没有车可以到我住的那边,没想到北京的地铁那么早就运营了。带上行礼,出了北京站,直奔站前的地铁,买好地铁票,准备搭地铁赶紧回宿舍睡一觉再说。2号线坐了大概20几分钟,就到了西直门站(我需要在这个站倒13号线到上地),到这后时间是40几分左右,好像刚好是13号线的首班车的时间。或者可能已经是第二班了。乘上了熟悉的13号线地铁(以前经常乘这个线路上班和倒2号线,再倒1号线去本单,天安门,王府井。因为在刚来北京时是暂住在一朋友那边的。位于东直门那块,城铁柳芳站那,早上8点左右乘该线40多分钟来公司上班,大概有一个礼拜左右。)。6点斗左右,拖着疲惫的身体,回到了宿舍~!接下来就是几个小时的睡眠。现在带着略微清醒的头脑写下了这篇Blog

Garbin.Huang 于 Comsenz 大年初七下午15:00

难得的一次聚会。

这次春节比以往所过的任何一个春节都来得特殊,以前基本都是正月初一前几天赶着备年货,贴春联,然后正月初一走街串巷,到邻里之间互相拜年图个热闹,接下来几天就是老朋友聚会,高中的,大学的,甚至初中,小学的同学聚会。每年都是这样。也没有过哪一年比较特殊,给我留下比较深刻的印象。

今年不同。很不同,第一,二姐没有回家过年~!也不知道她一个人在外面过年过得好不好。还真是挺挂念的~! 第二,几家兄弟由我老爸做东聚到了一起,不是饭店,也不是酒店,而是KTV~!新奇吧。呵呵。不知道应该如何形容,在这之前是从来没有过的。大人,小孩都在,在KTV中唱歌~!

时间过得很快,短短的三个小时K歌时间一会就过去了。照了很多照片,当然少不了难得的合照啦。。。

另外还有另一件事值得提:俺是个不上相滴人。哈哈~!

祝愿所有的兄弟姐妹一帆风顺,在新的一年里有更大的成就可以带到明年春节,让大家惊喜惊喜。当然也包括我。一起a za a za fighting(堂二姐说的)。

« Previous PageNext Page »