Home mail me! Syndicate this site using RSS

回顾2009,冲刺2010

收到一封域名即将过期的提醒邮件,自己的个人博客域名即将到期,续费后,顺便访问了自己的博客,已经有大半年没有写点什么了,翻看这几年走过的点点滴滴,07年写过一个很有意思的总结,“无谓?无为?无味?无畏?五味!”,解释为:一切无所谓的态度,无所作为的事业,没有味道的爱情,无所畏惧的心,却又五味俱全的生活!

已经过去的2009年,发生了很多事情,有工作上的,有生活上的,有痛苦的,有欢乐的,有付出的,当然也有收获的,脑海里却只找到一个字“忙”来总结,可以理解为匆忙的忙,也可以理解为繁忙的忙。喜欢户外的我,已经很久没出去走走了。

记得曾经有人说过一句话“我陪电脑的时间,比陪她的时间多得多!”,很形象,这就是我2009年每一天的真实写照,工作日一天24小时,除去吃饭睡觉的8个小时,其余时间几乎都在电脑前。

2009年有过一段时间的无助与痛苦,感谢家人、朋友、同学以及公司的小姑娘们,有了你们的鼓励和支持,才使我跨越了这道曾经我以为无法跨越的坎。特别是公司的小姑娘们,在她们面前,我不得不承认我已经是一把年纪的人了,然而也正是因为她们的年轻,带给我不少欢乐,脸上也因此多出了2道笑出来的皱纹:)

个人认为自己是个理想主义者,总想把所有事情都做的很完美、很妥当,回过头来才发现我不经意的失去了很多很多。细细品味“完美”与“完成”这2个词,明白了很多道理,只有在完成的前提下才会慢慢完美,而一味的追求完美忽略了完成,最终结果只会是失败!

坚持徒步上下班(雨天及赶时间除外)也有大半年了,每天徒步40分钟,效果很好,也创造了穿着人字拖在庐山上徒步了一整天却皮毛无损的神话。09年3、4月份经常出现腰酸的症状,现在基本都已经消失了。再次呼吁IT从业者们,真该多注意劳逸结合,多锻炼身体,身体才是革命的本钱。

自从接手4.CN后,认识了很多新朋友,这对于自己而言也是一个提升,4.CN的发展也算顺利。如果说要对自己这1年的工作表现打分的话,勉强打个及格分60分吧,很显然,离自己的预期目标还有很大的差距,还有很多该做的事情没有完成。

展望2010年,要发挥4.CN团队每个成员的优势,让4.CN走的更快一点、更好一些,同时也抽点时间解决下个人问题。

Install Chinese Input Method for ADP1

版权申明:本文旨在提供一种安装输入法的方法,其中涉及到一些文件归HTC所有。

将ADP1升级到v1.5版本后,依然没有中文输入法,于是从网友定制的ROM中提取了HTC_CIME安装包及所需的库文件(支持手写输入、拼音、笔画以及2种台湾常用的输入法),以下是安装步骤(前提条件是已经安装好Android SDK以及ADP1手机驱动程序):

将手机通过USB线与PC机连接
 
E:\software\android\cime>adb devices
List of devices attached
HT93LLZ00193    device
 
E:\software\android\cime>adb shell
$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
<strong>/dev/block/mtdblock3 /system yaffs2 ro 0 0</strong>
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1000,fmask=0711,dmask=0700,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8 0 0
 
从加粗的那行文字可以看出,手机上的/system目录只有只读权限,所以我们需要remount为可读写权限,以便将文件复制到/system/lib目录下。
 
$ su
我们需要su 为root用户,否则没有权限执行下面的命令:
 
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
<strong>/dev/block/mtdblock3 /system yaffs2 rw 0 0</strong>
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1000,fmask=0711,dmask=0700,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8 0 0
 
现在/system目录已经具备可读写权限
 
# chmod 777 /system/lib
# mkdir /system/lib/zi
# exit
$ exit
 
现在已经退出手机SHELL环境,接下来复制HTC_CIME所需要的库文件到手机的/system/lib/目录下。
 
E:\software\android\cime>adb push lib/libcimet9.so /system/lib/libcimet9.so
E:\software\android\cime>adb push lib/libimezi.so /system/lib/libimezi.so
E:\software\android\cime>adb push lib/libpphwr.so /system/lib/libpphwr.so
E:\software\android\cime>adb push lib/zi/Zi8DatPYP_CN.z8d /system/lib/zi/Zi8DatPYP_CN.z8d
E:\software\android\cime>adb push lib/zi/Zi8DatPYS_CN.z8d /system/lib/zi/Zi8DatPYS_CN.z8d
E:\software\android\cime>adb push lib/zi/Zi8DatZHA_CN.z8d /system/lib/zi/Zi8DatZHA_CN.z8d
E:\software\android\cime>adb push lib/zi/Zi8DatZHA_HK.z8d /system/lib/zi/Zi8DatZHA_HK.z8d
E:\software\android\cime>adb push lib/zi/Zi8DatZHA_TW.z8d /system/lib/zi/Zi8DatZHA_TW.z8d
E:\software\android\cime>adb push lib/zi/Zi8DatZYP_TW.z8d /system/lib/zi/Zi8DatZYP_TW.z8d
E:\software\android\cime>adb push lib/zi/Zi8DatZYS_TW.z8d /system/lib/zi/Zi8DatZYS_TW.z8d
 
开始安装HTC_CIME中文输入法
E:\software\android\cime>adb install HTC_CIME.apk
 
至此中文输入法已经安装好了,接下来执行恢复/system/lib目录权限为只读,并重启系统。
E:\software\android\cime>adb shell
$ sync
$ su
# chmod 755 /system/lib
# chmod 755 /system/lib/zi
# reboot

激活中文输入法
进入Setting,选择Locale & text,如下图所示:
adp1_cime_locale
adp1_cime_select
adp1_cime_selected
adp1_cime_select_input
adp1_cime_input_list
Handwriting – 手写输入法
ZhuYin – 注音输入法
CangJie – 仓颉输入法
PinYin – 拼音输入法
Stroke – 笔画输入法

效果图:
adp1_cime_stroke
adp1_cime_handwriting
adp1_cime_pinyin

下载:Click here to download HTC_CIME

Android Dev Phone 1 使用手记

adp1_v15_home
入手ADP1也有半个多月时间了,从美国寄到中国也花了将近半个月时间,可谓一波三折。

由于ADP1不针对中国开放,也没有朋友在那边,结果就想到通过OneNow网站代购。

因为注册Android开发者帐号必须先开通Google Checkout,但可恶的是Google Checkout也没对中国开放,然后就随便填了个香港的地址,绑定自己的信用卡,支付了注册Android的25美金后,结果第2天Google Checkout帐号就被封了,值得庆幸的是Android帐号没被封。

接下去就是注册OneNow帐号,然后在http://market.android.com上下订单,收件地址就填OneNow提供的美国地址,选择的是免邮费的平邮,所以寄到OneNow提供的美国地址也花了5天时间。

在OneNow下单之前就咨询过在线客服,他们说上海海关很严格,超过1000RMB就会被扣留,如果没有过去一个月去过美国的出境记录,包裹就会被退回,所以只能先寄到深圳的同学那,第2天,手机从OneNow寄出了,选了快递,花了46.33刀,4天时间就到深圳了,结果在深圳海关清关延误了4天时间,还以为被扣留了呢,同学收到手机的时候,向DHL的工作人员支付了150元关税。

手机到手的那天就把系统升级到v1.1版,输入中文比较麻烦,在网上也看到很多自制的cupcake版本,对中文的支持几乎很完美了,所以就一直期待官方的v1.5版能早点出来,昨天收到消息,HTC官方已放出v1.5版本,立马就刷了新系统。

下面就来讲讲刷系统的步骤:

刷系统之前,当然得到HTC官方下载v1.5的固件(http://www.htc.com/www/support/android/adp.html)

刷系统有2种方法:fast boot和recovery-image,个人觉得recovery-image方法要简单点,不过话说回来,不管采用哪种方法,都得先刷Radio固件,升级或降级都是如此,下面就来讲讲第2种方法:

一、准备工作
获取adb工具,这个文件包含在Android SDK,也就是说需要先下载Android SDK,如果是WIN系统,还需要给手机装USB驱动,驱动程序也包含在Android SDK。解压后,将该目录下的tools目录加到PATH环境变量中。

二、下载v1.5固件
本文介绍的方法中,只需要下载ota-radio-2_22_19_26I.zip 和 signed-dream_devphone-ota-147201.zip 这2个文件即可。

三、升级Radio固件
不管升级或降级系统,这个步骤都是必须的。

1) 确保SD卡在手机里;
2) 开启手机,并通过USB线与电脑连接;
3) 执行下面的命令,确保Android驱动已经安装正确;
adb devices

如果看不到下面的输出,说明驱动程序没有安装正确。

* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT93LLZ00193 device

4) 将Radio固件PUSH到SD卡上,并重命名为update.zip;
adb push ota-radio-2_22_19_26I.zip /sdcard/update.zip

执行后,会输出类似下面的内容:
662 KB/s (0 bytes in 9181622.013s)

5) 为了确保Radio固件完整的拷贝到SD卡上,也为了接下去的升级工作能够顺利完成,需要执行以下命令。
adb shell sync

6) 现在关闭手机,然后按HOME和挂机键重新开启手机,直到出现一个!图标,如下图所示:
adp1_v15_recovery

7) 打开键盘,按住 Alt + l 键,开启日志显示,如下图所示:
adp1_v15_alt_l

8) 按 Alt + s 键,开始执行升级,如下图所示:
adp1_v15_alt_s

9) 升级完之后,屏幕会提示按 Home + Back 键重启系统,如下图所示:
adp1_v15_home_back

10) 重启的速度有点慢,需要耐心等待一下,进入系统后,通过Settting -> About Phone里可以看到BaseBand Version已变更为2.22.19.26I,如下图所示,说明Radio固件已经升级成功。
adp1_v15_basehand

四、升级Recovery Image
升级步骤与升级Radio固件一样,前提是Radio固件已经刷新成功。

1) 确保SD卡在手机里;
2) 开启手机,并通过USB线与电脑连接;
3) 执行下面的命令,确保Android驱动已经安装正确;
adb devices

如果看不到下面的输出,说明驱动程序没有安装正确。
List of devices attached
HT93LLZ00193 device

4) 将Recovery Image PUSH到SD卡上,并重命名为update.zip。
adb push signed-dream_devphone-ota-147201.zip /sdcard/update.zip

5) 执行adb shell sync确保拷贝完整。

6) 现在关闭手机,然后按HOME和挂机键重新开启手机,直到出现一个!图标,如下图所示:
adp1_v15_recovery

7) 打开键盘,按住 Alt + l 键,开启日志显示,如下图所示:
adp1_v15_alt_l

8) 按 Alt + s 键,开始执行升级,如下图所示:
adp1_v15_alt_s

9) 升级完之后,屏幕会提示按 Home + Back 键重启系统,如下图所示:
adp1_v15_home_back2

10) 重启后,可以看到开机LOGO已经变掉,如下图所示:
adp1_v15_logo

11) 进入系统后,通过Settting -> About Phone里可以看到Firmware version已变更为1.5,如下图所示,说明刷机成功。
adp1_v15_firmware

刷机感言:刷完v1.5的系统后,发现语言还是只有English,中文输入法还是没有,看来不对中国开放的机子,要想使用中文输入法就别指望官方版本了,只能自己整。

短域名在IE中无法设置子域名COOKIE的BUG

对于域名投资者来说,当然是越短越好,然而对于IE来说,小于3位的域名就无法设置子域名COOKIE了。

最近就碰到这个BUG了,一直想不通IE为什么会出这种BUG,对于其他浏览器来说一点问题都没。

假设2台服务器如下:
127.0.0.1 www.6.cn
127.0.0.1 bbs.6.cn

在www.6.cn这台服务器上有个aa.php文件,源文件如下:

<?php
setcookie("aa", "bb", time()+3600, "/", ".6.cn");
echo '<pre>';
print_r($_COOKIE);
?>

在bbs.6.cn这台服务器上有个bb.php文件,源文件如下:

<?php
echo '<pre>';
print_r($_COOKIE);
?>

这2个程序的作用就是能使子域名共享COOKIE,结果却因为这个域名小于3位,瞎忙活了1天,如果域名换成3位或3位以上,就一点问题都没,比如把6.cn换成123.cn就很正常。

暂时还没有找到解决办法,先留个帖子,看看以后是否有时间解决。

参考资料:http://curl.haxx.se/rfc/cookie_spec.html

Only hosts within the specified domain can set a cookie for a domain and domains must have at least two (2) or three (3) periods in them to prevent domains of the form: “.com”, “.edu”, and “va.us”. Any domain that fails within one of the seven special top level domains listed below only require two periods. Any other domain requires at least three. The seven special top level domains are: “COM”, “EDU”, “NET”, “ORG”, “GOV”, “MIL”, and “INT”.

解决IE中IFRAME无法保留SESSION的问题

最近用C++开发一个基于WebBrowser的Application,界面都是在一个IFRAME里展示,由于需要会员登录模块,结果却出现在IFRAME里无法保留SESSION的问题,上MICROSOFT官方找到了答案:

@header(‘P3P: CP=”CAO PSA OUR”‘);

一句代码搞定!

P3P是微软的隐私策略,通常情况下跨域IFRAME或者FRAMESET默认采用的隐私策略为“中”,该级别的策略拒绝保留SESSION。CAO PSA OUR则意味着你同意跨域保留SESSION。

详细资料可以查看官方文档:http://support.microsoft.com/kb/323752

Google手机何时会上市?

令人期待已久的Google手机到底何时会上市?是否会全球同步上市呢?相信有不少人跟我一样在期待着!

引用engadget网站的消息:
Update: TmoNews has just uncovered new specs and info on the phone. Here's what they've got so far: the phone is 4.6 x 2.16 x 0.63 inches, weighs 5.6 ounces, features a 480 x 320 HVGA display, sports 3G (obviously), GPS, has a 3.1-megapixel camera, supports up to 8GB of memory (though no format is mentioned), and will feature 5 hours of talktime with 130 hours of standby. Strangely, the phone won't do video capture (what?), won't have stereo Bluetooth, will require a Gmail account, and won't be sold at stores outside of a 2-5 mile radius of T-Mobile's 3G coverage areas. That last bit sounds a little odd to us, but we're guessing a lot of the functionality of this device will be shot in non-3G regions.

Google Chrome Bug or not?

I tried Google Chrome this morning, but it looks like the “Checkbox” element cound not be showed correct.

Here is IE screenshot:

Here is the Chrome screenshot:

Where is the “Checkbox” element in Chrome?

Google Chrome 浏览器测试版发布

Google Chrome

大家一直期待的Google浏览器,终究还是出来了,与其说是GOOGLE自己要开发浏览器,还不如说是这款浏览器是被Microsoft给逼出来的。我相信如果大家相信GOOGLE的不作恶精神的话,应该会马上接受她。

连带Mac和Linux版本的推出,不知道此时此刻FireFox和Microsoft的心情会是如何?

官方描述:从外观即可看出,Google Chrome的设计简单、高效,是一款真正的Web浏览工具。与谷歌主页一样,Google Chrome的特点是简洁、快速。Google Chrome支持多标签浏览,每个标签页面都在独立的”沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。Google Chrome基于更强大的Javascrīpt V8引擎,这是当前Web浏览器所无法实现的。

详细资料请查看:http://www.techcrunch.com/2008/09/01/meet-chrome-googles-windows-killer/

官方地址:http://www.google.com/chrome

Free UML 2 tool box – BOUML

BOUML is a free UML 2 tool box (under development) allowing you to specify and generate code in C++, Java, Idl, Php and Python.

BOUML runs under Unix/Linux/Solaris, MacOS X(Power PC and Intel) and Windows.

BOUML is very fast and doesn’t require much memory to manage several thousands of classes, see benchmark.

BOUML is extensible, and the external tools named plug-outs can be written in C++ or Java, using BOUML for their definition as any other program. The code generators and reverses are ones of the pre-defined plug-outs included in the BOUML distribution. See features.

BOUML是一个免费的UML2.0工具(还在开发中),可以生成C++, JAVA, IDL, PHP, Python的代码。

BOUML是一款跨平台的程序,支持Unix/Linux/Solaris, MacOS X(Power PC and Intel) 以及 Windows。

BOML执行速度非常快,而且不需要占用太多的内存就可以管理成百上千个类,具体可以看官方的性能评测

官方网址:http://bouml.free.fr
当前版本:v4.5,发布于2008年8月26日
下载地址:http://bouml.free.fr/download.html

Free Virtual Desktop Manager for Windows

The Sysinternals team at Microsoft today released another useful software utility for Windows called Desktops to help people who run multiple applications at the same time.

Desktops (v1.0) is a Virtual Desktop Manager that lets you create up to four different desktop screens for arranging all those open applications in a more logical and productive manner.

For instance, you could put all work related programs in the first desktop window, chat programs in another virtual window and so on. This makes life less confusing when you have dozens of programs running simultaneously on the desktop.

The software runs in your Windows taskbar. And you can very easily switch from one virtual desktop to another by pressing the keyboard shortcut or through your mouse.


Next Page »