存档

2011年3月 的存档

事件处理模式之Reactor(一)

2011年3月28日 3 条评论

写过大中型网络服务器的朋友相信对事件处理模型(有时也叫事件触发模型)不陌生。今天要讲的Reactor就是在事件处理模型中用的比较多的一种设计模式。请大家先看下面的图,有个初步的印象:

在上图中,可以看到主要有以下四种角色:
1. Reactor:
Reactor是Reactor模式中最为关键的角色,它是该模式最终向用户提供接口的类。用户可以向Reactor中注册EventHandler(3),然后Reactor在“反应(react)”的时候,发现用户注册的fd上有事件发生,就会回调用户的事件处理函数。下面是一个简单的设计: 阅读全文…

linux程序分析工具介绍(二)—-ldd,nm

2011年3月19日 2 条评论

本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具:

1. ldd, 先看下面的例子, 用ldd查看cs程序所依赖的动态库:

wuzesheng@wuzesheng-ubuntu:~/Public$ ldd cs
	linux-gate.so.1 =>  (0xffffe000)
	libz.so.1 => /lib/libz.so.1 (0xb7f8c000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb7f75000)
	libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7e4d000)
	libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7e21000)
	libstdc++.so.6 => /usr/local/gcc4.5.1/lib/libstdc++.so.6 (0xb7d40000)
	libm.so.6 => /lib/libm.so.6 (0xb7d18000)
	libgcc_s.so.1 => /usr/local/gcc4.5.1/lib/libgcc_s.so.1 (0xb7cfd000)
	libc.so.6 => /lib/libc.so.6 (0xb7bbc000)
	/lib/ld-linux.so.2 (0xb7fab000)
	libdl.so.2 => /lib/libdl.so.2 (0xb7bb7000)

阅读全文…

分享:Discuz论坛自动发帖机

2011年3月6日 15 条评论

最近,因为工作上需要,要往自己搭建的discuz论坛系统上发帖。刚开始,在网上找了好多,总是出现各种各样的问题,有的要注册,有的要收费,还有的在用的过程中不稳定,经常出现各种异常。浪费了一整天的时间,没有找到合适的,于是决定自己写一个。下面分享一个做的过程中遇到的一些问题,以及解决的方法。最后,我会把源码分享出来,希望能够对有需要的朋友有所帮助。

1. 准备工作

开始动手写程序之前,需要了解一下discuz发帖的基本原理。这里最好的方法就是用抓包工具来抓取浏览器发包时与web服务器之间的交互过程。可选的工具有Firebug和HttpWatch。Firebug是Firefox上专用的,是免费的,不过功能没有HttpWatch强大。HttpWatch是可以在IE和Firefox上用的,功能比较强大,但是收费的,不过网上应该能下到免费版的。我个人比较推荐使用功能强大的HttpWatch。 阅读全文…

做一个懒惰的程序员

2011年3月3日 3 条评论

首页声明一下,本文的作者不是我,是一位搞IT的同仁的写的,看了之后,深入感触,于是和大家分享一下,原文的地址是:http://blog.imalbert.com/archives/35.html,下面是原文:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(华丽丽滴分界线)

本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家。

从今天起,我要做一个懒惰的程序员。

第一 拒绝鼠标

从今天,我将拒绝鼠标。

鼠标,是鼠标手的根源,无数的程序员都被鼠标手所困扰,这似乎已经成为了程序人员的专利。我们养成了一个一个的“恶习”,比如,滥用鼠标右键刷新,看文档的时候,喜欢用鼠标来标记正在阅读的段落等等。这些非常规的使用使我们的手得了严重的疾病,我不知道,这样继续下去,当我们牙齿掉光的时候,是否还有能力抚摸妻子动人的面庞。

所以,我要从以下几个方面拒绝鼠标的诱惑:(虽然某些时候它真的很方便) 阅读全文…

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