存档

作者存档

国庆·中秋

2009年10月9日 8 条评论

一直以来,总觉得自己不是那种善于用文字来记录感情的人,所以,以前有很多值得记忆的人,值得记忆的事,我都只是记在心上,自己偶尔会想起,偶尔跟知心的朋友会谈起,每每回忆起那些往事,总能触动自己心底里那根最难触动的弦,总是感慨很多,眼角总会有点酸酸的,我只是静静地看着远方,尽量抑制自己的感情……

这个国庆,这个中秋,发生了太多的事,有许多美好的回忆,我打算用我最朴素的文字把它记录下来。

8天的假期,在家里宅了几天我也不清楚。 阅读全文…

分类: 生活感悟 标签: , , ,

Birds

2009年10月2日 没有评论

I have to remind myself that some birds aren’t meant to be caged.
Their feathers are just too bright.
And when they fly away the part of you that know it was a sin to lock them up does rejoice.
But still the place you live in is that much more drab and empty that they’re gone.

分类: 生活感悟 标签:

细说C/C++中的宏(Macro)和宏替换

2009年9月30日 没有评论

宏(Macro),在C/C++中,是一个颇有争议的话题。在以前的老代码中,我们总是可以看到很多使用得很巧妙的宏,而在大多数的C++教材中,宏的使用都是不被推荐的,因为宏的使用比较容易产生BUG,这些BUG是由一些宏的边界效应(Side effect)所导致,而且这些BUG在调试的过程中都是很难发现的。到底该不该用宏?我的观点是,并不是因为它容易产生BUG就不用它,一定要学会如何用宏、何时用宏。很多时候,巧妙的使用宏,一方面可以减少代码量,一方面还可以提高代码效率。所以,我们现在要做的就是深入、全面了解宏相关的内容,只有充分的掌握了它,才会用好它!

1. 预处理命令(Preprocessor commands)

阅读全文…

分类: 程序人生 标签: , , ,

函数指针(function pointer)使用详解

2009年9月26日 没有评论

函数指针(function pointer),是一个让人既爱又恨的东东,爱的是,它的确是很强大,用的好的话,能写出结构很清晰的代码,比较常见的就是一些事件处理模型中用到的处理事件的回调函数等。恨的是,函数指针的使用,是一个比较高级的话题,对一般的程序员来说,这个语法不容易掌握,用的时候容易出错,调试的时候还比较麻烦。C++中提出了虚函数(virtual function),有人说可以用虚函数功能来替代函数指针了,函数指针可以被抛弃了,但是,我们知道,使用虚函数有额外的开销的,因此,很多追求高效率的程序员还是更加钟爱函数指针。下面就函数指针的使用,进行举例一一说明:
阅读全文…

分类: 程序人生 标签: ,

“暗网”信息的抓取(2) (Crawling the Hidden Web)

2009年9月20日 没有评论

写在最前面:《“暗网”信息的抓取(1) (Crawling the Hidden Web)》中,讲述了一些关于暗网信息抓取的基本理论。本文主要对《Crawling the Hidden Web》中提到的根据上述理论所研发的爬虫HiWE进行介绍说明。

HiWE: Hidden Web Exposer

1. HiWE爬虫和传统爬虫处理流程的对比:

FlowChart: Traditional Crawler Vs. HiWE

FlowChart: Traditional Crawler Vs. HiWE

阅读全文…

“暗网”信息的抓取(1) (Crawling the Hidden Web)

2009年9月20日 10 条评论

写在最前面:最近,看了Sriram Raghavan, Hector Garcia-Molina的《Crawling the Hidden Web》一文,下面对文中所讲述主要的思想做一个简要的概括,同时就文中作者的想法,谈一些我自己的看法。

有研究表明(1997年的),互联网上的网页有80%多的是动态页面(Dynamic Pages)。现在,随着各种各样的高级编程语言和一些功能更加完备的web服务器的出现,使得动态页面的生成越来越简单。因此,80%这个比例,在现在看来,只是一个保守的估计,现在的比例肯定是高于80%的。 阅读全文…

浅析常用事件驱动库

2009年9月17日 3 条评论

通常,我们写服务器处理模型的程序时,有以下几种模型:

(1)每收到一个请求,创建一个新的进程,来处理该请求;

(2)每收到一个请求,创建一个新的线程,来处理该请求;

(3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求

上面的几种方式,各有千秋,第(1)中方法,由于创建新的进程的开销比较大,所以,会导致服务器性能比较差,但实现比较简单。第(2)种方式,由于要涉及到线程的同步,有可能会面临死锁等问题。第(3)种方式,在写应用程序代码时,逻辑比前面两种都复杂。综合考虑各方面因素,一般普遍认为第(3)种方式是大多数网络服务器采用的方式,这也是本文讨论的重点—事件驱动处理库。 阅读全文…

《非常完美》,不完美。

2009年9月13日 9 条评论

10499111_856621今天和小缘同学去太平洋看了《非常完美》,因为之前在网上看了影评,所以对其情节有了大概的了解。剧情基本上没有什么新意,就是范冰冰扮演的王菁菁和章子怡扮演的苏菲两个女人之间争男人的故事,对此我不做什么评价。我想对影片本身谈一些自己的看法。

1.在该片拍摄的过程中,用了大量的电脑制作的动画特效,大多是表现人物的内心活动的。这在以前的影片中不是特别的常见,可以说这是该片中一个比较“新”的地方。不过这个地方,我觉得有点值得让人质疑的点,就是过多的使用这种特效,会让人觉得很“假”,会影响影片本身的可观看性。

2.关于本片中的人物关系,王菁菁(范冰冰)和常瑞(何润东)是兄妹关系,常瑞和苏菲(章子怡)最后是恋人关系。在这个三角关系中,出现了一个比较有意思的事情。苏菲以为常瑞和王菁菁以前是恋人关系,所以,在王菁菁抢了自己的男朋友之后,觉得和常瑞“同是天涯沦落人”,与是和常瑞联合起来,分别进行各自的夺爱行动。但是,苏菲在这个过程中却被王菁菁整得很惨,在苏菲最困难的时候,常瑞一直在很细心的照顾苏菲,让苏菲很感动,也慢慢对常瑞产生了爱意。但是,出人意料的是,在苏菲打算告诉常瑞自己的对他的感觉的时候,却发现了常瑞和王菁菁是兄妹关系。这时她明白了,之前她为什么被王菁菁整得那么惨了,原来是常瑞背叛了她,苏菲的心一下从天堂掉到了地狱。好了,到此为止,让我感觉比较深刻的是,为什么到处都存在着欺骗呢,最好的朋友都不能相信,还能相信谁?在亲人和朋友之间,到底如何选择,这是这部影片中留下的,让我们值得深思的一个地方。虽说,最终苏菲和常瑞走到了一起,看上去貌似很“非常完美”,但是,我却觉得一点也没有这样的感觉。

非常完美,不完美。

分类: 我的观点 标签:

“搜搜”正式上线啦!

2009年9月4日 2 条评论
Soso

Soso

首先声明,腾讯官方已经对外证实了,由腾讯自主研发的搜索引擎—-“搜搜”正式发布,开始试运行。所以下面所写的内容应该不算是泄露公司机密了。从一年前到“搜搜”实习,到一年后,毕业,正式加入“搜搜”,成为“搜搜”的一员,我经历了“搜搜”最后冲刺阶段的各个环节。而在这个过程中,自己所做的工作,也多多少少为“搜搜”的今天算是添砖加瓦吧,现在看到自己的努力已经开始发挥作用,开始改变千千万万中国互联用户的生活,真的感觉很欣慰。 阅读全文…

分类: 我的观点, 搜索引擎 标签:

TinyXml使用与剖析

2009年8月15日 没有评论

前两天在做一个xml格式转换的东东,用到了tinyxml。因为之前没有用过tinyxml,所以先下载它的源码,学习一下,然后再完成工作。现在要做的事情做完了,觉得有必要把自己学习tinyxml过程中的一些收获记录一下,分享一下。

1. tinyxml是什么?

TinyXML is a simple, small, C++ XML parser that can be easily
integrated into other programs.

TinyXML is a simple, small, C++ XML parser that can be easily  integrated into other programs. (TinyXML是一个简单的,轻量级的,由C++实现的XML文档的解析器,它可以被其它程序方便地集成进去使用) 阅读全文…

分类: 程序人生 标签: , ,

谈”句柄泄漏”

2009年8月5日 没有评论

“泄漏”是我们写程序的人老生常谈的一个话题。最为常见的就是内存泄漏(memory leak),本文介绍一种新的泄漏—句柄泄漏(handle leak)。在windows系统的程序中,我们经常会遇到句柄这个词,而且windows也抽象出了一种句柄类型HANDLE。在unix系统的系统中,句柄这个词用的不是很多。我们用另一个词描述它—文件描述符(file descriptior)。这里的文件是指广义的文件,因为在unix系统中,everything is a file。总的说来,句柄是指操作系统给我们的应用程序的进程分配的,用来标识某种资源的符号。这里的资源,可以是狭义的文件,可以是socket连接,也可以是一个对象。 阅读全文…

linux下进程名和进程id的转换

2009年8月4日 没有评论

1.由进程名得到进程id:  pidof  xx , 其中xx是进程名

2.由进程id得到进程名: readlink /proc/xxx/exe,其中xxx是进程的id

3.如果是shell程序,因为shell的进程名是相应的shell名,所以不能直接根据shell脚本的名字来获取其进程id,可以由以下两种方法(以sh为例):

(1)通过pidof sh得到所有的sh进程的pid的集合,然后再通过ps aux|grep xxx.sh得到的进程的id,来和前面得到的id进行匹配,如果匹配到的话,就说明匹配的id是该脚本的进程id.

(2)pid=`ps gaux | grep xxx.sh | grep -v grep | awk ‘{print $2}’`

分类: 程序人生 标签: ,

robots.txt协议中User-agent的匹配

2009年8月3日 没有评论

之前写过一篇关于robots.txt协议(http://hi.baidu.com/wuzsh/blog/item/cef1fc03f6ff54723912bbbe.html)的文章 ,今天收到站长投诉,说是我们的spider不遵守robots.txt协议。把它们的robots.txt下下来测试一下,果然,以前的robots.txt程序有个bug。主要是没把robots.txt中user-agent的匹配弄好,于是再翻出来看看,下面是原文:(摘自http://www.robotstxt.org/norobots-rfc.txt阅读全文…

关于工厂方法(Factory Method)模式的一点改进

2009年7月26日 没有评论

在使用工厂方法模式的时候,发现如果具体产品的种类很多,那么相应的就要写很多的具体工厂子类,这个算是工厂方法的一个缺点吧。今天看了一下GOF的Design Patterns,上面介绍了一种很不错的方法,就是采用模板类,这样就可以有效地解决上面提到的问题。

下面是对上一篇文章《简单工厂模式(Simple Factory) vs 工厂方法模式(Factory Method)》中讲到工厂方法时写的例子的一个改进: 阅读全文…

简单工厂模式(Simple Factory) vs 工厂方法模式(Factory Method)

2009年7月25日 没有评论

写在前面:  简单工厂模式和方法模式是设计模式中两种比较简单,同时也是比较常用的模式,本文的主要任务就是通过循序渐进的方法,从根本上掌握这两种设计模式。最后再通过对比两种模式的不同之处,更进一点加深对它们的掌握。

阅读全文…


Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/wuzeshengpwmuqzeeas7h4eknug/wwwroot/wp-content/plugins/quickstats/quickstats.php on line 345

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/wuzeshengpwmuqzeeas7h4eknug/wwwroot/wp-content/plugins/quickstats/quickstats.php on line 345

Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/wuzeshengpwmuqzeeas7h4eknug/wwwroot/wp-content/plugins/quickstats/quickstats.php on line 346

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/wuzeshengpwmuqzeeas7h4eknug/wwwroot/wp-content/plugins/quickstats/quickstats.php on line 346

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/wuzeshengpwmuqzeeas7h4eknug/wwwroot/wp-content/plugins/quickstats/quickstats.php on line 346