tbwshc

tbw

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

常用链接

留言簿(4)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

#

这篇文章节选自《The Code of the Geeks》,那是一篇很古老的文章,最后一次编辑还是在1996年。选择它是因为这篇文章反映了当时国外的极客所认可的极客标准,加上原作者极尽幽默搞笑之能,文中槽点无数,实在是让人忍俊不禁。谨记,作者有些言论只是夸张幽默,各位看官莫要入戏太深,看完能够会心一笑也就足矣。

你觉得自己是极客吗?第一步,你得承认自己有极客的天性。不管别人怎么说,极客也是人,极客也有自己的权利。所以请深吸一口气,然后向世界宣布你是一名极客吧。你的勇气将赐予你永恒的力量。


那么你会问了,怎样才能告诉全世界你是一名极客呢?你可以采用国际通用的极客代码符号!通过这种特殊的代码符号,你可以让其他不熟悉你的极客们通过代码符号的形式对你有所认知和了解。


表现自己极客特征的最好方式就是在你的签名档或者博客中展示出自己的极客代码符号,让它传播的越广越好。极客的种类很多,涉及的范围也比较广。本文将重点介绍有关计算机科学方面的极客代码符号。


大多数极客都对计算机和网络方面的技术着迷,以此彰显自己的极客属性。为了量化你在计算机方面的极客程度,请参考下列代码符号。注意,Computer这一栏只表示你在计算机方面的“一般性”资质。后面我们会列出更具体的类别。


Computer


C++++


我会是第一个把新的控制界面安装到我的头骨中的人。


C+++


你是说在互联网之外还有其他的生活?你少糊弄我了!我几个礼拜没上过课了。


C++


计算机在我生命中占据了很大一部分。我早上起来的第一件事就是登陆。我周末会玩玩游戏或者mud,尽管如此,我的成绩还凑合,不至于被留校察看。


C+


计算机很有趣,我很喜欢使用它们。我玩过DOOM,在使用文字处理软件时不会常常得求助于操作手册。我知道3.5寸的磁盘不是硬盘。我也知道当计算机提示请按下任意键时,我不会去到处找这个“任意”键在哪。


C


计算机只是工具,没别的了,需要的时候我就会用。


C-


任何比我的计算器还要复杂的东东就会让我抓狂。


C- -


电源开关在哪?


C- - -


只要你敢提计算机这三个字,我就把你的头拧下来!    (译注:这货肯定是女朋友!!)


UNIX


看起来似乎UNIX类的操作系统是大部分极客的最爱。为了进一步告诉我们你在UNIX上的等级,你也可以向我们展示你具体使用的是哪一种UNIX。这很容易办到,只要在极客代码符号中包含一个字母即可。比如,UL++++表示你是一个使用Linux的系统管理员。


  •          B – BSD(如果你的BSD类系统没有包含在下列中,请使用这一项)
  •          L – Linux
  •          U – Ultrix
  •          A – AIX
  •          V – SysV
  •          H – HPUX
  •          I – IRIX
  •          O – OSF/1(也叫Digital Unix)
  •          S – Sun OS/Solaris
  •          C – SCO Unix
  •          X – NeXT

U++++


我是系统管理员。如果你敢尝试攻击我的系统,那么当你看见城管要拆你家的房子时请不要觉得惊讶,因为他们的计算机系统“碰巧”接收到了这个由计算机生成的命令。


U+++


我可用不着去破解/etc/passwd,因为我修改了su程序,这样它就不会提示我去输入密码了。tb系统管理员根本意识不到我的存在。如果你听不懂我所说的,那么你不属于这一级。


U++


我被管理员踢出系统了,因为我总是耗光了所有的CPU时间,而且我总是尝试运行一些我没有权限的程序。下周我会去试试攻破/etc/passwd的,别告诉别人哦。


U+


我不但有一个Unix系统账号,而且逮着机会我就会痛批VMS系统。


U


我有一个Unix系统账号用来工作。


U-


我有一个VMS系统账号。


U- -


我见识过Unix,但我一点也不喜欢它。DEC才是最棒的!


U- - -


Unix极客实际上都是书呆子伪装出来的。


Perl


在Unix这一栏中,如果你至少有U++的等级,那么你肯定知道Perl,所以你可以在Perl这一栏中继续掂量掂量自己。非Unix型的极客们根本不知道他们错过了什么。


P+++++


我就是Larry Wall, Tom Christiansen,或者Randal Schwartz


P++++


我不写Perl代码,我的母语就是Perl。Perl超越了所有其他的编程语言。我坚信所有的程序都可以浓缩为一行Perl代码。我的U+++等级就是靠Perl来完成的。


P+++


Perl是一种非常强大的编程工具。正因为Perl的存在,我不再编写shell脚本了,同样,我也不再使用awk或者sed了。少于1000行代码的程序我都用Perl来搞定。


P++


Perl是一种强大的编程工具。我不再编写shell脚本了,因为我都会用Perl来搞定。


P+


我知道Perl。我喜欢Perl。只是对于Perl我了解的还不够多,但是它正在我的学习tbw计划之中。


P


我知道Perl的存在,仅此而已。


P-


有什么是Perl能实现而awk和sed实现不了的?


P- -


Perl程序员都是变态,他们就知道炫耀自己的技巧。


P- - -


Perl集合了sh的强大,sed的清晰以及awk的性能,再加上C的简洁。应该禁止使用Perl。


P!


我们那固执的系统管理员不让我们安装Perl!说它是个“黑客工具”。


Linux


Linux
是一个由黑客编写而成的操作系统,功能上几乎等同于UNIX。起初,Linux只是为386
PC而编写,但是之后也移植到了其他系统上。因为它还是一个比较年轻的操作系统,而且也因为它被黑客们持续的修改和增强,因此对于计算机极客们来说,很重
要的一点是你得展示出自己Linux方面的能力。


L+++++


我就是Linus教主,都给我跪下!


L++++


我是个Linux鬼才。我的早餐就是C代码,我留了足够的空间来做内核调试。我打了如此多的补丁以至于10个版本号之前我就记不清补丁和版本之间的关系了。Linux新手觉得我就是个神。


L+++


在我的电脑上我只用Linux。我时常关注comp.os.linux.*社区,甚至有时候会在上面回答问题。


L++


在我的电脑上我几乎只使用Linux。我已经放弃了成为Linux之神的理想,但我热切欢迎用Linux取代Windows。我只是在玩游戏时用Windows。


L+


我成功的安装好了Linux,而且也用过几次。看起来这只不过是另一个操作系统而已。


L


我知道Linux是什么,但仅此而已。


L-


我可没有使用Linux的欲望,而且说实在的,我才不鸟Linux呢。还有其他更好的操作系统,像Mac,Windows甚至免费的Unix系统,比如FreeBSD。


L- -


Unix逊爆了,因为Linux = Unix。Linux很烂,我崇拜Bill Gates。


L- - -


我就是Bill Gates


Emacs


GNU Emacs是一个能完成任何事情的文本编辑器,或者说它是个操作系统也不为过。每一种计算机架构都支持这个玩意。


E+++


Emacs就是我的登录shell !!!我用Emacs控制我的电视和烤箱。你们这些vi党根本不懂自己错过了什么!我常在alt.religion.emacs,alt.sex.emacs和comp.os.emacs上逛。


E++


我知道elisp,而且会定期使用它。


E+


Emacs太棒了!我用它来阅读邮件和新闻!


E


Yeah,我知道Emacs是什么,我把它当做我的常用编辑器。


E-


Emacs太臃肿了,不合我的口味。


E- -


Emacs只是一个花哨的字处理软件。


E- - -


Emacs逊爆了!vi万岁!


E- - - -


Emacs逊爆了!pico万岁!


OS/2


这个操作系统看起来像Windows,用起来像Windows,但比Windows好很多。


O+++


我吃的是OS/2,呼吸的也是OS/2,我为OS/2而生。我所有的硬盘都是HPFS文件系统。我是反盖茨的斗士!


O++


我使用OS/2来完成我所有的计算需求。我也会使用一些DOS和Windows程序,当然,是在OS/2下使用它们。如果某个程序没法在OS/2下运行,那么显然我根本就不需要它。


O+


我在硬盘上保留了一个DOS分区,只是为了“以防万一”。我害怕尝试HPFS文件系统。


O


我终于安装好了OS/2,但是并没有很吸引我。


O-


我试过,不喜欢。


O- -


我甚至都没法安装这玩意!


O- - -


Windows最棒!Bill Gates万岁!!


O- - - -


我就是Bill Gates, OS/2不值一提。


Macintosh


有很多极客放弃了基于字符界面的计算机,转而投向了Macintosh的怀抱。来看看你的Mac等级吧。


M++


我是个Mac专家。任何DOS和Unix可以做的事,我都能做的更好。如果不行,我会写个该死的软件来搞定它。


M+


Mac有它的用武之地,我常使用它。


M


我用Mac,但我对它并不在意。


M-


Mac逊爆了。真正的极客都是用字符界面来操作的。


M- -


Mac把用户都变傻了,用户使用着系统却并不知道他们在做什么。这些用户的IQ比我肚脐上的毛还低。



posted @ 2013-06-18 16:50 tbwshc 阅读(241) | 评论 (0)编辑 收藏

当我在文本中的某一行进行插入操作的时候,插入的内容存在了,但是它下面的内容怎么没有了?

#include <stdio.h>;
#include "err_exit.h"
struct record{
int uid;
char login[9];
};
char *logins[]={"user1","user2","user3","user4","user5"};
void putrec(FILE *fp,int i,struct record *r)
{
fseek(fp,(long)i*sizeof(struct record),0);
[color=red]fwrite((char *)r,sizeof(struct record),1,fp);[/color]
}

int main(void)
{
int i;
FILE *fp;
struct record rec;

if ((fp = fopen("datafile","tb"))==NULL)
err_exit("datafile");

for(i=4;i>;=0;i--)
{
rec.uid=i;
strcpy(rec.login,logins);
putrec(fp,i,&rec);
}
fclose(fp);
exit(0);
}

执行该程序后datafile文件是空的啊

posted @ 2013-06-18 16:47 tbwshc| 编辑 收藏

线程池模式一般分为两种:L/F领导者与跟随者模式、HS/HA半同步/半异步模式。
HS/HA 半同步/ 半异步模式 :分为三层,同步层、队列层、异步层,又称为生产者消费者模式,主线程处理I/O事件并解析然后再往队列丢数据,然后消费者读出数据进行应用逻辑处理;
优点:简化编程将低层的异步I/O和高层同步应用服务分离,且没有降低低层服务性能。集中层间通信。
缺点:需要线程间传输数据,因此而带来的动态内存分配,数据拷贝,语境切换带来开销。高层服务不可能从底层异步服务效率中获益。
L/F 领导者跟随者模式 :在LF线程池中,线程可处在3种线程状态之一: leader、follower或processor。处于leader状态的线程负责监听tb网络端口,当有消息到达时,该线程负责消息分离,并从处于 follower状态中的线程中按照某种机制如FIFO或基于优先级等选出一个来当新的leader,然后将自己设置为processor状态去分配和处 理该事件。处理完毕后线程将自身的状态设置为follower状态去等待重新成为leader。在整个线程池中同一时刻只有一个线程可以处于leader 状态,这保证了同一事件不会被多个线程重复处理。
缺点:实现复杂性和缺乏灵活性;
优点:增强了CPU高速缓存相似性,消除了动态内存分配和线程间的数据交换。
两种模式性能分析:
L/F模式处理一个消息的时间为多路分离、分配、处理的时间,加上线程管理时间,LF中多个线程共享一个事件源,所以,需要协调它们间的行为,即 有同步开销,L/F同步开销仅为申请/释放锁的开销,在LF处理请求过程中并不需要线程上下文切换,但是在线程由follower成为leader时需要 进行线程上下文切换,所以当两个请求同时到达时,这种上下文切换会影响第二个请求的处理时间,也会带来一定的上下文开销。
T(L/F)=T(多路分离)+T(分配)+T(处理)+T(同步)+T(上下文)
HS/HA模式监听线程和工作线程间通过一个消息队列来交换数据。这会带来数据传递开销,。同时,监听线程和工作线程都需要去访问消息队列,造成 了资源的竞争,需要额外的同步机制来协调他们的行为,包括监听线程获取和释放资源锁,对应的工作线程获取和释放资源锁,以及监听线程在将一个请求放入队列 后通知工作线程带来的开销,我们称此为同步开销,HS/HA模式的同步开销大于L/F的同步开销,。一个请求由监听线程负责放入消息队列,但是却由工作线 程来处理,所以,每个请求都会造成一次线程上下文切
换,由此带来的开销我们称为上下文开销。
       T (H/H)=T(多路分离)+T(分配)+T(处理)+T(同步)+T(数据传递)+T(上下文)
从上面分析可以看出没有并发情况下L/F模式线程池模式性能优于HS/HA模式。
并发性能分析:
T(多路分离)、T(分配):LF和HH中把每一个消息的到来当作一个事件来处理。tbw事件分配所做的工作是在一个事件处理器注册表中为一个事件查找 事件处理器。这一步骤花费的时间随着当前注册的事件处理器的个数变化。当线程池接受用户连接请求后会为每一个连接注册一个事件处理器,所有通过该连接发来 的请求都将由同一个事件处理器来处理。而事件处理器表采用一个平衡二叉树来实现。因此,事件分配的时间可以认为是随着并发用户数的增大而增大;
T(处理)处理消息和管理线程所需的时间都不受并发用户数的影响。
T(线程管理),多线程带来的线程管理开销只会随着线程池中线程数而变化,相对固定。
LF和HH的吞吐量会随着并发用户数的增加而增加。当并发用户数达到一定数量时,CPU成为系统瓶颈,此后增大并发用户数不仅不能增加并发处理的请求个数,反而会加大多路分离和分配的时间,从而使得系统吞吐量下降。
       最佳性能时线程线:
随着线程数的增多吞吐量不断增大,当达到最大值后有一个短暂的保持阶段,此后继续增大线程数反而会使得吞吐量减小。而且当请求类型为计算密集型时线程数对
HH 的吞吐量的影响并不是很明显。原因是HH线程池在增加线程数时线程管理开销也有较大幅度的增加。因此,通过增大线程数来改善系统性能对HH来说并不是一种有效的方法。

posted @ 2013-06-18 16:42 tbwshc 阅读(2458) | 评论 (0)编辑 收藏

近些年,大数据已经和云计算一样,成为时代的话题。大数据是怎么产生的,商业机会在哪?研究机会在哪?这个概念孕育着一个怎样的未来?

昨天在车库咖啡参加了一个小型的研讨活动,就这些问题进行了一些讨论,我结合自己的一些理解做一个总结。

首先,大数据是怎么产生的?

1)物理世界的信息大量数字化产生的

例如刘江老师指出的好大夫网,将医生的信息,门诊的信息等数字化。其实还有很多,比如新浪微博将茶馆聊天的行为(弱关系产生信息数字化),朋友聊天的行为数字化(强关系产生信息数字化)。视频监控探头将图像数字化。

2)社交网络产生的

在雅虎时代,大量的都是读操作,只有雅虎的编辑做一些写操作的工作。进入web2.0时代,用户数大量增加,用户主动提交了自己的行为。进入了社交时代,移动时代。大量移动终端设备的出现,用户不仅主动提交自己的行为,还和自己的社交圈进行了实时的互动,因此数据大量的产生出来,并且具有了极其强烈的传播性。

3)数据都要保存所产生的

一位嘉宾指出,旧金山大桥保留了百年的历史数据,在时间跨度上产生了价值,很多网站在早期对数据的重视程度不够,保存数据的代价很大,存储设备的价格昂贵,但是时代变了,存储设备便宜了,用户自己产生的数据得到了重视,数据的价值被重视了。因此越来越多的数据被持续保存

其次,大数据和大规模数据的区别?

big data之前学术界叫very large data,大数据和大规模数据的差距是什么?我认为在英文中large的含义只是体积上的,而big的含义还包含重量上的,价值量上的。因此我认为

1)大数据首先不是数量上的堆砌,而是具有很强的关联性结构性

比如有一种数据,记录了世界上每一颗大树每年长高的程度,这样的数据不具有价值,因为只是简单堆砌。

如果数据变成,每一个大树记录它的,地点,气候条件,树种,树龄,周边动植物生态,每年长高的高度,那么这个数据就具有了结构性。具有结构性的数据首先具有极强的研究价值,其次极强的商业价值。

在比如,淘宝的数据,如果只记录一个交易的买家,卖家,成交物品,价格等信息,那么这个商业价值就很有限。淘宝包含了,买家间的社交关系,购物前后的其他行为,那么这个数据将非常有价值。

因此,只有立体的,结构性强的数据,才能叫大数据,才有价值,否则只能叫大规模数据。

2)大数据的规模一定要大,而且比大规模数据的规模还要大

要做一些预测模型需要很多数据,训练语料,如果数据不够大,很多挖掘工作很难做,tb比如点击率预测。最直白的例子,如果你能知道一个用户的长期行踪数据,上网的行为,读操作和写操作。那么几乎可以对这个人进行非常精准的预测,各种推荐的工作都能做到很精准。

最后,大数据的机会在哪里?对小公司的机会在哪?

围绕数据的整个产业链上,我认为具有以下机会

1)数据的获得

大量数据的获得,这个机会基本属于新浪微博等这类大企业,大量交易数据的获得,也基本属于京东,淘宝这类企业。小企业基本没机会独立得到这些用户数据。

2)数据的汇集

例如如果你要能把各大厂商,各大微博,政府各个部门的数据汇集全,这个机会将是极大的。

但,这个工作,做大了需要政府行为,做中档了,要企业间合作,做小了,也许就是一个联盟或者一个民间组织,比如中国爬盟。

3)数据的存储

汇集了数据后,立即遇到的问题就是存储,这个代价极大,原始数据不能删除,需要保留。因此提供存储设备的公司,执行存储这个角色的公司,都具有巨大的市场机会,但是这也不属于小公司,或者早期创业者。

4)数据的运算

在存储了数据以后,怎么把数据分发是个大问题,各种API,各种开放平台,都是将这些数据发射出去,提供后续的挖掘和分析工作,这个也需要有大资本投入,也不适合小公司。

5)数据的挖掘和分析

数据需要做增值服务,否则数据就没有价值,big也big不到哪里去,是没有价值的big.因此这种数据分析和挖掘工作具有巨大的价值,这个机会属于小公司,小团体。

6)数据的使用和消费

在数据做到了很好的挖掘和分析后,需要把这些结果应用在一个具体的场合上,来获得回报,做数据挖掘和分析的公司,必须得找到这些金主才行,而这些金主肯定也不是小公司。

大数据未来的形态,或者产业链结构一定是分层的,巨大的,价值的体现发生在各个层次,每个层次都是生态链的重要一环,都孕育着巨大的机遇和挑战,我们能做的唯有努力,做适合自己的工作。

posted @ 2013-06-08 17:24 tbwshc| 编辑 收藏

开发测试服务提供商Coverity近日发布了一份开源软件质量报告——《2012 Coverity Scan Open Source Report》。

该项研究始于2006年,最初由Coverity公司和美国国土安全部合作进行,旨在研究开源软件的完整性,现在由Coverity公司负责进行。

Coverity的扫描报告已经成为了一个衡量开源软件质量状态的被广泛接受的tb标准,在过去的7年时间,Coverity已经分析了300多个开源项目的超过8.5亿行代码,这些项目包括Linux、PHP、Apache等。


本次该公司共扫描了超过4.5亿行软件源代码,主要亮点如下:

  • 开源软件和专有软件的质量连续两年超过行业平均值;
  • 对于超过100万行代码的项目来说,专有项目的规模和质量呈现正比关系,而开源项目的规模和质量则呈现反比关系。这种差异可归因于两者不同的开发团队和开发测试流程;
  • Linux仍然是开源项目的质量标杆;
  • 高风险安全漏洞依然存在,在扫描出的所有漏洞中,其中有36%被标记为“高风险”。
    此外,该报告还指出,在分析的2012年的开源项目中,共有2.1万个漏洞被修复,这超过了2008-2011年修复漏洞的总和。

    如果你希望你的开源项目能够被Coverity扫描,可以通过http://scan.coverity.com/project_register.html注册。目前Coverity扫描服务仅支持C/C++和Java项目。
posted @ 2013-06-08 17:19 tbwshc| 编辑 收藏

第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。

第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。

第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。

第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。

第五级:技术工人,技术精湛,熟悉行业知识但领导能力欠加,此类人大多为系分人员或资深程序员,基本上桀骜不逊,自视清高,不愿于一般技术人员为伍,在论坛上基本以高手面目出现。

第六级:熟练工人,技术有广度无深度,喜欢钻研但浅尝辄止。此类人大多为老程序员,其中一部分喜欢利用工具去查找网上有漏洞的TB服务器,干点坏事以获取成绩感。如果心情好,在论坛上他们会回答菜鸟的大部分问题。此级别为软件业苦力的重要组成部分。

第七级:工人,某些技术较熟练但缺乏深度和广度,此类人大多为程序员级别,经常在论坛上提问偶尔也回答菜鸟的问题。为软件产业苦力的主要组成部分。

第八级:菜鸟,入门时间不长,在论坛上会反复提问很初级的问题,有一种唐僧的精神。虽然招人烦但基本很可爱。只要认真钻研,一两年后就能升级到上一层。

第九级:大忽悠,利用中国教育的弊病,顶着一顶高学历的帽子,在小公司里混个软件部经理,设计不行,代码不行,只会胡乱支配下属,拍领导马屁,在领导面前胡吹海侃,把自己打扮成技术高手的模样。把勾心斗角的办公室文化引入技术部门,实在龌龊!

第十级:驴或傻X,会写SELECT语句就说自己精通ORALCE,连寄存器有几种都不知道就说自己懂汇编,建议全部送到日本当IT产业工人,挣了日本人的钱还严重打击日本的软件业!
posted @ 2013-05-28 10:54 tbwshc 阅读(205) | 评论 (0)编辑 收藏

前段时间写Oracle存储过程就遇到问题.
原来写成这样
if 1=2 then
  null;
elseif 1=3 then
  null
end if;
在PL/SQL编辑环境下elseif没有变色,说明不是关键字。
后来改成
if 1=2 then
  null;
else if 1=3 then
  null
end if;
编译时报异常。
去goole上百度了下,很多人都说是 elseif。
又试了N边,编译总不能通过。
怒了,直接写成
if 1=2 then
  null;
else if 1=3 then
    null
  end if;
end if;
问题就解决了。

今天又要在存储过程中用if...else if ...else if...写数据转换的东东,还按原来那样写看着很恶心。
后来发现是写成if...elsif...elsif....end if;
神啊,终于被我找到答案了。

返回来看看,原来不是elseif,而是elsif,少了个"e"他大爷的,干嘛要少个e啊,万恶的Oracle,真恶心。

不管怎么着,问题总算解决了,TB把这恶心记在心里,以后不犯同样错误。

上网一搜,一群人还在犯错中……

抄别人逻辑,写自己代码,让他们郁闷去吧!O(∩_∩)O哈哈~
posted @ 2012-11-07 15:02 tbwshc 阅读(992) | 评论 (0)编辑 收藏

没办法就下了一个2.6,如果用2.4就太低了,又折腾了,半天找到了MySQL-python-1.2.2.win32-py2.6.exe 这个安装文件,安装完成,执行 import MySQLdb 出现问题提示:

  File "C:\Python26\lib\site-packages\MySQLdb\__init__.py", line 19, in <module>

  ImportError: DLL load failed: 找不到指定的模块。

  经过无数的查找,发现官方的说法也也不是很正确,官方给的解决办法是 LD_LIBRARY_PATH 加载这样一个环境变量,加载的一样不能解决问题,更多的办法是指linux下的处理,

  win 上面没有了,又找了无数资料,发现是缺少2个dll文件分别为 libguide40.dll ,libmmd.dll 搜索下,下载的地方不少,然后copy到 WINDOWS\system32 下面现在执行 又出现

  了错误,这东西很神奇啊,错误提示为:

  sys:1: DeprecationWarning: the sets module is deprecated

  这个错误,我又找了无数的资料,看了很多东西,最后发现是 2.6这个版本已经不推荐使用 sets 这个模块了,但是为了兼容性依然加载了这个模块但是做了警告提示,我想了很

  多办法不让警告信息放出来或者捕捉异常,等等没有成功,采取了最恶劣的方式,修改原文件,进入python安装目录找到如下文件 Python26\Lib\sets.py 注释掉 83-85行

  #import warnings

  #warnings.warn("the sets module is deprecated", DeprecationWarning,stacklevel=2)

  就可以了,我上面给合并成2行了。

  到现在 mysqldb 安装完毕,没有了任何错误输出,也明白了,为什么官方没有推出2.6版本的mysqldb了。

  python3k这个本版对sets module 应该已经支持了,所以官方从发布开始,一直没有推出真正的版本,也就是说现在python3k还不能使用mysqldb这个空间连接mysql 。而且很多工

  具现在也都不支持3k看来要实现 3k的普及还有很多的路要走,tb再这个阶段想要学习python的人要不断的选择跟折磨中度过了。

  我的gui还没有开始,就用去了一天的时间。


 

posted @ 2012-10-26 17:31 tbwshc 阅读(924) | 评论 (0)编辑 收藏

最近一台新上线的Oracle10gR2数据库在警告日志文件中(alert.log)持续出现如下错误:

  Tue Jul 18 23:09:22 2006

  WARNING: inbound connection timed out (ORA-3136)

  Tue Jul 18 23:09:23 2006

  WARNING: inbound connection timed out (ORA-3136)

  Tue Jul 18 23:09:25 2006

  WARNING: inbound connection timed out (ORA-3136)

  Tue Jul 18 23:09:30 2006

  WARNING: inbound connection timed out (ORA-3136)

  Tue Jul 18 23:12:15 2006

  WARNING: inbound connection timed out (ORA-3136)

  同时在sqlnet.log中记录了如下错误:

  Fatal NI connect error 12170.

  VERSION INFORMATION:

  TNS for Linux: Version 10.2.0.2.0 - Production

  Oracle Bequeath NT Protocol tb Adapter for Linux: Version 10.2.0.2.0 - Production

  TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.2.0 - Production

  Time: 19-JUL-2006 11:25:26

  Tracing not turned on.

  Tns error struct:

  ns main err code: 12535

  TNS-12535: TNS:operation timed out

  ns secondary err code: 12606

  nt main err code: 0

  nt secondary err code: 0

  nt OS err code: 0

  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.123)(PORT=58147))

  这是和网络连接相关的一个错误,Metalink上给出了如下的解决方案:

  1.set INBOUND_CONNECT_TIMEOUT_ =0 in listener.ora

  2. set SQLNET.INBOUND_CONNECT_TIMEOUT = 0 in sqlnet.ora of server.

  3. stop and start both listener and database.

  4. Now try to connect to DB and observe the behaviour

  这里重起数据库和Listener我认为是没有必要的,我们reload一下Listner应该就可以了.

  [oracle@order admin]$ lsnrctl

  LSNRCTL for Linux: Version 10.2.0.2.0 - Production on 19-JUL-2006 15:26:33

  Copyright (c) 1991, 2005, Oracle. All rights reserved.

  Welcome to LSNRCTL, type "help" for information.

  LSNRCTL> reload

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.9.11)(PORT=1521)))

  The command completed successfully

  LSNRCTL> services

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.9.11)(PORT=1521)))

  Services Summary...

  Service "order" has 2 instance(s).

  Instance "order", status UNKNOWN, has 1 handler(s) for this service...

  Handler(s):

  "DEDICATED" established:0 refused:0

  LOCAL SERVER

  Instance "order", status READY, has 1 handler(s) for this service...

  Handler(s):

  "DEDICATED" established:0 refused:0 state:ready

  LOCAL SERVER

  The command completed successfully

  LSNRCTL> show inbound_connect_timeout

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.9.11)(PORT=1521)))

  LISTENER parameter "inbound_connect_timeout" set to 0

  The command completed successfully

  LSNRCTL> exit

  修改之后,观察了一段时间,目前正常.

  关于SQLNET.INBOUND_CONNECT_TIMEOUT参数,Oracle建议修改该参数,以避免denial-of-service攻击.

.item-area{width:578px;margin:15px auto;border-top:1px solid #ddd;color:#666} .item-area a,.item-area a:link,.item-area a:visited{color:#666;text-decoration:none} .item-area a:hover{color:#3a7ad9;text-decoration:underline;} a img{border:none;vertical-align:middle} .item-area h2,.item-area h3{float:none;font-size:100%;font-weight:normal;} .item-area .h2{height:25px;margin:10px 0;padding-left:35px;*float:left;font:bold 14px/25px "宋体";background:url(http://sns.thea.cn/module/images/icos.png) no-repeat 0 0} .item-area span.more{float:right;font:normal 12px/25px "宋体"} .item-area a.more{float:right;font:normal 12px/25px "宋体"} .item-a{margin-bottom:15px} .item-a .h-ksrm{background-position:0 0} .item-a li{*display:inline;overflow:hidden;zoom:1;line-height:2em;padding-left:35px;font-size:14px;background: url(http://sns.thea.cn/module/images/btns.png) no-repeat -1px -28px;} .item-a li a{float:left;} .item-a .testBtn{float:right;width:58px;height:21px;line-height:21px;font-size:12px;margin-top:5px;margin-top:3px;text-align:center;background:url(http://sns.thea.cn/module/images/btns.png) no-repeat -1px -1px; color:#FFFFFF;} .item-a a.freeBtn{width:20px;margin:0 0 0 6px;line-height:28px;color:#fff;font-size:12px;text-indent:-9999px;background: url(http://sns.thea.cn/module/images/icos.png) no-repeat 0 -131px;} .item-a li.hots a.freeBtn{background-position:0 -105px} .item-a a.examnum em{font-style:normal;color:red;font-weight:bold;} .item-b {padding:5px 0 20px;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd} .xsjl-list-col3s li{display:table-cell;*display:inline;zoom:1;vertical-align:top;width:182px;padding-right:10px;line-height:150%;font-size:12px;} .item-b .h-xsjl{background-position:0 -26px} .item-b .pic{float:left;margin:3px 10px 0 0;} .item-b em{font-style:normal;color:#dc2c2c} .item-b a.join{display:inline-block;padding-left:20px;background:url(http://sns.thea.cn/module/images/icos.png) no-repeat 0 -160px} .item-b .xsjl-list-col3s h3 a{display:inline-block;width:120px;overflow:hidden;white-space:nowrap;color:#3a7ad9} .item-b .xsjl-list-col3s h3{text-align:left;line-height:150%;font-family:"宋体","微软雅黑"}
posted @ 2012-10-22 14:16 tbwshc 阅读(994) | 评论 (0)编辑 收藏

在局域网工作环境中,网络管理员时常会采用远程桌面连接方式来管理局域网中的重要服务器,这种管理方式不需要网络管理员到服务器现场就能完成管理任务,从而大大提高了网络管理效率。不过,为了保护服务器系统的安全性,网络管理员往往会进行不少安全设置,而其中一些设置有时会在无意间影响远程控制连接的成功率。这不,考试大就曾遭遇到一则故障现象,在与局域网目标服务器系统成功建立远程桌面连接后,在服务器中正常启用了一个控制程序,然而在考试大关闭远程桌面连接后,那个控制程序也立即自动关闭,这么一来考试大始终无法通过该控制程序来对服务器系统进行有效控制,这是什么原因呢,我们又该如何解决这样的远程控制失败故障现象呢?现在,本文就将该故障现象的具体排除过程贡献出来,希望各位朋友能从中获得一些帮助。

  偶遇远程控制失败故障
  考试大单位所在局域网的规模不是很大,文件服务器和普通工作站同时连接到局域网交换设备上,并且它们都处于相同的工作子网中,为了保证网络访问的高效性,网络管理员并没有在交换机设备上设置任何访问策略,也没有对任何交换连接端口进行安全限制,因此考试大平时利用远程桌面功能连接目标服务器系统时一切很顺利,并且也能随意进行各种远程控制操作。为了保证文件服务器系统能够安全运行,网络管理员及时在该系统中安装了各类系统漏洞补丁程序,同时又在系统中进行了一些安全设置。
  最近,由于工作需要,考试大时常需要远程登录连接到目标服务器系统中,来启用一个控制程序,以便对局域网中的一些网络访问操作进行控制管理;可是在利用远程桌面连接功能与目标服务器系统建立好通信连接后,考试大按常规方法启用运行了安装在服务器系统中的那个目标控制程序,在确认这个控制程序正常运行后,考试大打算关闭远程桌面连接窗口,这时考试大发现随着远程桌面连接窗口的关闭,先前在局域网服务器系统中正常运行的那个目标控制程序也跟着自动关闭了,这样一来考试大就无法通过远程桌面连接功能成功实现对局域网服务器的远程控制。
  正常情况下,我们只要不对远程服务器系统执行关机、注销或重新启动操作,单纯是点击远程桌面连接窗口中的X按钮时,那些已经处于启用状态的控制程序还应该会以系统后台的形式进行运行,而不会出现跟随远程桌面连接断开而自动关闭的现象发生。

  检查远程控制帐号设置
  那究竟是什么原因造成了远程控制服务器失败现象呢?考虑到考试大能够通过远程桌面连接功能与远程服务器系统建立控制连接,同时也能在服务器系统中启用目标控制程序,问题只是在于目标控制程序无法持续运行,于是考试大估计该故障很可能是远程登录帐号在控制会话方面的设置不合适引起的。为了检验自己的分析是否正确,考试大立即来到服务器现场,并以系统管理员身份登录进入本地服务器系统,用鼠标右键单击系统桌面中的“我的电脑”图标,从弹出的快捷菜单中执行“管理”命令,打开对应系统的计算机管理控制台窗口,在该窗口的左侧显示区域依次点选“系统工具”/“本地用户和组”/“用户”分支选项,在对应“用户”分支选项的右侧显示区域,找到远程桌面连接帐号,再用鼠标右键单击该帐号,从其后出现的快捷菜单中执行“属性”命令,打开目标帐号的属性设置对话框;在该设置对话框中单击“会话”标签,打开如图1所示的标签设置页面,从该设置页面中我们会看到“空闲会话限制”、“活动会话限制”、“结束已断开的会话”这几个参数选项,其中“空闲会话限制”参数选项主要是针对没有对服务器系统进行任何控制操作时Windows系统对会话连接的限制设置,一般情况下,我们如果想让服务器系统高效运行的话,可以合理进行空闲会话限制设置操作,也就是说将“空闲会话限制”参数数值设置为一分钟、五分钟等,而不是设置成“从不”,这样可以让其他的用户连接能高效地访问服务器系统;而“活动会话限制”参数主要是针对通过远程桌面连接功能对服务器系统正在进行的控制操作所使用的一种设置,通常情况下对服务器系统进行远程控制的持续时间不是很固定,因此该参数的数值尽量也应该设置为“从不”,不然的话我们在远程控制服务器系统的过程中很容易出现一些莫名其妙的问题;“结束已断开的会话”参数主要是为了有效解决某远程控制连接关闭时服务器系统异常运行而自动锁死的情况,通常情况下,如果想让通过远程控制方式启用起来的控制程序长时间在服务器系统中运行时,我们应该将该参数数值设置为“从不”。
  由于本文遇到的故障现象发生在远程会话连接断开之后,并且该现象主要是服务器系统中的控制程序无法持续运行,很明显这意味着已断开的会话受到了服务器系统的限制;可是,仔细查看“结束已断开的会话”参数时,考试大发现该参数的数值已经被设置成了“从不”,这说明远程控制服务器失败的故障现象与远程控制权限设置无关。

  检查活动桌面是否启用
  如果服务器系统终端服务配置中的活动桌面功能没有正常启用时,那么任何用户是无法通过远程控制方式来正常启用运行服务器系统中的控制程序的,因此在确认远程控制服务器失败故障与远程控制帐号设置无关后,我们还需要检查活动桌面功能有没有正常启用,tb下面就是具体的检查步骤:
  首先以系统管理员权限登录进入本地服务器系统,打开该系统桌面中的“开始”菜单,从中依次点选“程序”/“管理工具”/“终端服务配置”命令,在其后出现的控制台窗口中,用鼠标选中左侧区域的“服务器设置”选项;
  其次在对应“服务器设置”选项的右侧显示区域,找到“Active Desktop”子项,用鼠标右键单击该子项,并执行右键菜单中的“属性”命令,打开如图2所示的设置对话框,检查其中的“禁用Active Desktop”子项是否处于选中状态,要是发现该选项已经被选中时,我们应该及时取消它的选中状态,再单击“确定”按钮保存好上述设置操作,如此一来我们就能服务器系统终端服务配置中的活动桌面功能可以正常启用了。

  检查远程终端服务设置
  在启用了活动桌面功能后,考试大发现远程控制服务器失败的故障现象仍然存在,这说明引起该故障的原因与活动桌面功能没有任何关系。考虑到远程控制服务器操作与远程终端服务也有关系,于是考试大打算再对远程终端服务设置进行一下检查,看看其中的设置是否正确,毕竟这里的设置优先级要高于远程登录帐号在远程连接会话方面的设置,换句话说就是Windows服务器系统往往先按照这里的设置对远程控制连接进行限制,之后才会使用远程管理帐号中的相关参数对远程控制操作进行限制。
  在检查远程终端服务设置时,考试大先是在服务器系统桌面中打开了“开始”菜单,从中逐一点选“程序”/“管理工具”/“终端服务配置”命令,在其后出现的控制台窗口中,用鼠标选中左侧区域的“连接”选项;

posted @ 2012-10-18 13:03 tbwshc 阅读(1097) | 评论 (0)编辑 收藏

仅列出标题
共10页: 1 2 3 4 5 6 7 8 9 Last