Tip: 看不到本站引用 Flickr 的图片? 下载 Firefox Access Flickr 插件 | AD: 订阅 DBA notes -- ![]()
2008-07-13 Sun
学校教的有什么?理解和运用各科的知识,学会用理性的思维来思考、尖锐的眼光来看待问题,学会开拓思维,还有更多。但是下面这五项进入社会后必备的本领,你是否学会了呢?
-
个人理财
大约每过一个礼拜的光景,在CNN、USA Today或者Yahoo上就会有一篇关于年轻人陷入债务危机的报道,不论是信用卡还是一般的债务。高额的利息、隐藏在背后的费用、不巩固债务状况——大多数年轻人对于这些都缺乏了解,而正因为这样的无知,他们会在做出判断时犯下致命的错误。一个典型的例子就是他们认为他们总是只需支还基于他们负债上的很小一部分,而没有意识到这在长期将会使他们最终要支付的利息多过2~3倍。
除此之外,大多数年轻人不明白如何来将他们的钱用于投资,他们不知道Roth IRA是什么,也不知道401k是什么,也不知道复利的奇妙之处,同样不清楚购买某些汽车所能享受到的税费优惠,等等。在年轻人面对如何投资的问题时,他们所不了解的专业知识太多了,从而导致他们毫不谨慎地就把钱都花光了。
信用评价也是一个很重要的东西,很多年轻人都不在乎自己的信用评价是否存在问题。在现实社会中,信用评价就是你的报告单,当你要买车、第一次租公寓、或者甚至是找工作(大多数用人单位都通过信用评价来决定这个应聘者是否有责任心)的时候,它都会显得异常重要。你要不惜一切代价来保护它,你得清楚你的信用评价怎么上升、怎么下降,你得时不时的检查以保证没有错误。
甚至像做一个简单的预算这样基础的工作对于一些年轻人来说都是超出他们的能力范围的,而且我很惊讶的发现很多人从来不做这个工作,有些人甚至都不知道这个(我猜你也会吃惊的)。算出你的税后收入是多少,然后首先给你自己支付一定的报酬(这将是很大的一笔,很多人在支付完账单后很轻率的把剩余的钱都用完了),如果生活不太宽裕的话看看能节省些什么,同样也注意一下如果你需要其他收入的话可以做些什么,等等。
另一个有关个人理财的重要项目是那些无形的东西,像分清那些是必须的和想要的,可以晚些达到满意,对价值有一个深层次的认识。这些概念性的东西在课堂上是学不到的,只有在自我训练的过程中才能领悟到。
我们生活在一个物质社会中,而不幸的是很多年轻人在成长过程中都是先拥有智慧然后才慢慢懂得如何来用的——“如果我有__________,那么我会变得__________。”
你可以责备媒体,责备广告,或者是年轻人那种容易受蛊惑的心理,但是你还是会经常看到很多年轻人陷入这种心理,而这样的结果是自己被陷入不必要的堆积如山的债务当中。
我想对学生们指出的一点是随着你年龄的增长,你们会发现很多人看上去很成功,并不是所有人都是这样的,但会有相当一部分。你的那些拥有一辆豪华的车或是衣着光鲜邻居或是同事很有可能是深陷债务泥沼,而那些车子和衣着都普普通通的却很少有或是没有债务,相反的有着一大笔的存款。
令人感到讽刺而又悲哀的是大多数人并不关心别人,因为他们都忙于自己的事,因此所有为了引起别人注意而做的努力都是徒劳,通过不断购买奢侈品来达到自我感觉良好的内在危险在于你在暗示自己你需要一些外部的东西来证明自己,而事实上你所需的用来证明自己的都存在于你的内心。因此不要再去寻求外部的东西了,因为如果你要买的话,总会有更好、更新的东西的,就好像一只狗去咬自己的尾巴一样,永无止境的。学着让生活简单而安逸,感激你所拥有的东西,不要陷入物质攀比之中,因为你一旦陷了进去就很难再爬出来了。
拓展阅读:《8招防止冲动性消费》、《关于理财的25个误区》
-
有效沟通
谈论这点的时候,我不是要说讲座或是演讲之类的,虽然这些肯定是属于这一点的。我主要要讲的是弄清楚你想要表达的是什么并把它用文字表述出来,这样别人就能够在第一次就明白你要讲的是什么。
我知道这听上去挺容易,但是我敢肯定你在单位中遇到过一些人,他们在和你讲话之前不做准备,讲话总是不入主题,浪费你的时间,这时你要对他们说的只是:“你能花一些时间想清楚你到底想要表达的是什么,然后再回来告诉我行吗?”
有效沟通是最被忽视却是你能培养的最有用的本领。
有效沟通最关键的是在于事前准备你想要说的是什么,这得简单明了,我的重点是什么,并准备一个好的例子。
你在实现有效沟通时最有用的三个字是:“比如说”。如果你发现别人的脸上出现了费解的神情,你最好的回应就是这三个字:比如说。如果你这样做了,并附以一个相关的例子来说明,别人会对于你所讲的有一个框架认识,并能够更好的理解那是什么。
有效沟通是最容易被忽视的,也是一个人能够拥有的最有价值的本领之一。从我个人的角度来说,如果和一个花时间准备自己的观点并用清楚的例子加以说明的人打交道是一件再好不过的事情了。但是现如今,有这项本领的人已经很少了。
-
社交本领
一般意义上来讲,社交本领就是紧密并有效的保持交流。当你毕业之后,你所要面对的就不再是你的中学同学或是哥们了。
你将要面对的是有着各种背景的,可能是来自不同国家的,更重要的一点是不同年龄段的人群,因此学习怎样同你自己圈子以外的人打交道将是很明智的选择。
- 别说俚语。学着尊重你的外国客户,学会倾听(现在很少有人这样),知道什么时候该讲话,什么时候不该(提示:你有两只耳朵一只嘴,因此这样做是理所当然的)。
- 建立亲善的形象。学习建立人际网的艺术——这是十分重要的。建立人际网是很重要的一项本领,在学校里你是学不到的。学着恭维,学着合群,学着说些应酬话。
- 学会接近别人。这是另一项重要的本领。很多人没有胆量在初次见面的时候做自我介绍。做个勇敢的人,踏出第一步,学会让别人觉得你这个人不错。
拓展阅读:《建立人际关系的七要素》
-
推销
很明显我要提倡的不是让学生毕业之后去当一名推销员,而是去学习推销的艺术。如果你细细思考这个词,你会发现我们每天都在做着推销的工作。我们向我们的老板推销我们的想法,在有好点子的时候向朋友们推销周末的娱乐项目,在面试的时候推销自己。
你可以说推销是社交本领和有效沟通的完美结合,但是如果掌握了其他的一些东西,会让你的推销更有效的:
- 倾听,是真的倾听、主动的倾听;拓展阅读:《倾听的艺术》
- 学习如何让自己有说服力;拓展阅读:《如何成为一名说服大师》
- 让自己有鼓动性;
- 事先设想可能会遇到的困难并在之前就解决它们;
- 强调利益而不是特点;
- 倾听别人(我知道这是重复的,但我只是想强调这一点);
- 培养设身处地为他人着想的能力;
- 从你能够怎么样来服务他人的角度思考问题。
推销是仅有的几个在任何职业中都有用的本领之一,是你能够培养的最有用的跨职业适用的本领之一。
拓展阅读:《通过有效的自我推销获取成功》
-
时间管理
要说还有别的能在任何职业中都有用的本领,那就是时间管理了。大多数学生在学校中从没有真正认识到时间的价值,更不用说来管理了,拖拉现象太过泛滥了(在上课前的几分钟才开始预习,在要交作业或是论文的那天才匆匆赶任务,在考试的前一天晚上还开派对)。这种拖拖拉拉的习惯经常会带到他们成年的生活当中去,成为了一项重要的不足。
学着制作一张计划表,学会区分哪些事情需要优先去做,学会把一项任务分解到30分钟内的每一分钟都需要做些什么,学会区分哪些事情有可操作性。David Allen的GTD系统等等其他时间管理方法都将会给你很大的帮助。
拓展阅读:《褪墨GTD资源汇总》
-
补充一点——健康
仅仅让学生跑个一英里然后做一些体育运动是不够的,这方面的教育是前所未有的重要的。学生们应该被告知过多食用快餐食品的危害、哪些食物的糖类和脂肪含量对人体会产生影响、合理营养、有规律进行运动的重要性等等。
我想如果你在离开学校前,学会了这些东西。当你踏入社会后,就可以少走很多弯路。如果你有朋友或者是亲戚还是学生的话,请让他们来读一读这篇文章,就把这篇文章看作是带入现实社会的一本备忘录吧。你讲会给他们带来莫大的帮助,我敢保证他们也肯定会在毕业之后对你表示感谢的。
原文:Top 5 Things That Should Be Taught In Every School
译者:闲人莫入
褪墨|时间管理 - 弥缝
褪墨是一个关注时间管理、个人提升和演讲技巧的博客。想提高自己?为什么不来褪墨看看呢~
一.客户段的load balance + TAF
sword =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hack1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack2-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack3-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack4-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(FAILOVER = ON)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sword.db.alibaba.com)
(FAILOVER_MODE =
(TYPE = SESSION)
(METHOD = BASIC)
)
)
)
LOAD_BALANCE = yes表示程序走sword连接的时候,将在下面4个地址里面随机的选择一个,达到接点间连接均匀
failover表示开启TAF(Transparent Application Failover)特性,其中TYPE = SESSION表示当一个连接好的会话
的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话正在执行的SQL
需要重新执行,METHOD = BASIC表示初始连接就连接一个接点,他还有个选项是preconnect,表示初始连接所有的
接点,在failover的时候可以很快就切过去,这个基本是资源浪费
二.服务器端的负载平衡
1.listener.ora文件里面配置
LISTENER_SWORD_HACK<n> =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack<n>-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack<n>-priv)(PORT = 1521)(IP = FIRST))
)
)
2.tnsnames.ora文件里面加入
LISTENERS_SWORD =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hack1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack2-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack3-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = hack4-vip)(PORT = 1521))
)
3.各个实例修改remote_listener参数
alter system set REMOTE_LISTENER = ‘LISTENERS_SWORD’ scope=both sid=’sword1′;
alter system set REMOTE_LISTENER = ‘LISTENERS_SWORD’ scope=both sid=’sword2′;
alter system set REMOTE_LISTENER = ‘LISTENERS_SWORD’ scope=both sid=’sword3′;
alter system set REMOTE_LISTENER = ‘LISTENERS_SWORD’ scope=both sid=’sword4′;
服务器段的负载均衡主要是通过REMOTE_LISTENER参数控制的,在连接被定位到某个接点后,系统会根据REMOTE_LISTENER
考虑多个接点的负载(主机load是个很重要的参考标准),把连接再次分发出去,这个和客户段的load balance是可以结合
在一起混合使用的,互不干扰
三.连接RAC数据库
[oracle@hack2 admin]$ sqlplus system/sg6n9ol0ij117@sword
SQL*Plus: Release 11.1.0.6.0 - Production on Mon Jul 14 10:29:33 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Enter password:
ERROR:
ORA-12520: TNS:listener could not find available handler for requested type of server
如果出现ORA-12520错误,应该是oracle的BUG,解决方法是加入local_listener参数控制各个接点service的注册
1.tnsnames.ora文件添加
LISTENER_HACK1 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hack1-vip)(PORT =1521))
)
LISTENER_HACK2 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hack2-vip)(PORT =1521))
)
LISTENER_HACK3 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hack3-vip)(PORT =1521))
)
LISTENER_HACK4 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hack4-vip)(PORT =1521))
)
2.修改各个接点的local_listener参数
alter system set LOCAL_LISTENER = ‘LISTENER_HACK1′ scope=both sid=’sword1′;
alter system set LOCAL_LISTENER = ‘LISTENER_HACK2′ scope=both sid=’sword2′;
alter system set LOCAL_LISTENER = ‘LISTENER_HACK3′ scope=both sid=’sword3′;
alter system set LOCAL_LISTENER = ‘LISTENER_HACK4′ scope=both sid=’sword4′;
3.重新启动listener
lsnrctl start LISTENER_SWORD_HACK<n>
4.连接
[oracle@hack2 admin]$ sqlplus system/sg6n9ol0ij117@sword
SQL*Plus: Release 11.1.0.6.0 - Production on Mon Jul 14 11:50:52 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters and Real Application Testing options
SQL> show user
USER is “SYSTEM”
错误详细信息请参考metalink Note:342419.1
在7月号的程序员杂志上刊登了一篇Donald Knuth的访谈录,其中关于并行与串行,单线程以及多线程的探讨颇引起了我的兴趣,程序员网站上提供了部分中文版译文,英文在这里。学习且记录一下。
首先是Andrew的提问:
Andrew: One of the emerging problems for developers, especially client-side developers, is changing their thinking to write programs in terms of threads. This concern, driven by the advent of inexpensive multicore PCs, surely will require that many algorithms be recast for multithreading, or at least to be thread-safe. So far, much of the work you've published for Volume 4 of The Art of Computer Programming (TAOCP) doesn't seem to touch on this dimension. Do you expect to enter into problems of concurrency and parallel programming in upcoming work, especially since it would seem to be a natural fit with the combinatorial topics you're currently working on?
Andrew:对于开发者,尤其是客户端开发者,正在面临一个日渐明显的问题,即改变他们的思考方式,从线程的角度去编写程序。这个问题是由廉价的多核PC的出现导致的。它一定需要很多算法进行多线程化的改造,至少也需要做到线程安全的。到目前为止,从你已经发布的《计算加程序设计的艺术》(TAOCP)第4卷的大部分内容来看,还没有涉及到这方面内容。你接下来的工作会和并发与并行程序设计有关么?尤其是这个问题天生就与你现在研究的组合算法非常适合。
Donald: The field of combinatorial algorithms is so vast that I'll be lucky to pack its sequential aspects into three or four physical volumes, and I don't think the sequential methods are ever going to be unimportant. Conversely, the half-life of parallel techniques is very short, because hardware changes rapidly and each new machine needs a somewhat different approach. So I decided long ago to stick to what I know best. Other people understand parallel machines much better than I do; programmers should listen to them, not me, for guidance on how to deal with simultaneity.
Donald:组合算法的研究领域非常庞杂,而我将有幸在三或四卷书中介绍它串行方面的内容,我认为串行方法的重要性不会降低。相反,并行技术的"半衰期"其实非常短,因为硬件总在快速地变化,每一个新的机器都需要一些不同的方法。所以,很久以前我就决定在书中保留我最了解的内容。有很多人比我更了解并行机器,他们可以指导你如何面对同时性的问题;程序员应该听听他们的建议,而不是我的。
Andrew: Vendors of multicore processors have expressed frustration at the difficulty of moving developers to this model. As a former professor, what thoughts do you have on this transition and how to make it happen? Is it a question of proper tools, such as better native support for concurrency in languages, or of execution frameworks? Or are there other solutions?
Andrew:很多多核处理器的供应商都在帮助开发者转移到多核模型的过程中,表现得力不从心。做为一名著名的教授,你对于这种转变有什么看法?什么因素才能促使这种转变?如果有更好的工具可以解决问题么,比如在语言中加入对并发更好的本地支持,或者使用框架?或者还有其他的方案么?
Donald: I don't want to duck your question entirely. I might as well flame a bit about my personal unhappiness with the current trend toward multicore architecture. To me, it looks more or less like the hardware designers have run out of ideas, and that they're trying to pass the blame for the future demise of Moore's Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won't be surprised at all if the whole multithreading idea turns out to be a flop, worse than the "Itanium" approach that was supposed to be so terrific--until it turned out that the wished-for compilers were basically impossible to write.
Donald:我不想回避你的问题。也许我个人的一些观点会为当前流行的多核架构趋势泼一盆冷水。在我看来,这种现象或多或少是由于硬件设计者已经无计可施了导致的,他们将Moore定律失效的责任推脱给软件开发者,而他们给我们的机器只是在某些指标上运行得更快了而已。如果多线程的想法被证明是失败的,我一点都不会感到惊讶,也许这比当年的Itanium还要糟糕----人们基本上无法开发出它所需要的编译器。
Let me put it this way: During the past 50 years, I've written well over a thousand programs, many of which have substantial size. I can't think of even five of those programs that would have been enhanced noticeably by parallelism or multithreading. Surely, for example, multiple processors are no help to TeX.[1]
这么说吧:在过去的50年间,我编写过一千多个程序,其中有很多规模都很可观。但是如果说哪些程序的性能可以在并行或多核环境下有明显的改进,我恐怕连五个都说不来。比如,多核处理器对TeX肯定没有什么帮助。
How many programmers do you know who are enthusiastic about these promised machines of the future? I hear almost nothing but grief from software people, although the hardware folks in our department assure me that I'm wrong.
你听说过有多少程序员对这种未来一片光明的机器抱有强烈的兴趣?我几乎没有听说过,除了他们的诉苦。尽管我们学院那些搞硬件的家伙一直想让我相信我是错的。
I know that important applications for parallelism exist--rendering graphics, breaking codes, scanning images, simulating physical and biological processes, etc. But all these applications require dedicated code and special-purpose techniques, which will need to be changed substantially every few years.
我知道有很多重要的应用依赖于并行----图形渲染、密码破解、图像扫描、物理与生物过程模拟等等。但是这些应用需要非常专业的代码以及特定用途的技术,而这些技术无疑每隔若干年都要变化。
Even if I knew enough about such methods to write about them in TAOCP, my time would be largely wasted, because soon there would be little reason for anybody to read those parts. (Similarly, when I prepare the third edition of Volume 3 I plan to rip out much of the material about how to sort on magnetic tapes. That stuff was once one of the hottest topics in the whole software field, but now it largely wastes paper when the book is printed.)
即使我对那些方法非常了解,可以把它们写入TAOCP中,这对于我的时间也是巨大的浪费,因为过不了多久,这部分内容就没有什么价值值得别人去读它了。(类似地,当我在准备第3卷的第三版时,也打算删除掉关于如何在磁带上排序的内容。这些内容曾经是软件领域里最热门的主题,现在再把它印在书中就是巨大的浪费了。)
The machine I use today has dual processors. I get to use them both only when I'm running two independent jobs at the same time; that's nice, but it happens only a few minutes every week. If I had four processors, or eight, or more, I still wouldn't be any better off, considering the kind of work I do--even though I'm using my computer almost every day during most of the day. So why should I be so happy about the future that hardware vendors promise? They think a magic bullet will come along to make multicores speed up my kind of work; I think it's a pipe dream. (No--that's the wrong metaphor! "Pipelines" actually work for me, but threads don't. Maybe the word I want is "bubble.")
我今天所用的机器有两个处理器。而我只有在同时运行两个独立的作业时,才会用到这两个处理器;这样很好,不过每周这种情况只会发生几分钟而已。如果我有四个、八个甚至更多的处理器,我同样得不到任何好处,想一想我是做什么的----我几乎每天每时每刻都在使用计算机。所以,我为什么要为硬件供应商承诺的未来而高兴?他们认为多核的到来可以为我的工作提速,我认为这是"白日梦"(pipe dream)。(不----这个比喻不准确!我是会用"Pipeline"的,但是不会用线程。也许我应该说这是个"泡影(bubble)")
From the opposite point of view, I do grant that web browsing probably will get better with multicores. I've been talking about my technical work, however, not recreation. I also admit that I haven't got many bright ideas about what I wish hardware designers would provide instead of multicores, now that they've begun to hit a wall with respect to sequential computation. (But my MMIX design contains several ideas that would substantially improve the current performance of the kinds of programs that concern me most--at the cost of incompatibility with legacy x86 programs.)
不过,我认为Web浏览器可能会由于多核的出现而有所改变。我是从技术性的工作,而不是消遣的角度在说。我也承认我还没有什么很好的想法,到底硬件设计者应该给我们除多核以外什么样的产品,不过他们现在在串行计算上的确遇到了麻烦。(但是我的MMIX设计中包含了很多考量,可以有效地提高我最关注的一些程序当前的性能----代价是与遗留的x86程序无法兼容。)
相关文章|Related Articles
评论数量(0)|Add Comments
本文网址:http://www.eygle.com/archives/2008/07/donald_knuth.html
炎炎夏日来临了,太阳镜是必备的耍酷和遮阳的工具,但是你是否会挑选合适的太阳镜呢?
- 你是否注意过太阳镜上的UV指数?
- 你是否注意过太阳镜上的安全性能标识?
- 你是否注意过镜片颜色的深浅?
- 你是否明确了自己购买太阳镜的目的?
恐怕到现在为止你也只是在眼镜店里挑一副“好看的”太阳镜戴着吧?
真想要达到遮阳的目的,还请大家注意太阳镜的下面几个细节。
1、明确自己选购太阳镜的目的
目前在市场销售的太阳镜主要有二种类别,一类是“遮阳镜”,人在阳光下通常要靠调节瞳孔大小来调节光通量,当光线强度超过人眼调节能力,就会对人眼造成伤害。遮阳镜能起到遮挡阳光的作用,以减轻因眼睛过度调节造成的疲劳或由强光刺激造成的伤害;另一类是“浅色太阳镜”,也是近几年比较流行的品种,主要起到装饰作用,当阳光不强烈的时候也可使用。浅色太阳镜由于其色彩鲜艳、丰富,款式新颖、多样,受到了年轻人的宠爱。对于这一类产品,如果没有科学的理解,会给使用者带来不利的影响。比如,长期配戴某些色彩的眼镜会导致人眼疲劳,如果配戴者误把这类眼镜也当遮阳镜用,不但起不到遮阳的效果,还可能损伤人的眼睛。
我们要选购太阳镜,首先要确定自己选购的目的是为遮阳、还是为了搭配服饰、起装饰作用?除了遮阳以外,是否还有防紫外功能方面的要求?对镜片的安全性能有无特殊要求?只有明确这些目的,再结合款式和戴在本人脸部的实际效果,才能购买一副合适的太阳镜。
2、学会看懂产品标识
a) 有关防紫外功能的标识
紫外线是指波长在200nm~380nm之间的太阳光线,包括三类:UVA波段为315nm~380nm,UVB波段为280nm~315nm,UVC波段为200nm~280nm。到达地球表面的太阳光线(290nm~2000nm)中紫外线约占13%,其中UVA占97%,UVB占3%,UVC接近于 0。紫外线对人眼的损伤主要决定于紫外线的波长、辐射时间和辐射强度以及人眼自身防卫机制的强弱,角膜、晶状体是最常受到紫外线损害的眼部组织,日光性角膜炎和角膜内皮损伤、日光性白内障是与之最相关的眼部疾病。为了保护眼睛的健康,可以选择具有防紫外功能的太阳镜,尽量消除380nm以下的紫外线。选购时应特别注意玻璃镜片的防紫外功能,从抽查统计情况来看,玻璃片很难完全达到防紫外的要求。
b) 有关安全性能的标识
具有安全防护性能的太阳镜,其镜片采用诸如PC片等抗冲击的材料制作,在标签和说明书上往往会标上“有抗冲击性能”、“通过美国FDA认证” 、“符合欧美最高标准”等等,如果产品能达到标识上的要求,对于摩托车手、驾驶员等对安全性能有特殊要求的消费者就是一种很好的选择。
消费者购买产品时应索取完整的包装,并将其保存好,这些是制造厂对产品性能的承诺。或让商家将这些附加的防护功能注明在发票上,一旦发生纠纷,就不至于因缺乏证据而被动。
c) 镜片颜色深浅要符合使用目的
镜片颜色深浅的选择,应视所需活动的场所而定,针对不同的光源和场合,镜片的颜色会影响遮光效果。要使太阳镜能有效遮挡夏季强光,眼镜的颜色应有足够的深度,但骑车或驾车者,不要选择颜色太深的镜片。
3、鉴别常识
消费者可以通过下面的方法来简单地辨别一下镜片的内在质量:
1、镜片的度数应满足对平光镜片的要求,并且不应有影响视力的光学疵病。简便的鉴别方法为,可将太阳镜置于眼前,透过镜片观察远处目标,如窗框或门框等,再将眼镜上下前后移动,目标不应有摆动及波浪形变形。也可以在日光灯下观察太阳镜镜片表面的灯管影像,移动太阳镜使灯管影像出现在镜片的不同部位,灯管影像不变形为最佳,目前市场上的偏光太阳镜,大部分是使用厚度为0.7mm的树脂偏光镜片,由于镜片薄,在装配中很容易产生变形,选购时应特别注意。
2、镜片的颜色不能偏,应使周围环境的颜色不失真。在没有配戴太阳镜前,先观察红、绿、黄等颜色的物体,然后戴上太阳镜,观察同样的物体,两次观察的颜色不能偏色,否则会降低识别交通信号灯的能力。对于镜片为彩色的太阳镜特别应注意此项的鉴别。
4、使用常识
太阳镜配戴不当易患眼疾,阴天和在室内没有必要戴太阳镜。有些人不分场合,不论太阳光强弱,甚至在黄昏、傍晚以及在看电影、电视时也戴着太阳镜,这必然会加重眼睛调节的负担,引起眼肌紧张和疲劳,使视力减退、视物模糊,严重时会出现头晕眼花、不能久视等症状。对于视觉系统发育尚不完善的婴儿、儿童等不宜配戴太阳镜。
除了玻璃片的太阳镜外,其它的太阳镜镜片材料耐磨性不高,使用者应经常注意太阳镜的表面情况,当磨损影响清晰度时,应及时更换。
确实因为如何挑选太阳镜是比较讲科学的事情,所以上面的内容参考自:这里
标签:目标, 系统, 健康, 安全相关内容
I just posted slides from a talk I gave at a Facebook application developer conference in Las Vegas this weekend. The talk is titled Outrun the Lions. Our customers run several of the top 10 applications on Facebook right now (as measured by the number of active users), and I revealed the secrets to building applications that can handle the load.
The title is a pun on the story about lions and gazelles in Africa (every day, a gazelle wakes and knows it must outrun the fastest lion; every day a lion awakes and knows it must outrun the slowest gazelle). If you’re a Facebook application developer, the lion is not your competition. It’s your users. They will love you if you do a good job. They will love you so much that the load will destroy your application, and then they’ll go away and they won’t come back. (Another speaker at the conference has the stats to prove this.)
A lot of our customers in our consulting practice are Facebook application developers, so we see the same patterns a lot. This talk was direct advice at how to avoid the problems they see as they grow. I skipped all the “you might consider these 99 options” and just said “here’s something our clients use and it works. Read the book for the full details.” If you read the slides, you’ll get an idea of how our customers have successfully scaled their Facebook applications to perform well even when they become very popular.
The reference to the book was because the company who sponsored the conference (Offerpal Media) gave everyone free copies of our new book High Performance MySQL 2nd Edition. Not only was this very nice of them to do, hopefully it’ll help them avoid trouble with their applications.
Entry posted by Baron Schwartz | 3 comments
Shared by Fenng
麦田不过如此,按照他的"靠谱理论" -- 如果不是给 SNS 泼冷水的,而是给 SNS 捧臭脚的,估计文章就"靠谱"了
作者: robbin 链接:http://robbin.javaeye.com/blog/214375 发表时间: 2008年07月13日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
一、题外话
在开始《SNS之我见》系列最后一篇文章之前,先说点题外话:有人告诉我, 我的博客文章发布之后,麦田看到了很生气。我用Google搜索了一下: 不靠谱——谈谈《SNS之我见》,嗯,确实很生气。
这有点出乎我的意料,我写博客文章的本意只不过是整理自己的思路,我既非互联网圈内人,也没有兴趣混这个圈子,我写文章也不是为了给他们看的。我关注互联网发展趋势,并且分析互联网热门题材的目的很明确:就是希望从中获得一些有价值的启发,从而更好的发展JavaEye( http://www.javaeye.com )这个技术社区网站。因此当我的博客文章被广泛转载,在互联网圈中引起一阵阵涟漪的时候,已经远远超出了我的本意。
我想对麦田说的是“take it easy”。在互联网圈中混的,哪有不挨板砖的。我做JavaEye网站五年,挨砖无数,现在随便Google一搜无数骂我的帖子,别管有理没理,互联网骂人不需要理由,看不顺眼就可以骂。所以作为一个站长得沉得住气,何况我只不过是揶揄了你两句而已。
很多互联网圈内人看不惯我的文章也不奇怪。我分析网站的思路和互联网圈内人的思路不同。我分析网站的思路只看最本质的唯一特征,其他枝节都不看,化繁为简,直接定性。总之,要形成自己的思维方式,然后运用这种思维方式去观察和分析事物,总结出自己的理论体系和实践指导方针。别人的思维方式和观点是什么样的,我并不关心,我只关心在我自己的思维方式体系之下,SNS会被归纳成什么,然后我怎么来指导我自己的行动。
很多人不同意我的观点,纠住细节不放,非要用细节经不起推敲来论证我的观点是错的,或者非要我给出什么数据来论证我的观点不可。但我真的没什么兴趣非要说服别人不可,特别是没什么兴趣用别人认可的思维方式去论证。我并不需要向别人证明什么,也不需要通过别人的认可来肯定自己的价值,我只在乎自己长期以来形成的思维价值观是否有效:我的思维方式体系能不能从眼花缭乱、茫然无措的现象当中归纳和总结出本质,给我自己指明行动方向,以及如果我的思维方式体系出现了偏差,我应该怎么修正和完善它。
二、中国互联网社区运营方式的探索
我是1998年开始上网,算而今也有10年上网历史了。在网络社区的形态上,中国互联网经历了:BBS -> 博客 -> SNS这样一个缓慢的变迁过程。回顾过去的10年:
1、BBS经久不衰,商业模式也久经考验
这个不用多说了,前面文章我已经阐述过了。从BBS起家转型成为门户网站,或者垂直门户网站,是第一代互联网成功的典范。
2、博客的冰火两重天
2006年是BSP的滑铁卢,新浪博客的推出标志着BSP的末路,到现在BSP硕果仅存的也开始纷纷转型SNS了。这里面有两个非常值得玩味的地方:
1)新浪博客指明了博客作为一种网站形态存在的商业价值
到现在为止,新浪博客已经成为新浪访问量最大的频道,并且成为新浪网新闻内容的主要来源之一。传统的新闻门户依靠编辑采编内容的模式的高昂成本,被博客源源不断的UGC供给大幅度降低了。所以博客成为了廉价的新闻编辑和内容来源。这就是博客对于媒体网站的主要商业价值。
可以说凡是具有媒体性质的网站,都可以把博客这一属性玩活。比方说CSDN的博客活脱脱就是照搬新浪博客的模式,而且效果非常好。JavaEye也是这样的,博客频道成为网站高质量内容来源的一个重要组成部分。但是传统的BSP难以转型成为博客媒体,这是因为他们既没有BBS,也没有新闻采编队伍,没有办法树立一个网络媒体的形象定位, 博客人群又过于松散,没有定位在垂直领域里面,因而无法把博客的媒体属性价值最大化利用起来。
2)UCHome和蚂蚁尝试挖掘博客的SNS价值
既然博客的媒体价值无法挖掘,那么能不能用SNS的形式去组织博客,加强博客的互动性,以博客为个人中心,组织一个SNS社区呢?目前看来用UCHome的5GSNS和蚂蚁社区有这方面的尝试。
3、SNS的变迁
第一代模仿MySpace的SNS已经式微,第二代模仿Facebook的SNS只有开心网我相对比较看好,目前其他SNS主要还是社区形态,但是和第一代所不同的是,稍微有所创新,开始尝试融合博客进来了。
康盛创想在两年多以前就推出了整合BBS和博客功能的SuperSite,但是一直很不成功,博客特性没有发挥出来,对此小戴认为是真正能持续贡献博客文章的人太少,但我不这样看,SuperSite失败的主要原因在于没有强调博客的独立性,博客成为了BBS的附庸。没有一个人愿意自己的博客成为某个网站的某个功能的附属品,而希望博客是相对独立的。
JavaEye网站在两年前开发JavaEye2.0版本的时候,也开始进行BBS和博客的整合,发展到今天来看,虽然没有达到预期的全部效果,但是也相当成功,根本原因在于尊重了BBS和博客的不同使用习惯,仅仅在底层数据存储进行了统一,在页面操作还是完全分离开的,既不至于让用户觉得自己的博客是BBS的附庸,也可以方便用户文章在博客和帖子之间任意转换。
康盛创想在SuperSite失败之后,再接再厉推出的UCHome可以视为针对博客和社区整合的创新努力,但是这一次不是博客和BBS整合,改成了博客和SNS整合了。但是在我看来,无论是SuperSite还是UCHome,都没有改变一点:博客的附庸地位!现在的UCHome还是一个SNS框架,博客是SNS框架里面的节点。针对UCHome里面的个人博客访问是相当受限的,而且个人博客和个人Profile完全混为一谈了!
个人博客应该存在两张皮:一张皮是公开出来的,作为blogger的对外公开形象存在的,给别人看的;另外一张皮是博客管理界面,类似Facebook的profile页面,blogger可以浏览博客的状态,管理博客和评论,跟踪访客的状态的。但是UCHome把Facebook的profile当做了博客对外的那张皮,这就让我感觉有种超人的内裤外穿的感觉,无论我想暴露还是不想暴露的内容统统一股脑暴露了。 固然这样做可以加强交流不假,但是其结果就是并不会有人真正用这个来写博客,也不会把自己在UCHome里面的profile页面当中个人的公开网络名片。换了是我做UCHome的话,我会把博客和个人Profile 页面分开来,而不是合并在一起。
所以从社区形态来说,目前国内互联网的社区有大致这样一些类型:
1、BBS为基础的,例如天涯、猫扑、西祠、搜房、篱笆等等,这些活的都很好。
2、 Blog为基础的,例如博客网,blogbus等,这些都要转型做SNS了,或者所谓的blogsphere了。
3、从SNS切入,融合Blog形态的,例如5GSNS(UCHome)、蚂蚁等等。
4、想做网络虚拟城市的SNS,例如豆瓣,一起等等。
5、其他各种类型杂交的,很多。
每个做社区的网站都在尝试解决BBS和Blog的弊病,都在尝试新的社区模式:
1、BBS是以话题为中心组织的,不利于个人的信息组织;
2、Blog是以个人为中心组织的,不利于信息的流动和分享;
3、第一代SNS是以兴趣小组为中心组织的,不利于个人信息组织,也不利于个人信息流动;
4、第二代SNS是以关系为中心组织的,能解决所有的问题吗?
三、我心中理想的社区形态是什么样的?
我写整个系列的四篇文章的过程,也是我整理自己思路的过程,其最终希望在自己的脑海当中勾勒出一个比较清晰的理想化社区的蓝图,我心中理想的社区应该具备如下的特征:
1、社区应该是公开性质的,但具有三层不同的属性:针对未注册用户,他是一个具有媒体性质的社区门户网站;针对注册用户,他是一个有高度定制能力的个性化web2.0网站;针对核心用户,他是一个熟人社交工具。我希望针对不同层次的用户,展现出来网站的不同层面的属性。既不应该是完全排斥未注册用户的封闭社区,也不应该是注册不注册都一个样的BBS,也不希望他仅仅只是单薄的熟人社交游戏网站。
2、BBS和Blog分别作为独立的社区形态存在,Blog作为个人网络名片,应该具备独立性,但是底层是统一为一体的。目前JavaEye已经很好解决了这个问题。
3、社区应该提供Blog之外的个人信息聚合中心,并且允许用户对个人的信息聚合中心进行充分的定制,比方说我不想看网站的千人一面的首页,我可以订阅我关注的板块内容,把我的profile设置为网站首页,那么以后我一登录网站看到的就是我自己定制的网站,我看到的内容都是我关注的内容了。
4、社区应该在个人信息聚合中心提供个性化推荐,根据用户的行为,推荐他可能感兴趣的人和内容。
5、提供把陌生人转化为熟人的工具,想想看Facebook是怎么定义熟人的,你就知道我指什么了。此外要为熟人社交提供必要的道具。
还有一些比较琐碎的想法,都是很早以前就想过的了: 关于JavaEye网站未来发展的思考。
Facebook的成功秘诀是什么 - SNS之我见(一)
点评国内Facebook克隆网站 - SNS之我见(二)
社区网站SNS化的思考 – SNS之我见(三)
什么样的社区能够成为集大成者?- SNS之我见(四)
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
- 搜狐网站诚聘Java、PHP和C++工程师
- JavaEye问答大赛开始了! 从6月23日 至 7月6日,奖品丰厚 !
- Oracle专区上线,有Oracle最新文章,重要下载及知识库等精彩内容,欢迎访问。
- 北京: 千橡集团暨校内网诚聘软件研发工程师
- 快来参加7月17日在成都举行的SOA中国技术论坛
作者: robbin 链接:http://robbin.javaeye.com/blog/214375 发表时间: 2008年07月13日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
一、题外话
最近我的博客文章被广泛转载,在互联网圈中引起一阵阵涟漪,这已经远远超出了我的本意。我写博客文章的本意只不过是整理自己的思路,我既非互联网圈内人,也没有兴趣混这个圈子,我写文章也不是为了给互联网圈内人看的。我关注互联网发展趋势,并且分析互联网热门题材的目的很明确:就是希望从中获得一些有价值的启发,从而更好的发展JavaEye( http://www.javaeye.com )这个技术社区网站而已。
因此互联网界的人士们实在没有必要因为我这个圈外人说了几句讽刺的话而感到不爽,更没有必要一本正经的分析我的文章。如果一个非技术人员写了一篇分析软件行业的文章,我就只当他扯淡,连看他文章的兴趣都没有,所以你们没必要看我的文章,更没必要当回事。
很多互联网圈内人看不惯我的文章也不奇怪。我分析网站的思路只看最本质的唯一特征,其他枝节都不看,化繁为简,直接定性。我习惯形成自己的思维方式,然后运用这种思维方式去观察和分析事物,总结出自己的理论体系和实践指导方针。别人的思维方式和观点是什么样的,我并不关心,我只关心在我自己的思维方式体系之下,SNS会被归纳成什么,然后我怎么来指导我自己的行动。
很多人不同意我的观点,纠住细节不放,非要用细节经不起推敲来论证我的观点是错的,或者非要我给出什么数据来论证我的观点不可。但我真的没什么兴趣非要说服别人不可,特别是没什么兴趣用别人认可的思维方式去论证。我并不需要向别人证明什么,也不需要通过别人的认可来肯定自己的价值,我只在乎自己长期以来形成的思维价值观是否有效:我的思维方式体系能不能从眼花缭乱、茫然无措的现象当中归纳和总结出本质,给我自己指明行动方向,以及如果我的思维方式体系出现了偏差,我应该怎么修正和完善它。
二、中国互联网社区运营方式的探索
我是1998年开始上网,算而今也有10年上网历史了。在网络社区的形态上,中国互联网经历了:BBS -> 博客 -> SNS这样一个缓慢的变迁过程。回顾过去的10年:
1、BBS经久不衰,商业模式也久经考验
这个不用多说了,前面文章我已经阐述过了。从BBS起家转型成为门户网站,或者垂直门户网站,是第一代互联网成功的典范。
2、博客的冰火两重天
2006年是BSP的滑铁卢,新浪博客的推出标志着BSP的末路,到现在BSP硕果仅存的也开始纷纷转型SNS了。这里面有两个非常值得玩味的地方:
1)新浪博客指明了博客作为一种网站形态存在的商业价值
到现在为止,新浪博客已经成为新浪访问量最大的频道,并且成为新浪网新闻内容的主要来源之一。传统的新闻门户依靠编辑采编内容的模式的高昂成本,被博客源源不断的UGC供给大幅度降低了。所以博客成为了廉价的新闻编辑和内容来源。这就是博客对于媒体网站的主要商业价值。
可以说凡是具有媒体性质的社区网站,都可以把博客这一属性玩活。比方说CSDN的博客活脱脱就是照搬新浪博客的模式,而且效果非常好。JavaEye也是这样的,博客频道成为网站高质量内容来源的一个重要组成部分。但是传统的BSP难以转型成为博客媒体,这是因为他们既没有BBS,也没有新闻采编队伍,没有办法树立一个网络媒体的形象定位, 博客人群又过于松散,没有定位在垂直领域里面,因而无法把博客的媒体属性价值最大化利用起来。
2)UCHome和蚂蚁尝试挖掘博客的SNS价值
既然博客的媒体价值无法挖掘,那么能不能用SNS的形式去组织博客,加强博客的互动性,以博客为个人中心,组织一个SNS社区呢?目前看来用UCHome的5GSNS和蚂蚁社区有这方面的尝试。
3、SNS的变迁
第一代模仿MySpace的SNS已经式微,第二代模仿Facebook的SNS只有开心网我相对比较看好,目前其他SNS主要还是社区形态,但是和第一代所不同的是,稍微有所创新,开始尝试融合博客进来了。
康盛创想在两年多以前就推出了整合BBS和博客功能的SuperSite,但是一直很不成功,博客特性没有发挥出来,对此小戴认为是真正能持续贡献博客文章的人太少,但我不这样看,SuperSite失败的主要原因在于没有强调博客的独立性,博客成为了BBS的附庸。没有一个人愿意自己的博客成为某个网站的某个功能的附属品,而希望博客是相对独立的。
JavaEye网站在两年前开发JavaEye2.0版本的时候,也开始进行BBS和博客的整合,发展到今天来看,虽然没有达到预期的全部效果,但是也相当成功,根本原因在于尊重了BBS和博客的不同使用习惯,仅仅在底层数据存储进行了统一,在页面操作还是完全分离开的,既不至于让用户觉得自己的博客是BBS的附庸,也可以方便用户文章在博客和帖子之间任意转换。
康盛创想在SuperSite失败之后,再接再厉推出的UCHome可以视为针对博客和社区整合的创新努力,但是这一次不是博客和BBS整合,改成了博客和SNS整合了。但是在我看来,无论是SuperSite还是UCHome,都没有改变一点:博客的附庸地位!现在的UCHome还是一个SNS框架,博客是SNS框架里面的节点。针对UCHome里面的个人博客访问是相当受限的,而且个人博客和个人Profile完全混为一谈了!
个人博客应该存在两张皮:一张皮是公开出来的,作为blogger的对外公开形象存在的,是个人的网络名片;另外一张皮是博客管理界面,类似Facebook的profile页面,blogger可以浏览博客的状态,管理博客和评论,跟踪访客的状态的。但是UCHome把Facebook的profile当做了博客对外的那张皮,这就让我感觉有种超人的内裤外穿了,无论我想暴露还是不想暴露的内容统统一股脑暴露了。 固然这样做可以加强交流不假,但是其结果就是并不会有人真正用这个来写博客,也不会把自己在UCHome里面的profile页面当做个人的公开网络名片。换了是我做UCHome的话,我会把博客和个人Profile 页面分开来,而不是合并在一起。
总之从社区形态来说,目前国内互联网的社区有大致这样一些类型:
1、BBS为基础的,例如天涯、猫扑、西祠、搜房、篱笆等等,这些活的都很好。
2、 Blog为基础的,例如博客网,blogbus等,这些都要转型做SNS了,或者所谓的blogsphere了。
3、从SNS切入,融合Blog形态的,例如5GSNS(UCHome)、蚂蚁等等。
4、想做网络虚拟城市的SNS,例如豆瓣,一起等等。
5、其他各种类型杂交的,很多。
每个做社区的网站都在尝试解决BBS和Blog的弊病,都在尝试新的社区模式:
1、BBS是以话题为中心组织的,不利于个人的信息组织;
2、Blog是以个人为中心组织的,不利于信息的流动和分享;
3、第一代SNS是以兴趣小组为中心组织的,不利于个人信息组织,也不利于个人信息流动;
4、第二代SNS是以关系为中心组织的,能解决所有的问题吗?
三、我心中理想的社区形态是什么样的?
我写整个系列的四篇文章的过程,也是我整理自己思路的过程,希望在自己的脑海当中勾勒出一个比较清晰的理想化社区的蓝图,我心中理想的社区应该具备如下的特征:
1、社区应该是公开性质的,但具有三层不同的属性:针对未注册用户,他是一个具有媒体性质的社区门户网站;针对注册用户,他是一个有高度定制能力的个性化web2.0网站;针对核心用户,他是一个熟人社交工具。我希望针对不同层次的用户,展现出来网站的不同层面的属性。既不应该是完全排斥未注册用户的封闭社区,也不应该是注册不注册都一个样的BBS,也不希望他仅仅只是单薄的熟人社交游戏网站。
2、BBS和Blog分别作为独立的社区形态存在,Blog作为个人网络名片,应该具备独立性,但是底层是统一为一体的。目前JavaEye已经很好解决了这个问题。
3、社区应该提供Blog之外的个人信息聚合中心,并且允许用户对个人的信息聚合中心进行充分的定制,比方说我不想看网站的千人一面的首页,我可以订阅我关注的板块内容,把我的profile设置为网站首页,那么以后我一登录网站看到的就是我自己定制的网站,我看到的内容都是我关注的内容了。
4、社区应该在个人信息聚合中心提供个性化推荐,根据用户的行为,推荐他可能感兴趣的人和内容。
5、提供把陌生人转化为熟人的工具,想想看Facebook是怎么定义熟人的,你就知道我指什么了。此外要为熟人社交提供必要的道具。
还有一些比较琐碎的想法,都是很早以前就想过的了: 关于JavaEye网站未来发展的思考。
Facebook的成功秘诀是什么 - SNS之我见(一)
点评国内Facebook克隆网站 - SNS之我见(二)
社区网站SNS化的思考 – SNS之我见(三)
什么样的社区能够成为集大成者?- SNS之我见(四)
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
- 搜狐网站诚聘Java、PHP和C++工程师
- 快来参加7月17日在成都举行的SOA中国技术论坛
- JavaEye问答大赛开始了! 从6月23日 至 7月6日,奖品丰厚 !
- 北京: 千橡集团暨校内网诚聘软件研发工程师
版权声明:可以在网上任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明文字。
作者:shunz,原文链接:http://shunz.net/2008/07/nginx_perl_fastcgi.html
日志统计分析软件Awstats需要Perl支持,但是Nginx内建的Perl模块目前还并不稳定,经常会出问题,所以还是用FastCGI模式运行Perl比较可靠。下面就谈谈如何在Nginx下配置Perl的FastCGI模式:
首先,安装Perl的FastCGI模块:
#wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.67.tar.gz
#tar zxvf FCGI-0.67.tar.gz
#cd FCGI-0.67
# perl Makefile.PL
#make && make install
其实也可以用这种方法:#perl -MCPAN -e ‘install FCGI’
然后,配置Perl的FastCGI脚本(从网上找到的,未找到原始出处):
#!/usr/bin/perl
use FCGI;
use Socket;
use POSIX qw(setsid);
require ’syscall.ph’;
&daemonize;
END() { } BEGIN() { }
*CORE::GLOBAL::exit = sub { die “fakeexit\nrc=”.shift().”\n”; };
eval q{exit};
if ($@) {
exit unless $@ =~ /^fakeexit/;
};
&main;
sub daemonize() {
chdir ‘/’ or die “Can’t chdir to /: $!”;
defined(my $pid = fork) or die “Can’t fork: $!”;
exit if $pid;
setsid or die “Can’t start a new session: $!”;
umask 0;
}
sub main {
$socket = FCGI::OpenSocket( “/tmp/perl_fastcgi.sock”, 10 );
$request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%req_params, $socket );
if ($request) { request_loop()};
FCGI::CloseSocket( $socket );
}
sub request_loop {
while( $request->Accept() >= 0 ) {
$stdin_passthrough =”;
$req_len = 0 + $req_params{’CONTENT_LENGTH’};
if (($req_params{’REQUEST_METHOD’} eq ‘POST’) && ($req_len != 0) ){
my $bytes_read = 0;
while ($bytes_read < $req_len) {
my $data = '';
my $bytes = read(STDIN, $data, ($req_len - $bytes_read));
last if ($bytes == 0 || !defined($bytes));
$stdin_passthrough .= $data;
$bytes_read += $bytes;
}
}
if ( (-x $req_params{SCRIPT_FILENAME}) &&
(-s $req_params{SCRIPT_FILENAME}) &&
(-r $req_params{SCRIPT_FILENAME})
){
pipe(CHILD_RD, PARENT_WR);
my $pid = open(KID_TO_READ, "-|");
unless(defined($pid)) {
print("Content-type: text/plain\r\n\r\n");
print "Error: CGI app returned no output - Executing $req_params{SCRIPT_FILENAME} failed !\n";
next;
}
if ($pid > 0) {
close(CHILD_RD);
print PARENT_WR $stdin_passthrough;
close(PARENT_WR);
while(my $s = ) { print $s; }
close KID_TO_READ;
waitpid($pid, 0);
} else {
foreach $key ( keys %req_params){
$ENV{$key} = $req_params{$key};
}
if ($req_params{SCRIPT_FILENAME} =~ /^(.*)\/[^\/]+$/) {
chdir $1;
}close(PARENT_WR);
close(STDIN);
syscall(&SYS_dup2, fileno(CHILD_RD), 0);
exec($req_params{SCRIPT_FILENAME});
die(”exec failed”);
}
}
else {
print(”Content-type: text/plain\r\n\r\n”);
print “Error: No such CGI app - $req_params{SCRIPT_FILENAME} may not exist or is not executable by this process.\n”;
}}
}
将权限改为可执行,并执行之。
配置nginx.conf,使之支持perl脚本:
location ~* .*\.pl$
{
include awstats.conf;
}
编辑awstats.conf
fastcgi_pass unix:/tmp/perl_fastcgi.sock;
fastcgi_index awstats.pl;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_read_timeout 60;
然后重启nginx:
#service nginx restart
相关网志
( 全文完 )
© shunz , BLOG家园 , 2008 | 在Nginx环境下用Perl FastCGI支持Awstats | 没有留言
添加到 del.icio.us | Technorati 反向链接 | 阅读更多【我的关注】
2008-07-12 Sat
2008-07-11 Fri
AnySQL.net
DBA notes
Oracle & Starcraft
eagle's home
Give you some color to see see!
AnySQL.net English
Oracle Scratchpad
Oracle Life
OracleDBA Blog---Please enjoy the pain which is unable to avoid!
Uploads from dbanotes
Chanel [K]
xzh2000的博客
Oracle Security Blog
ERN空间
Eddie Awad's Blog
MySQL Performance Blog
The Tom Kyte Blog
del.icio.us/fenng/oracle
AIXpert
O'Reilly Databases
Red Hat Magazine
DBASupport
DB2 Magazine 中文版
developerWorks 中国 : 技术文章 , 教程 AIX
Pythian Group Blog » Log Buffer
车东[Blog^2]
blue_prince
玉面飞龙的BLOG
此生 今世
人生就是如此
Orange Tiger 木匠 的 移民生活
生活帮-LifeBang
Hey!! Sky!
dba on unix
Oracle Notes Wiki
Brotherxiao's Home
柔嘉维则@life.oracle.eng
Fenng's shared items in Google Reader
jametong's shared items in Google Reader
缥缈游侠-logzgh
Tanel Poder's blog: Core IT for geeks and pros
DBA Tools
ilonng
yangtingkun
NinGoo@Net
Oracle & Unix
Inside the Oracle Optimizer - Removing the black magic
Ricky's Test Blog
DBA@Taobao
存储部落
Think in 88
Alibaba DBA Team
Oracle Team @SNC
淘宝数据仓库团队
OracleBlog.cn







