作者归档:贝贝爸

贝贝参加宝宝树babytree上海的活动(有和ceo王怀南先生合影哦)

今天全家人带贝贝一起参加了宝宝树(babytree)在上海举办的聚会,活动场面很是热闹,先上几张照片,老规矩,详情由文笔我家领先的贝贝妈来写。

路上堵车,到的时候已经人山人海了。
dscn0068.jpg
贝贝先开始热身(最后名次不好,没办法,有些小孩子爬着爬着就站起来了,没可比性阿)
dscn0091.jpg
贝贝跟ceo王怀南先生的合影,贝贝还有点不愿意。哈哈
dscn0127.jpg
结束后吃了点东西到中山公园玩儿了几个钟头,贝贝高兴得不得了,又亮出了招牌表情。
dscn0152.jpg

Adobe Dreamweaver CS3 尝鲜

Adobe Dreamweaver CS3 下载到了和破解一起,是一个crack的文件。
装了一下,下面是过程截图。

解安装文件压缩包的已经是adobe的style了,居然是中文的,吓我一跳,dw中文的字体不好看。

Adobe Dreamweaver CS3 解压缩包

要检查运行的程序,ie,ff,outlook都不能开。。

Adobe Dreamweaver CS3 检查运行的程序

选择安装位置的方式也焕然一新

Adobe Dreamweaver CS3 选择安装位置

开始安装。。漫长的过程,据说cs3的安装也是贼慢。

Adobe Dreamweaver CS3 的安装速度慢

终于完成了,show以下新的dw3界面
Adobe Dreamweaver CS3 界面
about页面,版本是:version 9.0 build 3453
Adobe Dreamweaver CS3 about

回头再写试用报告咯~

要注意防盗啊(附小偷上海出没地图)

收到朋友短信:在XXX有个小偷伸手进我的提包,拿我钱包,被我发现后制止了。
原来在梅陇住,在莱福士上班的时候,2个地方都是有名的三只手(小偷)聚集地,搬家&换了工作地方后很少碰到了。
梅陇(锦江乐园)地铁站出地铁往梅陇去,就是一个汽车站,加上原来南站改造,火车也停这里,人流量是相当大。原来经常有三五成群的人(长的像新疆人)坐在路边的栏杆上,两眼冒绿光的看着来来往往的人,看到有猎物,就一人上前出手,2人断后,边上不远的地方就是几个闲散的社会保安,居然也相安无事。
还记得有段时间梅陇那个地下道出来有人飞车做案,一群保安就堵在地下道2个出口堵飞车强盗,不知道现在情况如何了。

人民广场也是每天都上演着刺激的一幕幕,地铁出来,过西藏路到莱福士的斑马线,那短短的几十米,都是他们的作战地方,居然有天早上有个小偷跟着一个提包的mm都快跟到莱福士得办公楼里面,最后被发现,未得逞,还有福州路上,一天晚上,还下着小雨,小偷们也不歇工,在云南路口加班加点地创收。

附小偷在上海的出没地一览表

1.浙江路福州路书城附近。

2.人民广场,大世界附近。

3.淮海路百胜,陕西南路。

4.杨浦区五角场5个角范围内都有。

5.南京路步行街。

6.晚6点之后,也就是下班时间,福州路莱福士广场至对面人民广场地铁入口最为集中。

7.长风公园附近和轻轨赤峰路附近,小偷也暴多。

8.漕溪路一段,从徐家汇到华亭宾馆这一段。

9.控江路江浦路到大连路一段。

10.曲阳家乐福附近小偷24小时服务大众。

11.四川北路全段。

12.七浦路商业范围内。

13.以前东方路地铁站出口处会有不少,现在应该转移到东昌路去了吧。
2007-05-31日新增
14.淮海路太平洋,黄陂南路和淮海路的路口。

另付上,南京路小偷聚集地∶

1.浙江路福州路老半斋饭店后。
2.灿坤商城地下美食城西北风味店铺,经常有看见小偷分赃,据服务员称经常在厕所和垃圾桶内看见手机套和空钱包等。

Http Watch Professional v4.2.38 YAG出来了

Http.Watch.Professional.v4.2.38-YAG出来了
等了好久了,还是yag牛,这个软件对web编程的帮助大了去了
翻译一下主要功能,翻译得比较烂:S

  1. 记录所有http请求和数据
  2. 和ie紧密集成
  3. 单独的log文件查看器
  4. 有自动化的接口
  5. 毫秒级的时间测量
  6. 支持http压缩数据
  7. 扩展的cookie支持
  8. 显示http的原数据(http头信息等)
  9. 方便的快捷键
  10. 精准的记录请求和反馈
  11. 支持多种语言编码
  12. 解密https数据
  13. 小尺寸,大内容的log文件格式
  14. 方便的记录流量一览界面
  15. 从用户可以收集可读的log
  16. 强大的过滤功能
  17. 动态排序
  18. 网络级别的性能数据
  19. 显示浏览器和cache的交互
  20. 数据可以输出成XML和CSV
  21. 读取缓存和下载过的内容
  22. 方便,简单,强大

赶紧装上一个看看吧。

常见Oracle HINT的用法(转贴)

  1. /*+ALL_ROWS*/
  表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
  例如:
  SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;
  2. /*+FIRST_ROWS*/
  表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
  例如:
  SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;
  3. /*+CHOOSE*/
  表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
  表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
  例如:
  SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;

  4. /*+RULE*/
  表明对语句块选择基于规则的优化方法.
  例如:
  SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;

  5. /*+FULL(TABLE)*/
  表明对表选择全局扫描的方法.
  例如:
  SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO=’SCOTT’;

  6. /*+ROWID(TABLE)*/
  提示明确表明对指定表根据ROWID进行访问.
  例如:
  SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>=’AAAAAAAAAAAAAA’
  AND EMP_NO=’SCOTT’;

  7. /*+CLUSTER(TABLE)*/
  提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效.
  例如:
  SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
  WHERE DPT_NO=’TEC304′ AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

  8. /*+INDEX(TABLE INDEX_NAME)*/
  表明对表选择索引的扫描方法.
  例如:
  SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX=’M’;

  9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
  表明对表选择索引升序的扫描方法.
  例如:
  SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO=’SCOTT’;

  10. /*+INDEX_COMBINE*/
  为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式.
  例如:
  SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
  WHERE SAL<5000000 AND HIREDATE   11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/   提示明确命令优化器使用索引作为访问路径.   例如:   SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE   FROM BSEMPMS WHERE SAL<60000;   12. /*+INDEX_DESC(TABLE INDEX_NAME)*/   表明对表选择索引降序的扫描方法.   例如:   SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT';   13. /*+INDEX_FFS(TABLE INDEX_NAME)*/   对指定的表执行快速全索引扫描,而不是全表扫描的办法.   例如:   SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';   14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/   提示明确进行执行规划的选择,将几个单列索引的扫描合起来.   例如:   SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';   15. /*+USE_CONCAT*/   对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询.   例如:   SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';   16. /*+NO_EXPAND*/   对于WHERE后面的OR 或者IN-LIST的查询语句,NO_EXPAND将阻止其基于优化器对其进行扩展.   例如:   SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';   17. /*+NOWRITE*/   禁止对查询块的查询重写操作.   18. /*+REWRITE*/   可以将视图作为参数.   19. /*+MERGE(TABLE)*/   能够对视图的各个查询进行相应的合并.   例如:   SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO   ,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO   AND A.SAL>V.AVG_SAL;

  20. /*+NO_MERGE(TABLE)*/
  对于有可合并的视图不再合并.
  例如:
  SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;

  21. /*+ORDERED*/
  根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接.
  例如:
  SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;

  22. /*+USE_NL(TABLE)*/
  将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.
  例如:
  SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

  23. /*+USE_MERGE(TABLE)*/
  将指定的表与其他行源通过合并排序连接方式连接起来.
  例如:
  SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

  24. /*+USE_HASH(TABLE)*/
  将指定的表与其他行源通过哈希连接方式连接起来.
  例如:
  SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

  25. /*+DRIVING_SITE(TABLE)*/
  强制与ORACLE所选择的位置不同的表进行查询执行.
  例如:
  SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;

  26. /*+LEADING(TABLE)*/
  将指定的表作为连接次序中的首表.

  27. /*+CACHE(TABLE)*/
  当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
  例如:
  SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;

  28. /*+NOCACHE(TABLE)*/
  当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
  例如:
  SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;

  29. /*+APPEND*/
  直接插入到表的最后,可以提高速度.
  insert /*+append*/ into test1 select * from test4 ;

  30. /*+NOAPPEND*/
  通过在插入语句生存期内停止并行模式来启动常规插入.
  insert /*+noappend*/ into test1 select * from test4 ;

卸载了google的拼音输入法

从开始用计算机就开始用中文输入法,现在回想起来,用过的输入法有如下几个:
ABC智能拼音、紫光拼音、微软拼音、好像还用过一段全拼,五笔的字根只记得王旁青头jian五一,输入法只记得俺的名字了,原来ucdos里面的那个输入法也用过一段。
自从google的搜索出来以后,不知不觉成了google的fans,google总是能给人们惊喜,搜索,gmail,analytics,桌面搜索等。这次看到有人介绍说输入法出来了,用了微软拼音几年没动摇的我赶紧去下了一个。
用后,感觉速度还可以,界面的字体大了点,好像没地方调整,同步功能不错(说起同步,是个简单但是很实用的功能,我用google的toolbar很大原因就是能够同步书签),还有就是界面跟那个什么输入法很像,感觉不爽的是证据输入的正确率和微软拼音相比还是有些差距的。
没2天又闹出个使用了非google数据的说法,这个东西怎么说呢,天下文章一大抄,看你抄的水平了,it界靠抄成功的例子也忒多了,不过google这么做,稍微让俺有点失望。
就事说事儿,用着还是不习惯,有天一开机,居然提示下载新词库,后来想想,卸载了吧,一了百了。卸载了还让俺填为啥卸载,好像填了个准确率啥的。
老老实实用俺的微软拼音2007咯~

小学还是幼儿园

中午吃过饭,就上次要当哥哥那个同事,突然问了一句,你儿子现在上小学几年级?
我迷茫的看着他,他说,哦,是幼儿园?
我疑惑的看着他,他说,别说没上学啊。
我鄙视的看着他,旁边的同事说,他的是女儿
我说,你九个月的时候是上的幼儿园还是小学呢?

配张图(贝贝130天)
haha

wordpress 2.1.3升级备忘

wordpress升级到2.1.3了,用svn看了一下改动的文件列表如下:
应该是只多不少,因为有些文件我自己手工改过
改动的文件多,但是代码不是很多,好像是添加了一个filter,有些变量前加了int,有些去掉了int,还有就是attribute_escape和clean_ur处理的变化。
attribute_escape主要是把<,"等做一些处理 clean_ur是对url做一些处理,包括typo的错误 文件列表如下 继续阅读

用netstat和任务管理器查找占用端口的进程

昨天要用xampp,启动的时候报错,说是443端口被占用了,瞅了半天开的应用程序,觉得奇怪,那个程序会用443呢?用进程管理器一阵乱杀,,,,结果,没效果。本想重起,又一想,这样不解决根本问题,于是google了一把,找到了解决方法。
开始,运行,cmd
运行
netstat -ano
说明
a:显示所有连接和监听的端口
n:用ip地址的形式显示地址和端口
o:显示和连接想关的进程id。
用这个方法查出占用端口的进程id
然后按ctrl+shift+esc,打开windows task manager 任务管理器,切换到进程(processes),如果没有pid,进程id的column点击查看下面的select comumns… 选中PID(Process Identifier),确认后,按照pid排序,查找相应netstat命令查出来的pid对应的应用程序。

我这里查出来,居然是qq,杀掉后问题解决,不知道这个鬼东西为啥要用443端口。
以前还发现过skype用80端口的事情,如果不用apache等软件还好,不然还真麻烦,解决方法是skype的tools/options…/connection
去掉use port 80 and 443 as alternatives for incoming connections

查了一下,linux系统中,netstat用法基本相同,只需将o换成p,另外要用root帐号来查,windows应该也要有administrator权限,只不过用的帐号式管理员权限。

-p, --programs             display PID/Program name for sockets
[root@call root]# netstat -anp

查出来后,该kill还是killall就看你咯