Hunter的大杂烩 技术学习笔记

2006-05-17

Protected: 小肚鸡肠的淘宝

Filed under: 电子商务,闲聊 — hunter @ 5:53 pm

This content is password protected. To view it please enter your password below:

2006-05-09

升级到 Apache 2.0.44 & PHP 4.3.1[zt]

Filed under: Linux — hunter @ 12:23 pm

http://www.freelamp.com/1045669393/index_html

 

由于 FastCGI 针对 Apache 2.0 的版本迟迟没有推出, FreeLAMP.com 的 Apache 2.x 计划也因此一直推迟。
今晚终于抽出一点时间,升级了 Apache + FastCGI + PHP。 办法如下:
由于不喜欢使用缺省目录安装,这次终于在 Apache make 的时候出错了。
好在 Google 上一搜索就找到下面的结论:

(more…)

缓存友好的网页[zt]

Filed under: Linux — hunter @ 12:14 pm

翻译:ShiningRay @ Nirvana Studio

现在我们有很多HTTP缓存。他们存放你的页面多久呢?他们应该存放多久呢?RFC 2616(HTTP/1.1)指出了缓存必须遵循Expires和Cache-Control头——那么你的页面是否都有呢?

“在HTTP/1.1种的缓存的目的是为了在很多情况下消除发送请求的需要,同时在其他一些情况下消除发送完整的响应的需要。” RFC 2616

缓存友好页面的优点
“当缓存可以完全避免对原始服务器发送请求时,HTTP缓存的工作是最佳的。避免请求的主要机制是,针对原始服务器提供未来的一个确切的失效时间,表示一个响应可以被用来满足后续的请求。换句话说,一个缓存可以返回一个新的响应而不必先联系服务器。”RFC 2616

RFC写的时候是期望网页要包含失效期头的。如果谨慎地选择头中的失效时间,缓存可以不失去任何意义来提供存储了的页面。

当原始服务器不提供失效头时,缓存根据诸如“Last-Modified”之类的头来推断,猜测出一个合适的失效时间。与由了解页面内容以及更改频率的人设置的失效日期相比,推断的方法显然效率较低。

“由于推断的失效时间也许会降低语义透明度,应该被谨慎使用,同时我们鼓励原始服务器尽可能提供确切的失效时间。”RFC 2616

关于缓存的注意事项
HTTP/1.1标准(第13节)关于缓存有一个强制的要求:它要求他们提供语义的透明——返回一个缓存了的响应必须提供本来从原始服务器上获取的同样的数据;同时它提倡读取原始服务器和客户端所提供的新鲜度要求。

缓存必须传递由上游缓存或者是原始服务器提供的警告,而且如果提供了一个陈旧的响应,他们也必须加入警告。一个缓存可以在特定的情况下提供一个陈旧的响应,大部分情况下是如果缓存无法连接到原始服务器同时客户端声明它可以接受一个陈旧的响应。

如果一个缓存收到了针对一个陈旧页面的请求,它发送一个验证请求询问原始服务器页面是否已经更改。最常见的验证工具便是最后的更新时间。如果在一秒钟内存储了两次更改,Last-Modified将会不正确。因此,HTTP/1.1利用Entity Tag头提供了更加严格的验证。

最简便的协助缓存的方法是保持你的HTTP服务器上的时间精确且总是发送Date和Last-Modified头。

另外,要成为一个真正的缓存友好的站长,还要在你的页面中加入缓存头。

可用的缓存头
Expires头是最快捷最方便的解决方案。这个头声明了页面被认为不再可被缓存的时间,在这之后,任何保存了这个页面副本的缓存都应该联系原始服务器。语法是:

Expires:

例如:

Expires: Sun, 10 Feb 2002 16:00:00 GMT

若要标记一个响应为已经“已经过期”或者“不可缓存”,头则应该设置为发送响应的时间。若要标记一个响应为“永不过期”,则应该将头设置为未来的一年。

另一个头是Cache-Control。Cache-Control包括了这些元素:指明页面元素最大时限,他应该如何被缓存的,他如何被转换到另一个不同的媒介,以及他如何被存放在持久媒介中的。

本文使用Apache为例,设置头并在例子中详细讨论Cache-Control头。

在Apache中设置缓存头
主要的方法:Expires头
要使用Expires头,你需要运行在Apache 1.2或者更新的版本上,同时要启用 mod_expires 模块。去掉httpd.conf文件在“Dynamic Object Support”一节中的 expires_module 一行上的注释,然后重新编译Apache。

#

# Dynamic Shared Object (DSO) Support

#

# LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so

LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so

(如果你运行的是Apache 1.3或更新的版本,同时它已经配置为运行时加载模块,你可以编辑httpd.conf然后重新启动Apache而无需重新编译。)

mod_expires 基于三条指令来计算Expires头。这些指令可以应用于文档范围同时也可以在任何以下范围内使用:“server config”、“virutal host”、“directory”、或者“.htaccess”。

Expires指令有两种语法。其中一个有点难以阅读;它要你计算到失效为止用的秒数。幸运的是,这个模块同样可以读取一个更加人性化的语法。本文将解释较为可读的语法。

要用到的指令是:

ExpiresActive on|off

ExpiresDefault “ [plus] { }*”

ExpiresByType type/encoding “ [plus] { }*”

base 可以是以下其中之一:

access

now (等同于“access”)

modification

num 是一个整数值,单位是 type :

years

months

weeks

days

hours

minutes

seconds

如果你准备对一个服务器、虚拟主机或者是目录使用Expires指令,编辑 httpd.conf 文件并在所需的范围内加入以下指令。

# 包括任何其他你想要加入这一节的东西

ExpiresActive on

ExpiresByType image/gif “access plus 1 year”

ExpiresByType text/html “modification plus 2 days”

# ExpiresDefault “now plus 0 seconds”

ExpiresDefault “now plus 1 month”

如果你要在 .htaccess 文件中使用Expires头,那么你要先编辑httpd.conf 设置相应的目录的AllowOverride。Apache只会读取设置了“Indexes”覆盖的目录中的 .htaccess 。

# 针对使用.htaccess的目录,允许Indexes覆盖

# 包括任何其他你想要加入这一节的东西

AllowOverride Indexes

在相应目录里的 .htaccess 文件中加入Expires指令。站长可以编辑 .htaccess 文件而无需修改httpd.conf。

“.htaccess”方法的主要问题是Indexes覆盖,这样.htaccess 文件将给予站长更多的配置选项而非仅仅Expires头。这也许并不是系统管理员所期望的。

候选方法:Cache-Control 头
mod_cern_meta 允许文件级的控制,同时它也可以使用Cache-Control头(或任何其他头)。响应头是放在原始目录的子目录中,根据原始文件名所命名的一个文件。

去掉cern_meta_module 一行的注释并重新编译,和上一节中对expires_module 的一样。

在httpd.conf 文件中,打开MetaFiles on,将 MetaDirectory 设置为子目录名,同时把MetaSuffix设为头的文件的后缀名。

MetaFiles on

MetaDirectory .web

MetaSuffix .meta

使用这些值的话,文件 /var/www/www.example.org/index.html 将会以 /var/www/www.example.org/.web/index.html.meta. 为元文件。

任何有效的HTTP头都可以放在这些文件中。这提供了另一种使用Expires头的方式,同时它可以加入Cache-Control头。相应的Cache-Control头如下:

Cache-Control : max-age = [delta-seconds]

修改失效机制,将覆盖Expires头。Max-age隐含了Canche-Control: public。

Cache-Control : public

表示对象可以被存在缓存中。这是默认值。

Cache-Control : private

Cache-Control : private = [field-name]

表示对象(或指定字段)不能被保存在一个共享的缓存中同时是针对一个单独的用户的。它可以被保存在一个私有的缓存中。

Cache-Control : no-cache

Cache-Control : no-cache = [field-name]

表示对象(或者指定字段)可以被缓存,但不能直接给客户除非经过原始服务器的重新验证。

Cache-Control : no-store

表示条目不能存储在持久的存储媒介中,同时应该尽可能快地从非未定存储媒介中删除。

Cache-Control : no-transform

代理可以将数据从一个存储系统中转换到另外一个。这个指令表示(大多数)响应不能被转换。(RFC允许某些字段的转换,即使存在这个头)

Cache-Control : must-revalidate

Cache-Control : proxy-revalidate

强制代理重新验证该页面即使客户可以接受一个陈旧的响应。请在使用这些头之前阅读RFC,关于他们的使用有一些限制。

警告
HTTP/1.0有一个很小的缓存控制机制,仅能理解Pragma: no-cache头。使用HTTP/1.0的缓存将忽略Expires和Cache-Control头。

任何一个Cache-Control指令都不能保证隐私性或者数据的安全性。“private”和“no-store”指令可以为隐私性和安全性方面提供一些帮助,但是他们并不能用于替代身份验证和加密。

本文不能代替RFC。如果你要实现Cache-Control头,请阅读RFC来获取每个头的含义和限制的详细描述。

最后的话
缓存是Internet的现实问题同时它能让带宽的使用更加有效。你的客户也许是通过一个缓存来浏览你的页面的,有时候还会用多个缓存。给你的页面加上缓存头可以保护你的页面内容也可以让你的客户节省他们的带宽。

进一步阅读
RFC 2616:

第 13 节 (缓存)

第 14.9 节 (Cache-Control 头)

第 14.21 节 (Expires 头)

第 14.32 节 (Pragma: no-cache)如果你是与HTTP/1.0缓存交互的话这很重要

第 14.29 节 (Last-Modified) 是最常见的检验手段

第 3.11 节 (Entity Tags) 涵盖了额外的检验手段

Apache 用户手册: http://httpd.apache.org/

http://apache-server.com/tutorials/ATusing-htaccess.html

你的Web服务器的用户手册

Jennifer Vesperman 是《Essential CVS》一书的作者。她为O’Reilly Network、Linux Documentation Project撰稿,有时也为Linux.com。

2006-05-07

怎 样 活 到 100 岁[转]

Filed under: 闲聊 — hunter @ 12:08 am
怎 样 活 到 100 岁
——洪昭光教授谈生活方式与健康洪昭光档案
洪昭光教授、研究员、主任医师曾任北京安贞医院副院长,第二、三届中华心血管病学会委员,第三、四届《中华心血管病》杂志编委。现为卫生部全国心血管病防治科研领导小组副组长、中国高血压联盟常务理事、北京安贞医院心血管病专家,兼任《心肺血管病》、《健康》等杂志编委。曾与他人合作研制成功“北京降压0号”、“溃疡合剂”,获得多项科研成果奖,参加主编《实用高血压学》等著作,发表论文70余篇。近年来,在多种媒体开展健康科普讲座,是目前国内大众健康科普教育的倡导者和推广者。
著名心血管病专家洪昭光教授曾在多个场合作过关于生活方式与健康的关系的讲座,受到广泛的关注和好评。一些媒体也摘登过其中部分内容。

病越来越多,决不是由于物质文明丰富了,收入多了钱多了,是由于卫生保健知识没跟上。
我谈的是关于“生活方式与健康、老龄化和心血管病”的问题。
按照世界卫生组织的定义:65岁以前算中年人,65岁至74岁算青年老年人,75岁至90岁才算正式老年人。那么,人的生理寿命应该是多大岁数呢?按照生理学的原理,哺乳动物的寿命是其生长期的5倍至7倍,人的生长期是用最后一颗牙齿长出来的时间(20至25岁)来计算。因此,人的寿命最短是100岁,最长是175岁,公认的人的正常寿命应该是120岁。120岁的人生,应该怎样度过呢?在120岁当中,健康的70岁、80岁、90岁和100岁都不是梦。人人都应该健康100岁,这是正常的生活规律。
可现在的情况呢?照理应该平均活到120岁,但是实际上人们的平均寿命却只有70岁,整整少活了50岁。本该70、80、90岁时都很健康,但是好多人40多岁就不健康了,50多岁患冠心病,60多岁都死了,得病也整整提前50年。提前得病、提前残疾、提前死亡,已成为当今社会普遍现象。我在北京调查,发现小学生已经有了高血压,中学生开始动脉硬化了,这就是我们今天要讨论的所在。我们的经济发展了,钱多了,物质生活水平提高了,反而死得更早了呢?
有人以为,现在心脑血管病多、肿瘤多、糖尿病多,都是因为经济发达了生活富裕造成的。错了,完全错了。我认为,这些病并不是因为物质文明提高了造成的,而是因为精神文明不足、健康知识缺乏而产生的。美国的经验表明:白人和黑人相比,白人钱多,物质生活好,但是白人高血压、冠心病、肿瘤明显比黑人要少,寿命要更长;美国白领地位高,收入也高,可是他们各种疾病远远低于蓝领,寿命也长。为什么呢?因为白领受到较好的健康教育,精神文明、卫生知识、自我保健意识高。因此,如今我们得病越来越多,并不是因为物质文明好,而是因为精神文明不足,一手硬一手软。如果我们提高了卫生保健知识,那么我们就可以在经济发达的同时更健康,而不是病更多。
所以,首先要跟大家讲清楚,病越来越多,决不是由于物质文明丰富了,收入多了钱多了,是由于卫生保健知识没跟上。
现在影响我们身体健康的主要是什么病呢?心血管病是第一位的。去年全世界死于新老心血管病的有1530万人,占总死亡人数的四分之一,心血管病已成全世界最大的疾病。世界卫生组织总干事讲过,只要采取预防措施就能减少一半的死亡。也就是说,有一半的死亡是完全可以预防的。因此,钟道恒博士说过一句话:许多人不是死于疾病,而是死于无知。其再三告诫:不要死于愚昧,不要死于无知。因为很多病是可以不让它发生,是可以避免死亡的。举个例子:有位同志,他得了冠心病,就一定要避免着急和突然地用力。
有一回,他去搬书,书很重。本来,他一回搬两三本书,一点事也没有。他却一回搬一摞书,一使劲,心跳当即停止了。经过全力抢救以后,心脏跳动了,可脑子死亡了,变成了植物人,医药费花了150万元。如果他受过健康教育,知道自己的病不能憋气不能突然用力,一回只能搬两三本书,而不去搬一摞书,就不会变成植物人,就不会一个人花150万元医药费。另外,计划经济时代有位北京同志,在11月1日买了许多白菜回家放在墙根。3日下了一场雪,他怕冻坏了,于是从三楼下来搬白菜。白菜一颗好几斤,第一次搬了三颗,从楼底搬到三楼阳台,第二次又搬了三颗白菜,第三次搬了七颗白菜,50斤重。可是,他平常不干活,现在一下子上下三楼,累得直喘,越喘越厉害,咳嗽吐痰,吐血吐痰。他知道不行,上医院吧!一到我们安贞医院,一看不得了,是急性心肌梗死,急性左心衰竭,赶紧抢救,打上一针,这一针0.1克15000元钱。大家知道,金子1克才100元钱,0.1克才10元钱,这个药0.1克就要15000元。当然,药挺好,打进去之后就化开了。最后一共花了6万元钱,治好了病。可一想,当时100斤白菜12元钱,50斤白菜才6元钱,为了抢救这6元钱的白菜花掉了6万元的医药费,命差一点没了。要是他接受过健康教育,要是知道这种事,就不会这样了。平常不太活动的 人,不要突然之间干重活,就可避免这种事了。

高科技远不如简单预防。注意“三个半分钟”和“三个半小时”两句话,不花一分钱却可以少死许多人。
我们科学家还经常强调一句话:老年人要注意“三个半分钟”和“三个半小时”。“三个半分钟”是一句话,注意这一点,不花一分钱却可以少死多少人啊!很多人白天还好好的,晚上死了。咦?昨天我还见他,怎么就死了呢?原来,他夜里起床上厕所太快了,突然起床,一下子脑缺血,体位性低血压,脑缺血旋转摔倒,心跳骤停。那么,科学家是怎么提出这“三个半分钟”的呢?科学家在遥控心电图监测时,发现很多人白天心电图正常,晚上突然心肌缺血,提前收缩。
是什么道理呢?因为,他突然一起床,一下子血压低了,脑缺血使心脏停跳。为此,科学家提出了“三个半分钟”,即醒过来不要马上起床,在床上躺半分钟;坐起来再等半分钟;两条腿垂在床沿又等半分钟。经过这三个半分钟,不花一分钱,脑缺血没有了,心脏很安全,减少了很多不必要的瘁死、不必要的心肌梗塞、不必要的脑中风。有一次我们讲完课,有位老干部大哭,我问:“你哭什么呢?”他非常伤心地回答道:“我就是两年前夜里上厕所,上得快了一点、上得猛了一点,头晕,结果第二天半身不遂,整整在床上躺了8个月,背上长起了褥疮,儿子都不孝顺了。我早听这堂课,就不至于半身不遂了。
早知道三个半分钟,我哪至于受8个月的罪。”“三个半小时”,就是早上起来运动半小时,打打太极拳,跑跑步,但不能少于三公里,或者进行其他运动,但要因人而异,运动适量。其次,中午睡半小时,这是人生物钟的需要,中午睡半小时,下午上班精力特别充沛。老年人更是需要补充睡眠,因为老年人睡得早,起得早,中午非常需要休息。三是晚上6至7时慢步行走半小时,有助于老年人晚上睡得香,可减少心肌梗塞、高血压发病率。
健康教育就是用一些很简单的办法,预防很多重要的病。现在有人讲现代科学发达了,希望治病用高科技行不行?高科技好是好,但代价太高,而且只为少数人服务。比如说心脏移植,全国第一例成功的例子是在我们安贞医院做的。心脏移植以后,病人活了214天,花了20多万元,每天1000多块钱,打一针就1500块钱,太贵了。而且心脏很复杂,搭桥还要放支架。如今治冠心病,可以用根导管,再放两个架子,好倒是好,可这个支架直径3厘米,内径3毫米,重量不到0.5克,多少钱呢?25000元。一次放二、三个,再搭一根导管,要18000元,用一次就扔了。做一回得5万、7万、10万元,而且高科技不可能使人恢复到原来没有病的状态,仍然不如不得病好。其实,我们控制高血压,很简单,一天一片药,减少脑溢血。真正得脑溢血,是要开颅打洞抽血的,就算活了也是半身不遂,如果你不得 脑溢血那该多好啊!我们医院有个同志高血压12年。他的血压很奇怪,200mmHg不难受,可一吃降压药倒很难受了,所以他老不吃药。他打听了两位医生,一位医生说你必须吃药。一位医生说你既然吃药难受,就别吃药吧。他就不吃了。
12年下来,动脉硬化,尿毒症,这可不得了,要做透析,一个星期抽三次血。一年花9万元钱,过了10年,花了90万元钱。他爱人为他请10年假,他自己整天坐在轮椅上,活不活死不死,浮肿贫血,最后也死了。其实,一天一片药,三毛钱就管用了,但他没有按照科学的方法,结果就花了90万元。其实预防很简单,又能减少很多人得病,减少很多人出意外,从这方面来讲,高科技远远不如预防好。
坚持文明健康的生活方式,就可以少得病。我们的观念必须转变,从治病转到预防上。有专家测算,心血管病预防花上1元钱,医疗费就能省100元。
所以,这里要谈到一个很重要的东西,就是观念问题,我们的观念必须转变,什么叫观念转变呢?我们要充分认识到,现在这么多各种各样的病,归根到底就是生活方式不文明造成的。如果我们坚持文明健康的生活方式,就可以少得病。一共就四句话十六个字:合理膳食,适量运动,戒烟限酒,心理平衡。这四句话十六个字,能使高血压减少55%,脑猝中风、冠心病减少75%,糖尿病减少50%,肿瘤减少1/3。平均寿命延长10年以上,而且不花什么钱。健康方式很简单,效果却非常大!
为什么观念要转变呢?
我在1981年去美国,1983年专搞预防医学研究,导师是非常有名的斯丹姆教授,世界上的权威。他带我到一个社区,参加美国芝加哥西方电器公司的一个午餐会。老板说今天开会给55岁至65岁退下来的、这10年当中不得病的人发奖。一个人发一件T恤衫,一个网球拍,还有一个大信封,里面装一张支票,是象征性的少量奖金。啊!大家鼓掌,都很高兴。我回去一想,美国这个企业家太聪明了,因为他的工人10年不得病、不花钱,可以省几百万元医药费,你才给他一件T恤、一个网球拍。他的公司里设有游泳池、健身房、网球场,鼓励大家运动,大家都不得病,多好!
我回国后,到北京一看,我们的工会主席、支部书记一到过年过节,看的是老病号,病越重,越去看他。健康的人反而没人关心。我并不是说老病号不需要关心,不是这个意思。在我们这里,你10年不得病,那你干活去,谁理你。美国这个公司所关心的是这些健康的人,让大家健康,大家不得病。
在我们这里,恰恰是健康反而没人关心。你病重,倒有人看,长期病假,每到春节总有人看他。我们观念是重视医疗到位,就是说我们现在医疗费花去5万元、10万元没问题。我管的病房有的人一住就花几万元

 

在我国,医疗费花100万元没问题,但预防费却一分钱也没有。实际上有专家测算,心血管病预防花上1元钱,医疗费就能省100元钱。 我在北京农村搞过一个调查,有户农民一年收入20多万元,他很有钱,光过年给小孩买爆竹一花就2000多元钱。这么有钱的人,到他家一调查,全家7口人一把牙刷,他认为牙刷是多余的。结果这家7口人有4个得高血压。实际上口腔的健康可以减少很多病,如动脉硬化、心脏病。在国外,口腔健康被认为是第一重要的,世界卫生组织也非常重视口腔卫生健康。所以观念要转变,从治病转到预防上。
每个人表面看起来,好像差不多,其实有天壤之别,因为内因不同。比如同样是吃肥肉,“兔子型”的人胆固醇高,动脉硬化,就得了冠心病,而“鸭子型”的人却什么事也没有。
下面再说说动脉硬化、肿瘤、糖尿病究竟是怎么得的呢?得这些病有两个原因,一个是内因,一个是外因。内因就是遗传基因,外因就是环境因素。得病是内因和外因相互作用的结果。首先讲内因,内因是一种遗传倾向,比如爸爸高血压、妈妈高血压,生出来的小孩45%得高血压;如果爸爸、妈妈有一个得高血压,生出来的小孩28%得高血压;如果爸爸妈妈都很正常,孩子有没有高血压?也有,但只占3.5%。因为遗传是一种倾向。为什么有些人生出来胆固醇就高,刚刚生出来血压就高了,这就是遗传,遗传有一定的影响。遗传的影响,简单用一个例子来说明一下,小白兔该吃什么呢?本应该吃萝卜,但假如从今天开始让小兔子改吃鸡蛋黄拌猪油,蛋黄胆固醇高,猪油是动物脂肪,四个星期后兔子胆固醇增高,八个星期后兔子动脉硬化,十二个星期后兔子个个得了冠心病。
接着,我们换用北京鸭子做实验,也让它吃蛋黄拌猪油。结果很奇怪,鸭子天天吃胆固醇也不高,动脉也不硬化,更没有冠心病。哎!这就奇怪了,怎么兔子一吃就动脉硬化,鸭子就没有动脉硬化呢?道理很简单,兔子是兔子,鸭子是鸭子,遗传不同啊。人也是一样,为什么张三一吃肥肉胆固醇高,动脉就硬化,冠心病就来了,而李四天天吃肥肉,他什么事也没有,因为张三是兔子型的,李四是鸭子型的。鸭子型就没事,兔子型你就倒霉,先天你就倒霉。为什么有人吃得并不多,可就减肥减不下来,有人吃得很多就胖不了,就因为人的类型不同,有些东西遗传是100%,有些遗传是个倾向。高血压、冠心病的遗传是一个倾向。
人和人表面看起来,高矮差不多,胖瘦也差不多,长相都是人,好像也差不多,其实人和人有天壤之别。例如,我们说人生吧,风风雨雨,每个人都会遇到极不痛快的事,但是遇到生气着急不痛快的事, 但是遇到生气着急不痛快的事,张三一生气就心跳加快、血压高、脸红,气得哆嗦;李四一着急生气,心跳不快、血压不高,可是胃疼、胃穿孔、胃出血;王二一生气着急,得糖尿病了。第四个人生气着急,既不得心脏病也不得胃病,也不得糖尿病,但得了癌症。我们科有一个病人60多岁了,一辈子健康。有一天他回家,可不得了,原来他大儿子骑自行车从胡同里出去一拐弯,对面来辆大卡车一撞,把脖子掐断了,高位截瘫,就像桑兰一样。他到医院一看,儿子正抢救呢,身上插着七根管子,从鼻管、胃管到尿管,还有胳膊上到处都是。他儿子25岁正准备结婚,医生告诉他儿子将高位截瘫,今后大小便都成问题,不说结婚,工作也不成了,生活也不行,以后一辈子都要人伺候。医药费要多少钱呢?
3天1万块钱,可不得了!大儿子现在变成这么一个状况,今后一辈子谁管呢?怎么办呢?回去之后,他真是忧虑万分,不但吃不下饭,水都喝不下了。快上医院看,一拍片竟是食道癌,喉管上阻死了,赶快开刀,一开刀胃里还有两个疡。三个月前他还很健康,压力一来就忧虑,三个月两个部位三个癌。最后只能动手术,手术后他仍然忧虑,结果比儿子死得还早。对他来说,压力造成了癌症。第五个人也是遇到压力,变成精神分裂症。第六个人生气着急,却什么事也没有。都是生气着急遇到压力,有的人得了心脏病、糖尿病、溃疡病,有的人什么也没,因为人的承受能力不同、心理承受能力不同啊!
记得文化大革命期间,红卫兵每天一早第一件事就是揪斗走资派。有一个党委书记是个女同志,前前后后斗了100多次,剃光头“坐喷气式”。但是,这个女同志非常不简单,斗完了回家以后该吃饭吃饭,该睡觉睡觉,若无其事。我从心眼里佩服她,她不愧是真正的共产党员,是特殊材料制成的。过不了几天,又揪出护士长了,一个上海人、模范护士长,待病人如亲人,真是非常好。她有什么事呢?说她爸爸是历史反革命,跟她有什么关系呢,因为护士长特别孝顺,每个月给她爸爸寄20元钱,阶级阵线没划清楚。她是护士长,人非常好,可她没经过风雨见过世面,一听明天也得把她揪出来剃光头,可不得了,当时一恐惧,精神就崩溃了。与其明天这样受侮辱,还不如死了;死又没有地方死,最好的办法是放血,把动脉里的血放掉就完了,又怕把地弄脏了,怎么办呢?她找了一个塑料桶,用手术刀片,切手上动脉,两手的动脉都切断了,再将两手放在桶里放血,血放到一半,动脉痉挛,血出不来了,想死还死不了,怎么办呢?
天亮红卫兵又要来了,一咬牙她就从五楼跳了下来,头颅着地、粉碎性骨折,当时就死了。那个地方是我们上班必经之路,虽然尸体搬走了,但是一地脑浆一地血,惨不忍睹,谁见了都终生难忘。怎么人家被斗100多次,若无其事,明天才斗你,今天精神就崩溃了?这就是人和人不同,人和人心理承受能力、精神、性格、意志等各方面

 

2006-05-06

基于C++的AOP解决方案[转]

Filed under: C++ — hunter @ 10:37 pm

基于C++的AOP解决方案:

AspectC++ (http://www.aspectc.org/) is an aspect-oriented extension to the C++ programming language.

FeatureC++ (http://wwwiti.cs.uni-magdeburg.de/iti_db/fcc/) supports feature-oriented and aspect-oriented programming in C++. The highlight of FeatureC++ is the combination of FOP and AOP concepts.

XWeaver (http://xweaver.sf.net/) is an extensible, customizable and minimally intrusive aspect weaver for C/C++ — it generates source code which differs as little as possible from the base code (preserves layout and comments).

Powered by WordPress