135 views 五月 07, 07 by Timothy
向往Windows Mobile系统的手机已久,昨天终于下手了。呵呵。
Dopod D600,用起来整体感觉还不错。遗憾的地方好像不支持无线局域网,比较郁闷。
从此以后可以在公车上看电影,听音乐,看书,活活~~

手机制式 GSM手机
功能特色 商务手机
网络数据传输 EGPRS/GPRS
支持频段 GSM(900/1800/1900MHz)
手机类型 直板手机
硬件性能 CPU:TI OMAP850 201MHz
通话时间(分钟) 210-300
待机时间(小时) 150
智能手机 Windows系统
操作系统 Windows Mobile 5.0 简体中文版
机身内存 RAM64M,ROM128M
144 views 四月 21, 07 by Timothy
2007年4月14日,是我在新蛋工作的最后一天,告别了朝夕相处的同事,告别了熟悉的环境,熟悉的座位。
离别的时候,心中总是有万千的感慨和不舍,舍不得朝夕相处的同事,舍不得WMS Team
。临别的时候,大家都一起合影,愿小小的照片,珍藏住那段美好的回忆。

Leone & Lee & me

WeWe & Greg & me

Robert & Andy & me

Jack & Jim & me

2个美女测试,hoho~ Lucy & Angelia & me

Landi & Matt & Jason & me

合照

WMS 全家福 (可怜的Lee去上海出差了)

开发人员合影

测试人员合影
81 views 四月 08, 07 by Timothy
复活节是一个特殊的节日:两千年前的今天,我们的救主从坟墓中复活了! 从此,门徒们明白了十字架不是咒诅,不是刑罚,是神向着我们代赎的爱,新的历史开始了。耶稣的宝血把我们从罪恶中赎回,给了我们全新的生命和活泼的盼望。主耶稣复活了!是的,他的确复活了!
让我们去仰望主的十字架,去默想主赐给我的无限恩典,让主复活的大能充满我。
主耶稣基督,愿你看顾我每一天的生活,让我的每一天都行在你的旨意当中,合乎你的心意,让我在工作中来荣耀你。
380 views 三月 16, 07 by Timothy
最近公司的一个需求,涉及到WCF开发。在网上找了些资料,大都是利用单独的应用程序、或者Windows服务作为WCF Service的host。其实WCF还提供一种方式,和以前的Remoting比较类似,就是基于IIS发布你的WCF Service。
大致部署步骤如下:
1.编译好WCF Service的Class Library,确保没有错误。
2.建立.svc文件,内容格式如下:
1
<%@ServiceHost language=c# Debug="true" Service="CommonService.MailService" %>
这里的Service,是你的Service名称,及其所属命名空间.
为了确保IIS能正确识别.svc文件,需要在IIS属性中检查,如果没有.svc类型,需要手动添加,如图:

3.在IIS发布WCF Service,将其目录设置为Web共享,并注意在IIS中,为该虚拟目录打开匿名访问的权限。
4.在工程中,添加Web.config文件。这里需要建立WCF Service服务段的配置信息,我们可以直接利用MS提供的配置工具方便进行配置,如图:

打开配置工具,根据配置向导,选择好Service Type 和Contract信息。在选择服务通讯方式的时候,我们需要选择http通讯方式(因为我们服务的宿主是IIS,所以应选择http方式)。在EndPoint中,填入Endpoint的地址。再选择添加一个Endpoint,address为mex,类型为mexHttpBinding,Contract填入IMetadataExchange。
5.为了能在IIS中测试发布的效果,我们需要允许从客户端通过http方式获取元数据,这样的选项WCF默认是false,所以我们还需要一点小设置:
在Service Behavior节点,单击右键,新建一个Service Behavior,单击Add按钮,添加一个Extention Position,名称为serviceMetadata,如图:

并在上面双击,在窗口中,把HttpGetEnabled选项设置为true,如图:

一切的准备工作就绪后,我们就可以通过IIS来访问测试我们的WCF Service了。如下图:

红色框中的部分,是我们设置了HttpGetEnabled的结果,否则是不会出现这一行的,它允许我们从客户端以WSDL方式获取其源数据。
小结一下:采用IIS作为宿主程序,方便之处就在于你不必专门为WCF Service再去建立一个host文件。
124 views 二月 08, 07 by Timothy
无意中在电脑中的角落,发现05年替成都的路正驾校做的学员管理系统,被遗忘在这里很久了。是刚毕业不久接下来的第一个“私活”,呵呵。这个系统从头到尾都是用VC做的,也费了不少时间,用业余的时间来做,做了差不多一个月。要是现在,我一定会用C#来开发了,开发时间至少节约一半以上 :)
第一次做的东西,还是比较值得留恋。其实界面和功能上都有待提高。不幸的是我的系统重装过了,以前的数据库表脚本也找不到了。只是恢复了登陆验证的数据。抓了几张图,留在这里做一个纪念。
许可生成器

登录界面

操作界面

128 views 一月 30, 07 by Timothy
很久没来自己的blog写点什么了。接近年底,加班也开始多起来,到现在还堆积了N个需求要做。还有些同事下周就会请假回家,看来任务更重了。
最近我们WMS项目组来了个新同事,据说以后也会加入Shipping项目的开发。上周开发经理找我谈了话,让我来带这位新同事–Matt。从来还没有带过人,感觉还比较新鲜。不过责任也在那里,因为项目比较紧,WMS组也一直比较缺人手。感觉自己也有一定的责任。我的计划是做一个模拟项目,让Matt能很快上手,就像我当初来Newegg的时候,也是从实际项目开始上手,虽然刚开始比较觉得有压力,但是通过在实际的设计和编码重,最能锻炼人,也能让人很快进入角色。
今天还是比较有成就感了,基本完成了2、3个需求,感觉自己效率还是有点高[cool],到现在,机器上还在跑一个MSMQ测试的Windows Service。
终于决定去参加这次全球峰会了。星期一和Aaron Zhao一起去办了签证手续,这周星期四约好到美国领事馆的签证面试,今天也抓紧中午休息的时间,准备了一些资料。峰会住的酒店也选好了,看来看去,还是选了Westin Seattle Hotel,看照片上的风景还不错。
最后,希望Aaron Zhao和我这次签证面试能够顺利过关。[wink]
168 views 一月 09, 07 by Timothy
几天没来我的blog,今天刚刚打开,OMG…
多半的页面都快被垃圾广告引用占满了。心里很是气愤。到后台以看,垃圾引用3000多条。虽然这个版本的PJ-Blog,作者专门针对垃圾引用,加入了批量删除功能,可是这样10条删一次,我岂不是要点300多次?郁闷!后来查看了blog数据库的表结构,发现引用都被添加在数据库表blog_Trackback里面。自己动手,丰衣足食,索性写了个清理Trackback的asp脚本。只要上传到你的网站blog根目录下,在浏览器访问一下,就可以清除了,节约了不少时间 :)
如果你也和我用相同版本的PJ-Blog,下面的脚本,你也可以拿去用,只是在数据库连接那里,把数据库文件名称改成你的就可以了 :) 注意下PJBlog版本,看是否和你的一致,看我blog下面的版本信息吧。
最后,BS一下那些发垃圾引用的人,做损人利己的事!
点击下载此文件
138 views 十二月 04, 06 by Timothy
在用VC做一些软件功能的时候,为了方便使用,通常会涉及到托盘编程。也就是在程序最小化的时候,会在右下角的托盘区域添加一个图标,这个图标通常会支持弹出菜单功能。问题就在这里出现了,你也许会发现我们使用TrackPopupMenu呼出的弹出菜单,如果用户在取消选择的时候,在桌面任意地方单击,这个菜单也不会消失,很是郁闷,通常让初学者感到万念俱灰~~。
托盘程序中调用弹出菜单示例代码如下:
if(message==WM_SHELL_NOTIFY && lParam==WM_RBUTTONDOWN)
{
CPoint pt;
GetCursorPos(&pt);
CMenu *pMenu,menu;
menu.LoadMenu(IDR_SYSMENU);
pMenu=menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this,0);
}
要解决这个问题,其实比较简单,在响应托盘消息以及鼠标右击消息的时候,需要我们先调用一个函数,在你弹出菜单之前,设置你的窗口为最前窗口,问题就会迎刃而解。
修改后的代码如下:
if(message==WM_SHELL_NOTIFY && lParam==WM_RBUTTONDOWN)
{
this->SetForegroundWindow(); //这里将主窗口设置为最前端窗口
CPoint pt;
GetCursorPos(&pt);
CMenu *pMenu,menu;
menu.LoadMenu(IDR_SYSMENU);
pMenu=menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this,0);
}
编译后,再看看效果,问题就这样解决了。