宁静致远
百度空间 | 百度首页 
 
文章列表
 
2009-06-10 22:49
Google搜索一把你能找到一些关于事务文件系统的Java实现,而我选择的是Apache的commons-transaction,为什么?因为经验告诉我从 Apache Foundation诞生的软件都是相当优秀的,并且有很完备的文档。但是commons-transaction可能属于例外了,它没有完备的文档,本文就就简单的描述commons-transaction的用法。


1. 下载并安装Jakartu Commons-Transaction

如果使用Maven,在pom.xml文件中添加以下依赖即可

<dependency>
 
2008-12-23 23:08
本文较为详细的分析了Mathopd的启动过程。如果将此启动过程一般化,便可以作为我们开发Linux下服务器程序的蓝本。

要看Mathopd的启动过程,当然应先从main函数看起,看看做了哪几个大的步骤。如果你对本文感兴趣,阅读时最好参考源代码。

1. 处理命令行参数
2. 打开/dev/null设备
3. 读入配置信息(这很重要,我们以后将着重分析)
4. 启动配置文件中指定的所有服务器,并侦听连接
5. 根据配置信息设置根目录
6. 根据配置信息,设置程序运行的uid和gid。
7. 打开pid文件
8. 初始化日志模
 
2008-12-22 22:37
摘自《敏捷软件开发:原则、模式与实践》

重构就好比用餐后对厨房的清理工作。第一次你没有清理它,你用餐是会快一点。但是由于没有对盘碟和用餐环境进行清洁,第二次做准备工作的时间就要更长一些。这回再一次促使你放弃清洁工作。的确,如果跳过清洁工作,你今天总是能够很快用完餐,但是脏乱在一天天的积累。最终,你的花费大量的时间去寻找合适的烹饪器具,凿去盘碟上已经干硬的食物残余,并把它们洗擦干净以使他们适合于烹饪。饭是天天要吃的。忽略掉清洁工作并不能真正加快做饭速度。

重构的目的,是为了每天清
 
2008-12-21 19:32
分析源码的第一步便是要弄清整个系统设计结构,模块组成。

系统设计

Mathopd是一个单进程单线程的HTTP服务器程序。单进程单线的构建决定了其简单的设计结构。系统采用的是select多路复用,来处理并发连接。现在的Linux2.6内核支持epoll,它比select更高效。作者可能最初在2.4内核上开发,或是想保持和2.4内核的兼容性而采用了select。但作者对select进行了封装(参见poll-emul.c文件),使接口用起来像poll,这个封装方便了接口的使用。

Mathopd系统维护了4种连接队列
 
2008-12-14 20:35
Mathopd官网上对Mathopd这样介绍:Mathopd是Unix系统下,非常小,但非常快的HTTP服务器。

Mathopd的确是最轻量级HTTP服务器。源代码的压缩包只有59K,由10个.c文件组成。即使和lighttpd比起来也只能算是九牛一毛,更不必和Apache去比了。当然他没有Apache和lighttpd丰富的功能,不支持动态模块,不支持内容协商(content negotiation)。

现在我们来看看Mathopd支持什么?
1. 支持HTTP/1.1协议中一些非常有用的特性,如:持久连接(persistent connection
 
2008-11-10 22:19
上一篇文章我介绍了如何编写第一个Apache模块,也是最简单的模块mod_helloworld,这里我们要对mod_helloworld进行一些简单的扩展。

这里我们还是来举一个例子,这个例子做的事情会比上一篇文章中介绍的mod_helloworld模块做的事情要多,但编写模块的整体框架不变,我们只是在处理函数中多做了一些事情。

我们扩展的mod_helloworld模块功能要实现的是根据客户端请求从服务器本地读取文件内容然后反馈给客户端。

要实现这个功能,我们要用到request_rec数据结构中的filename字段,它表示了客户端请求文件的文
 
2008-11-08 14:20
自Apache2.0以来Apache就是一个开放的平台,开发人员可以轻松的为Apache编写模块。我下面要讲的例子是摘自Apache Modules Book一书。

mod_helloworld是一个内容生成模块(content generator),它及其简单,但是他却可以反映编写Apache模块的基本概念。在以后的博文中,我会扩展这个helloworld模块,让它可以像简单的CGI一样访问request header、环境变量、处理表单数据等等。不过现在让我们尽快的开始我们的helloworld吧。

安装Apache

要编写Apache模块首先肯定要
 
2008-10-23 22:56
1. 简介

在Apache2.1版本中引入了DBD 框架,DBD提供了一个统一的、抽象的数据库操作接口,封装了不同数据库之间的接口和实现差异。可以使我们很容易的编写跨数据库(coss-database)的程序。

2. 说明

本文的目的是简单的介绍如何在C开发的程序中开始使用DBD,而不具体介绍每个API的用法,所有接口的用法在DBD的接口文件apr-dbd.h中有详细的注释。

笔者所用的环境是:
ubuntu-8.0
 
2008-10-22 16:59
今天在写数据库脚本时使用了外关键字,运行时遇到两类错误,代码分别是121和150。我在Google了一下找到了解决方法。分别解释如下:

error 121

这是外关键字名字重复的错误,即使是在不同的表中,外关键字的名字也不能重复。

error 150

这类错误包括3种情况:
1. 外键和被引用外键类型不一样,比如integer和double
2. 找不到要被引用的列
3. 表的字符编码不一样
 
2008-10-19 22:55
今天在玩GAE的时候发现从db.Model派生的类不能有名字为app的属性。如:
class AccessList(db.Model):
    app = db.StringProperty(required=True)
    user = db.UserPropery()


如果有app这样的属性,GAE始终不会将AccessList加入到Datastore中,但GAE也不会给出任何错误消息。而且put操作始终会成功,并返回一个合法的key值,更奇怪的是根据这个key值还可以通过AccessList.get(key)访问到这样一条数据。

原因我不得而知,有知道原
 
     
 
留言板
 
21
深圳CS野战真人对抗拓展俱乐部13590142696陈生网址:http://www.csyz0755.com/
2009-06-15 07:48| 回复
 
20
找志同道合的朋友兼职业余时间赚钱,白手起家创业

生命如火一样自由燃烧-哪怕燃尽都要尽显激
一个在西安长大的湖南和江苏混合优良品种.
喜欢周游世界、喜欢吃美味.喜欢看美景, ,喜欢交益友,
喜欢开靓车、喜欢驾车去流浪.喜欢协助人成功后的成就感….
QQ:422733379
2009-01-04 16:51| 回复
 
19


                   圣 诞   快 乐

2008-12-25 12:15| 回复
 
18
中午好◢██████◣       ◢████
◢◤提钱来祝你 ◥◣    ◢◤ 要幸福 ◥◣
◤     圣诞 ◥◣  ◢◤       █
▎顶 顶◢ ◣快乐◥◣◢◤   ◢◣ 哦 
◣  ◢◤ ◥◣       ◢◣◥◣◢
◥██◤  ◢◤      踩        ◥◣
      █ ●       ●  █
      █ 〃   ▄   〃 █
      ◥◣   ╚╩╝   ◢◤
      ◥█▅▃▃ ▃▃▅█◤
      ◢◤   ◥◣
      █     █
      ◢◤   ◥◣
       ▃◣◢▅▅▅◣◢▃
2008-12-24 12:40| 回复
 
17
深圳CS野战真人对抗拓展俱乐部13590142696陈生网址:http://www.csyz0755.com/
2008-12-19 09:24| 回复
 
 
姓 名:    注册
网 址: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      
   
 
 
个人档案
 
lilee84
男, 25岁
广东 深圳 
上次登录:
3天前
加为好友
 
   
 
文章分类
 
 
 
Life(1)
 
Work(0)
 
 
 
 
Test(1)
 
 
 
 
Java(1)
 
     
 
最新照片
 
   
 
最近访客
 
 

ncuzy

张子歌

8939a

zhywjw

zjjwbjun

幽迪

木棉破点

冰空之记忆
     
 
订阅我的空间
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     


©2009 Baidu