分类目录归档:编程&学习

难得碰到这么极品的代码

最近托管了台新服务器.处理速度比原来快了不少.

但是新的iis上 有个站上似乎一直有死循环. 做成独立web园也不行 一直cpu 100%

到今天终于忍不住了 大刀阔斧的查找了起来

首先是找出是哪个文件引起了死循环

没想这个站竟然不记iis日志…. 很窝火

用iis分析工具 realtime的分析..总算找出来了..

一个不带参就死循环的页面. 最诡异的是.. 不段有些比较无聊的人…. 有事没事上来访问下这个页面.. 还全都不带参… 我真怀疑那个站站长是不是跟别人结仇了..

丫用的代码是
while not rs.eof

….
rs.movenext
wend

看起来是很正常的语句. 但是加断点以后发现这个rs似乎永远不会eof….甚至rs为空都不会…

于是加了四个flag…. 分别判断 eof , not eof , bof 和not bof

不过让人难以致信的是 … 四个flag均为TRUE…… 抓狂啊..

想了半天想不出到底怎么回事 只好用分支判断语句给饶过去..

if rs.bof and rs.eof…..
无参数处理
else
有参数处理
end if

总算是不死循环了……. 但是这么极品的情况还是第一次碰到… 大概和这个参数在select …. where in语句中有关吧

希望明天睡个好觉 别他妈再死机了

Share

linux如何让文件可执行? 太精辟了

: 你的script文件edit完毕有个名字, 姑且叫阿娇
: 用chmod +x 阿娇
: 把阿娇x了就可以执行命令了.

嗯,以此类推,我们生活的世界就是一台电脑,女人都是电脑上的文件,由linux系统
来管理,

r表示可以看
w表示可以摸
x表示可以x

owner是老公,group是老公之外的几个关系亲密的男人,一般用户则是所有男人

试举几例说明一下女人的属性:

-r——– 修女
-rw——- 性冷淡
-rwx—— 专一好女人
-rwxrw—- 跟别的男人暧昧的女人
-rwxrwx— 跟别的男人出轨的女人
-rwxrwxrwx 公共汽车
drwxrwxrwx 一群公共汽车

———- #$@#%&_*&(*^*&%%^)难道是恐龙?

做root应该很爽,想x谁就 chmod +x ……

Share

Windows命令行NTFS卷压缩、解压缩

在Windows命令行模式下,也可以进行对NTFS卷上的文件夹进行压缩、解压缩操作 。在公司一般Server白天使用者较多,故而本人使用命令行模式将磁盘、CPU占用较多的NTFS压缩、解压缩操作移到夜间,并使用计划任务自动执行。

压缩文件夹及子文件夹下的所有文件:

compact /c /i /s:E:\BankOfChina
(注意没空格)

解压缩(不改变压缩状态,只是之后拷进去的文件不会被压缩):

compact /u c:\tmp

解压缩(包括所有的子文件夹下文件):

compact /u /i /s:c:\tmp
注:/i为忽略所有错误,如果要半夜自动运行的话,加这个很有必要,以防止中途出错任务挂起。

以下附完整的Windows compact命令行参考:

语法
compact [{/c | /u}] [/s[:Dir]] [/a] [/i] [/f] [/q] [FileName[...]]

参数
/c
压缩指定的目录或文件。
/u
解压缩指定的目录或文件。
/s[:Dir]
指定将所请求的操作(压缩或解压缩)应用到指定目录的所有子目录,或者如果没有指定目录,则应用到当前目录的所有子目录。

/a
显示隐藏或系统文件。
/i
忽略错误。
/f
对指定目录或文件强制进行压缩或解压缩。这用于当系统崩溃中断操作时文件被部分压缩的情况。要强制文件压缩完全,请使用 /c 和 /f 参数并指定部分压缩的文件。
/q
只报告最基本的信息。
FileName
指定文件或目录。可以使用多个文件名和通配字符(* 和 ?)。
/?
在命令提示符下显示帮助。

Share

闲话转行学电脑[转的,嘲来]

   我发现很多人觉得如果要敲开IT这一行业的大门,必须给守门的圣彼得看一眼脚心上烙着的C++标记。从某种角度讲,这种想法是对的。举个简单的例子,我曾经参加过“电视机使用培训”的课程,为了让学生能够充分的理解,教师从无线电传送的理论、电子枪的原理讲起。一直到培训的结束,学生也没有掌握如何使用遥控器换台以及调节图像质量。当然,这并不影响学生们在考试的时候答对诸如:什么是图像?如何正确的敲击遥控器的按键?开关电视机和揭开蒙上电视机罩子的顺序,以及正确画出电视机的外观图。通过了这些考试,学生们可以名正言顺的通过干部的考核以及职称的评定,因为有的单位规定,45岁以下的处级领导干部必须通过国家电视机一级考试或者某市电视机应用能力初级考试。不幸的是,我并没有通过这门考试,因为我不是学生,而是那个站在讲台上云毡雾罩的教师,考过了考试也没有单位让我当处长。

<1>那么进入IT行业究竟需要不需要掌握C++?

首先要说什么是IT。IT是英文缩写,意思是Information Technology。当然,你也可以认为是IndianTyphoid或者其他什么的。也就是说,IT并不是Computer Te chnology、Software Technology或者C++ Technology。从事IT的人,并不是每天喝着可乐、听着摇滚乐,对着显示器摇头晃脑的写着C++程序的。虽然我有时候也在喝着可乐,对着显示器摇头晃脑的写程序,但我几乎不听摇滚乐,因为不喜欢故作颓废的摇滚乐手们。

从事IT的人,有很多的地方可以容身。可以在银行、大企业中的IT部门,可以在一个IT公司,还可以在大街上卖盗版光盘。卖盗版光盘的当然也是IT行业的人,盗版IT人要知道进什么样的货,不能到了2000年还在卖MS-DOS4.0;也得知道Oracle不是乌龟壳子,而是刻在乌龟壳子上面的鸟文;还必须能够分清《金山解霸》和《狮王争霸》不是一种类型的光盘,不能卖同一个价钱,虽然它们都是一张亮晶晶的塑料盘中间有个洞。因此,并不是怀里抱着个崽就能冒充盗版IT人的。

企业里的IT部门,需要什么样的人呢?从技术角度,可以分为硬件维护、网络维护、系统管理、软件开发;从管理角度,可以分为技术人员、技术骨干、项目负责人、CIO。CIO,意思是ChiefInformationOfficer,可以翻译成:电脑科科长、信息处正处长、总工程师、主管技术的副总经理或者首席技术总监。

在总经理满天飞的今天,你一定要留神别人的名片上是否印着“C什么O”,否则,看长相以为只是个扫地的大娘,没准是个ChiefCleanerOfficer呢!如果没有意外的话,一个非IT行业的人转入IT行业,是不会做到CIO的位置上的。不过也不能一概而论,在国有大中型企业中,是不拘一格重用有真才实学的人才的,CIO的位置,也常常由非IT专业的管理型人才担任的,据说也是向世界500强企业学习的结果。

一般说来,在企业的IT部门工作,并不一定要求非常强的技术能力。因为企业中的日常工作并没有非常高的技术含量,无论硬件、网络、系统还是软件,一般都会外包给相关的IT企业来做。比如IT部门的技术人员不一定非需要掌握如何攒机器、如何安装调试网络设备、如何配置系统软件以及如何使用C++编制应用程序。

负责硬件维护的技术人员需要这样的技术能力:能够正确的将显示器、键盘、鼠标与主机连接起来;能够把用户电脑中的软驱线拔走,使得用户无法随便拷贝文件;能够在用户抱怨机器坏了的时候判断出显示器开关没有打开;能够把用户机器的32兆内存减为16兆,而把总经理的32兆内存增加为64兆……

负责维护网络的技术人员需要这样的技术能力:能够给新买的机器增加网卡,安装驱动程序然后联到网络上;能够使用线钳制作RJ-45网线,或者知道去哪里买3米长的现成网线;能够在网络瘫痪时确定是交换机故障还是竖井里进水了,然后自己解决或者打电话找网络公司解决;能够在用户抱怨上不去网的时候发现他把网线接在电话插座上了……

负责系统维护的技术人员需要这样的技术能力:能够在系统中增加新用户,定义用户的权限;能够管理打印队列,并且不让用户知道他的打印文件可以被安排在其他的打印文件后面;能够给用户重新安装Office软件,给总经理安装金山解霸和纸牌游戏;能够帮助用户建立驱动器映射,在打印的时候选择打印机……

负责软件维护的技术人员需要这样的技术能力:能够辅助来自IT企业的系统分析人员了解用户对应用的需求;能够设定应用软件中的各种参数,定义用户权限;能够对软件进行界面修改,并且重新发布;能够在数据库出现错误时,定位错误所在,并且改正错误……

另外,一般企业的IT部门中的技术人员统统都有一个HelpDesk的角色,这个角色需要这样的技术能力:能够在电话中向用户解释清楚在Ctrl、Alt、Delete这三个键都在什么地方,如何同时按;能够在电话中告诉用户如何键入顿号和左右书名号;能够在用户抱怨文件找不到时,帮助用户在无数的垃圾文件中找到那个起名叫“zywj.”的重要文件;能够
向用户解释清楚为什么他的电脑有光驱,能听CD却看不了VCD……

当然,我并不是所谓的麦当劳管理咨询公司的管理顾问,我的划分不是非常科学的,只能帮助非IT专业的人了解一下企业中IT部门需要什么类型的人。如果要学技术,需要学些什么,学到那种程度。至于企业中需要的具有更高技术能力的人才,和IT企业的专门人才有重叠,接下来会提到。

啊,对了,还有CIO。CIO需要的素质包括:在技术上有大概的了解,知道“Internet”、“Intranet”以及“Extranet”这些莫名其妙的技术词汇;能够追踪当前的技术趋势,知道这个月流行电子商务、上个月大家都在议论Intranet、上上个月LotusNotes非常火爆以及上上上个月总经理的岳母过生日;CIO还要能够担负起项目招标和采购的任务,要能
够在河边走而不湿鞋,或者湿了鞋也不被发现……

相对于IT企业,传统企业IT部门的进入门槛较低,能够拿下一个类似于MCP的证书就可以去试着应聘了。因为在IT企业以K为单位的薪水刺激之下,传统企业的IT部门很难找到技术水平很高的人才,即使找到了也很难留住,即使留住了也很难阻止他们在外面打兼职。

举个例子:某单位IT领导,时髦的叫CIO,最近比较烦,倒不是因为找不到什么蓝色的药丸,而是因为感到难于领导手下的这群小兵。其中只有一个小兵属于积极肯干型的,因为他每天都在觊觎这个CIO的位置。另一个小兵属于游戏儿童型的,每天八小时工作时间倒有七个小时在组织军队与电脑搏斗,另外那一小时则在拼命的安装、测试各种垃圾游戏。
而其他的小兵几乎都在外面兼职,并且毫不客气的使用公司里的电脑作为赚钱机器。有一天终于该领导想出一个办法解决这个问题,他让所有的小兵把桌子掉一个头,脸冲着墙屁股冲着门,这样他就可以随时进来监督。结果一个月后,兼职小兵辞职的辞职,请长假的请长假,这个IT部门仍然是一团糟。

虽然看上去门槛很低,但是对于非IT专业的人来说,要想嫁到这个门里去,还是有个曮«盆要迈。很多非IT专业的人在应聘IT岗位时很心虚,因为他们仍然属于电脑爱好者的行列。虽然硬件方面他们知道使用香油消除CPU风扇噪音,软件方面能够使用FPE修改游戏进度,网络方面能够建立一个由两台电脑组成的点对点网络,也经常进入论坛灌水。但是企业的“商业”环境毕竟不同于家里的“多媒体”环境。

还举刚才的例子:与这个IT部门一墙之隔的业务部门,有一个典型的电脑爱好者。毫不夸张的说,他对于声霸卡、巫毒卡的了解远远多于IT部门的任何一个所谓的技术人员,更重要的是,他比他们中的任何一个都热爱这个单位里的这个IT部门。每天一闲下来就跑到IT部门朝圣,积极与IT部门的技术人员讨论所谓的热门技术问题。他也积极的向业务部门领
导、IT部门领导、公司领导申请调入IT部门,然而最终,他仍然没有能够进入这个非常缺人的IT部门。有诗为证:

热脸贴在,
冷屁股上。

其实如果打算转行,进入传统企业的IT部门做技术人员,很简单,去考一个MCSE认证或者其他的类似认证就可以了。“BillGates”的签名印在那张MCSE的破纸上,大多数时候比皮鞋盒上的“赵老师”的亲笔签名要值钱的多。

<2>MCSE

对于非IT专业的人,MCSE提供了一个非常好的机会。下面我要为Microsoft做广告了。

MCSE意思为Microsoft Certificate System Engineer,顾名思义,拿下Microsoft的认证,意味着Microsoft承认你可以进入IT行业了,虽然这并不代表得到什么工作机会,或者其他的什么好处。拿下Microsoft的认证,你会被丢进它的数据库,成为其中的一条记录。Microsoft也会提供给你一张类似于奖状的纸让你向同事或者女朋友炫耀,不过切记向同事炫耀的时候小心他们的口水弄湿了你的奖状。

只有这些吗?当然不是,作为业内最受瞩目的软件公司,Microsoft有着更高明的伎俩。再虚荣的MCSE,也不会天天把奖状拿给别人看,除非你能把它缝在后背上在大街上乱走。Microsoft解决了这个虚荣心问题,它会给你寄个MCSEPIN,不大也不小,别在胸口上刚好。这样MCSE们就可以天天换衣服不换PIN,天天解释给别人听:您说这个呀,这是微软
认证专家的标志…您连微软都不知道,就是世界首富开的公司…什么刘晓庆开的房地产公司!刘晓庆的腰还没有人家的汗毛粗呢!

如果想拿下MCSE的考试,必须通过Microsoft的几门考试,考试全部是针对微软产品的。这里我可以给希望获得MCSE的非IT专业的人一些建议。

首先,你需要一个决心,制定一个计划,安排一些时间,储备一些钞票。决心是必需的,因为对于非IT专业的人来说,这和前面提到的“电视机等级考试”是绝对不可类比的,绝不是一个可以轻松搞定的认证;计划是必需的,考哪几门,按什么顺序考一定要搞清楚;时间是必需的,如果全部是利用业余时间,那么也许会需要半年甚至还要长的时间;钞票
据说不是必需的,当然前提是你能够找到一个仁慈的公家肯替你出钱为你的跳槽装脚踏板。

然后,你必须要买书,我强烈建议买Microsoft原版的英文书。原因有若干:中文书印刷质量奇差;你可以掌握大量的英文技术词汇;只有几门考试可以使用中文;Microsoft的原版书在中国和越南卖的是特价;又厚又大的英文书能唬住你的同事;我是Microsoft原版书非法传销公司中国区销售代表。当然,这只是建议,中文书的好处在于:便宜;没有
不认识的字;不会养成你嘴里乱蹦English的毛病;仅此而已。中文书的价格从20RMB到100RMB,根据出版社的不同而不同。英文书的价格从则从100RMB到200元RMB不等,根据课程的不同而不同。全部英文书加起来要花几百RMB。

然后,你可以参加培训,也可以不参加。非IT专业的人想必也对其他的类似培训有了解,仅以英语为例:四级班、六级班、口语班、托福班、GRE班、GMAT班、IELTS班…参加不参加,参加那个培训中心的班,全得您自个拿主意。Microsoft指定了很多的培训中心,你可以在培训班参加培训、买书、考试。培训中心现在竞争得很激烈,千万别相信学费、书费、考试费不能打折。如果你长得very very handsome,腰里再揣着个LP,也许培训中心的小姐会免费让你听课、看书。考试实在没法免费,不,也有办法,有时候Microsoft会促销考试,就可以让培训小姐把别人名下的考试送给你。

万事齐备,你就可以参加考试了,培训中心会给你一个建议考哪几门,按什么顺序考。这个建议是免费的,只要你假装对他们的培训感兴趣就可以了。考试的报价:250RMB。因此考过MCSE,你会在考试上花1,500RMB至+∞RMB,具体花的钱取决于你因为考不过而重考了几次。有谣言说Microsoft针对Windows2000的MCSE认证能够自动识别考生兜里钱的数目,考试系统自动给有钱的考生出更难的题。谣言可信度95%。

一般说来,在考过两门的时候,你会得到MCP认证,Microsoft Certificate Professional。中文很有意思:MCP-微软认证专家,听起来比MCSE-微软认证系统工程师,还要厉害的多。你现在就可以胸口别一个别针,后背背个奖状到处乱逛了,只是得小心下雨,奖状掉色掉在屁股上。关于颜色,Microsoft为每一个认证都准备一种颜色,你可以使用MCC-Mi crosoft Certificate Color装饰你的名片、简历、床单。

这些考试说容易也容易,说难也很难。你相不相信中文专业的考生可以考TCP/IP满分,资深IT专业的程序员考不过Windows98。因为Microsoft认证系统的目的,其实还是为了宣传公司,因此考试时要顺着Microsoft答题。总的说来,只要你在战略上藐视Microsoft,战术上重视Microsoft,你就可以得到MCSE。

通过MCSE对于希望进入IT行业的非IT专业的人来说无疑是一个很好的起点,无论实际技术能力是否有大幅的提高,至少对Microsoft的软件有了一个总体的了解,不会再被MS-DOS、Windows 3.1、Windows 95、Windows 98、Windows NT、Windows NT Server、Windows NT Workstation、Windows NT Enterprise、Windows 2000 Professional、Windows 2000 Server、Windows Me、Windows XP搞晕。

一直有人问:MCSE的证书,是否能够进入IT公司?如果不行,我是不是还要通过MCDBA,MCSD?也有人问:我不打算进入企业的IT部门,我就打算进IT公司,我从什么语言学起?

这类问题很难回答,因为IT公司,实际上是有很多类的。比如一个拿着C++简历的软件人员去应聘,也许甲公司会把他待为上宾,“坐,请坐,请上座”,总经理亲自出来和他袖口对袖口的谈价钱;也许他在乙公司就会坐冷板凳,看着一个高中毕业的销售人员在享受“茶,上茶,上好茶”。

如果把IT公司归类的话,第一大类应该是硬件公司。如果Microsoft不同意把硬件公司放在首位,然后硬是在算盘上开发出一套Windows2200的话,我就把软件公司放在第一类。

硬件公司再细分的话,又可以分几类,每一类下面又有几个子类,不过那样就离题太远了。因为这又不是学生物,干嘛非要弄清楚驴子和人的区别,反正都是脑袋上有毛,目空一切,经常用屁股思考的脊椎动物。

<3>硬件公司需要什么样的人才呢?

第一类,也是我最崇拜的是芯片设计人员。在Intel的MMX广告中,穿紫色太空服跳舞的家伙寜n±是我的偶像。可是,又一想旁边还有那些一本正经的同事,最终又放弃了这个想法。

要想得到一份设计芯片的工作,绝非易事。先不说要学的课程较难,就是要求的个人身体素质就很高。首先需要有很强的逻辑思维能力,能够完全停掉右脑,只用左脑思考而不会导致终身半身不遂;要能够在“与门”、“非门”、“或门”、“与非门”、“或非门”、“拉链门”中转一天不迷路;要能够在密密麻麻的模拟电路板上,找到自己掉在上面的米饭粒。除非毕业于物理系或者电子系,否则千万不要试图进入这一职业。当然,这只是我的主观臆断,舞蹈专业的小姑娘如果找到一份这样的工作,并把第一个月的工资摔在我的脸上,我也不反对。与之相类似的,是电路板设计人员。在IT一行里,这一类的从业人员要远远多于芯片设计人员,摔在别人脸上的工资也比芯片设计人员少。设计的方向有很多,除了主板以外,还包括网卡、显卡、声卡、Modem卡、SCSI卡…,不过由于主板生产厂商、软件厂商看不惯卡商,已经联手消灭了很多卡商,比如多功能卡、汉卡、防毒卡都已经绝种很多年了。现在中关村里卖的汉卡化石,价格已经到了天价,黄庄配套市场里面很多的柜台老板都不再专心卖假CPU了,整天每天没事就在地上挖,想挖出一两块卡的化石,据说已经有挖出来北京人头盖骨的,可惜年头太短,只是头盖骨,还没变成化石。

制造卡的商人之所以被联手围剿,原因很简单,都是金钱惹的祸。电脑能干的事情很多,但是不能干的事情更多。比如现在的电脑没有可乐机的功能,不能向用户提供纸杯可乐。这时,某个厂商生产出来了可乐卡,装上可乐卡的电脑就具有了这一功能。然后,市场上可乐卡的价格卖一千块钱还卖的很火,虽然成本只有一百块钱。那么,主板生产商和软件
商能不眼睛冒火吗?实际上,驱动IT界迅速发展的,就是靠的这种利润驱动。

对于非IT专业的人来说,在硬件公司中,门槛较低但最有成就感的是攒机人员。很多人都有这种感觉,第一次给别人攒机器时,并不了解太多的硬件知识,只知道看说明书。而当这一堆纸盒子终于成为一台电脑,特别是能够玩挖雷的电脑时,绝对是一种享受。如果能够在电压上犯个错误,烧糊一块板子,这种享受就更有味道了。

成为攒机人员虽然门槛低,但要想干好也不容易,特别是一个攒机人员通常也是一个销售人员。必须了解各种硬件公司,了解各种硬件,了解原包与散包的区别;千万不能进假货赔钱,也不能被客户发现机器里装了假货;还要了解各种软硬件的兼容性,不能与Windows 98搏斗四个小时也没有让音箱出声音;要具有股市里追涨杀跌的手段,绝不能让跌价的硬件砸在自己手里…要学的实在太多了,做一个好的攒机人员,一定要记住“稳、准、狠”。至于什么是稳准狠,如何做到稳准狠,就不多说了,否则我会被列入2000年中国奸商名人录的,不花钱而上名人录,无论如何我都会不好意思的。举个例子:比如,客户让你建议什么CPU好,千万不要推荐性价比最好的CPU,这种主流CPU也许只有五块钱,最
多十块钱的利润,一定要推荐你赚的最多的那一种,让客户相信这一种最便宜,最适合他。再举个例子:如果客户非要在CPU上再划掉十块钱,否则就走人,没关系,就划掉这十块钱,然后在机箱上加上五十块钱,而这时候客户已经觉得占了便宜,不好意思再划得那么狠了。

硬件公司还包括很多其他方面的人才,比如设计驱动程序的软件人员、面向客户的销售人员、面向代理的销售经理、公司财务人员、管理人员…因此,绝不要被我迷惑,以为除了攒机器,真的没有其他办法转行进入硬件公司。

我曾经在一家生产ThinkPad的笔记本生产厂家工作过一段时间,这段故事听起来很传奇。我面试的时候碰见了郭士纳,我试图说服他采用人而不是机器进行笔记本的翻盖试验,也就是通常广告上说的翻盖XXXXX次无故障。他经过计算,也觉得雇一个员工,比机器更便宜,也更有说服力,于是我成为了那位员工。后来ThinkPad的产品经理抱怨说,翻盖无故障报告中,XXXXX次无故障锐减为XXX次无故障,客户已经拒绝购买新款的笔记本了,翻盖机器才又替代了我。

举这个例子,并不是为了说明大工业生产会带来大量的失业工人,或者人类比机器更具有破坏性,或者其他什么政治性话题。我只是想说,郭士纳的公司,是很大的硬件公司,纵向分成四十几层,横向没有一百种职位,也有九十种职位。这一类的硬件公司需要的人员,有很多种,而我并不是所谓的麦当劳管理咨询公司的管理顾问,只能描述其中的一部分
。比如,现在市场上有一款网络硬盘的产品,非常酷,不仅是外形酷,可以直接连在HUB上的设计也酷,最酷的是可以揣在怀里带回家用。它实际上并不是一个简单的硬砖头,而是包括一个LINUX系统,设计这款硬盘的人员中,软件人员占了多数。当然,还是不能因此而称之为网络软盘,因为无论是摸上去的感觉,还是砸在头上的感觉,都是蛮硬的。说
来说去,还是说到软件开发人员头上了。我知道,很多人,尤其是希望转入IT行业的非IT专业的人,第二志愿实际上都是程序员的。因此,闲话转行的重点当然应该是闲话如何成为软件开发人员。其实,我并不很情愿这么着急讲软件开发人员的,因为闲话抻的越长,稿费给的越多。比如,所有提到Microsoft的地方,我一律使用九个字节的Microsoft,而不是四个字节的微软。因为每一个Microsoft,要比每一个微软多两毛钱稿费的。不是玩笑,是真的。

为什么程序员是第二志愿?因为程序员的工作本身,其实并没有太多的吸引力,有吸引力的是程序员的薪水。程序员和演员一样,吃的青春饭,挣的辛苦钱。不过我并不是要讲《程序员的悲惨生活》,这里就不提了,一提起来,一把鼻涕一把泪的,影响形象。

那,第一志愿是什么?这,恐怕千人千愿。有愿意当官的,比如市长、县长、乡长、村长;有愿意管人的,比如总裁、副总裁、总经理、副总经理;有愿意当明星的,比如小燕子、小桌子、小凳子、小桂子;有做不成明星的,愿意当星爸、星妈、星夫、星妻…

闲话少叙,回到程序员头上。在IT这一行,最有钱的家伙是程序员出身,在IT企业中,最瞩目的公司是软件公司。软件公司实际上可以分为三类,第一类是大公司,第二类是小公司,第三类是夫妻店。这种分法,看似好笑,实际更好笑,因为就是这么回事。我开始也打算认认真真的按照产品、按照领域分类的,但是直到把显示器盯爆,我也没有分成。后来打算再一次举人和驴子的例子对付过去,又觉得一个例子说两次,自己也不好意思,于是有了现在较为科学的分法。

先从夫妻店讲起。夫妻店的名称,实际上有些旧了。因为并不是所有的小店都是夫妻俩开的,也许只有一个男老板,也许只有一个女老板,也许是一个男老板和一个女老板或者两个男老板或者两个女老板,如今的年代,谁又说的清呢。IT企业的夫妻店,一般不会超过两个人,大部份时间是一个人。为什么?和尚和水的攜n…事谁都听说过的。夫妻店的运作
模式非常灵活,可以是FULL-TIME的,可以是PART-TIME的,也可以是NO-TIME的。

应该说,Internet的出现,使夫妻店的发展得到了大大的提速。比如,你觉得FTP比较难使用,又是PUT又是GET。那好,闷头两个月,开发出一套基于图形界面的FTP软件,然后在Internet上发布就行了。开发的时候,一定要闷头做,否则今天看到这冒出来一个FTP软件,明天看到那冒出来一个FTP软件,你一定会丧失信心的。

不知道FTP?唉,又媚眼做给瞎子看了。

开发这一类的免费/共享软件,相对较简单,因为没有人会关心你的专业、简历。只要东西做得好,有人爱用就可以了。开发工具也没有什么限制,随你爱用什么工具都可以。当然,最好选择Visual C++、Visual Basic、Delphi等,一定要记住,编译后的软件可以直接运行,不能对运行环境限制的太窄。另外需要注意的是,这一类软件必须小巧,安装简单,绝不能花两个小时下载、安装,设置了一大堆参数还不能运行。否则,你的程序立刻
会被丢进垃圾箱的。当然,这一类的软件还需要漂亮,越漂亮的软件显得功能越强大。

真的这么简单?

当然不!如果仅仅满足于别人的溢美之词,到这里就够了。问题在于如何赚到钱!相信大家比我要清楚,共享/免费软件要赚钱有多么的难。赚不到钱,没有办法把软件做得更完善,软件做得不完善,就更难赚到钱……一个死循环形成了。

虽然赚到钱很难,但是对于非IT专业的人来说,开发小的共享/免费软件是熟悉开发工具的一个好办法。因为没有一个公司会给你如此宽松的环境,没有同事的竞争,没有开发进度压力,允许你犯各种各样的错误而不解雇你。当然,老爸的公司除外。

作为软件公司人力资源部的经理,我经常要到人才市场去挖掘人才。一般说来,如果是招聘程序员,至少要求相关的工作经验,也就是做过程序员。因此,对于非IT专业的人来说,没有程序员经验,就不能应聘程序员职位,应聘不上程序员职位,无法获得程序员经验……又一个死循环形成了。

如何跳出这个死循环?

对于喜爱读书的人来说,重新跳回学校这个大池子里洗一洗,染上一些IT的味道是一种办法。但是,读书需要付出时间和金钱,把时间用来读书就没有时间赚钱,没钱赚就没钱读书,不读书就没法进入IT行业…又一个死循环形成了。

其实,跨出第一步关键在于经验。我收到的不计其数的简历中,有不计其数的人详细列举自己会使用哪种开发工具。我相信吗?一般说来,我相信。起作用吗?一般说来,不起作用。我可恶吗?一般说来,比较可恶。事实上,很多非IT专业的人进入IT领域,根本不是靠简历上写上所谓的“我是您无悔的选择”,或者面试的时候使用一些所谓的面试技巧
打动对方。虽然也许有的时候,这些技巧会起作用。

想想看,如果一个非IT专业的人,简历上写着,“1995年,基于Windows 95平台开发Office 95软件,销售1,000,000套。”我还会可恶吗?会使用开发工具和开发过软件,完全是不同的重量级选手,就是不懂计算机的唐金,也知道谁更厉害。

当然,这是希望成为程序员的人,可以走的一条路。但是,不是唯一的一条路。

Share

MCSE2003:Security达成.

2月1日 接到考试中心的一个电话, 说那天我有70-299考试的预约.

好久没碰了…都忘记了…. 急匆匆看了半小时题库 结果以887分通过. 题库用的是菊花1号ftp的testinside 具体哪个版本我不记得了.. 当时很急,随手抓了一个就看了.

接下来.
2月5日 看了3个小时 下午通过了294 分数是976分 题库看两遍,VCE做了两遍 也是菊花的ftp中的.实验考了AD一道 策略一道
VCE用的是一个老外的版本…论坛上某人发的修正版 很强大~

2月6日
上午看了两遍题库,做了两遍VCE 大概用了3个小时左右,中午冲到考试中心 通过了298 分数是973 看的是testinside 070-298 全覆盖
下午看了一遍题库,做了两遍VCE(论坛上下的Microsoft.TestInside.70-351.v3.86 vce也是这个),再次打车到考试中心,通过了351(本来想考350的 临时改变主意.)
不过351有道题目让我楞了一下….可能是我没仔细看 或者是新题目… 反正最后930通过.

MCSE2年前就开始学习了.. 断断续续培训了2遍左右…

以前穷…考不起.现在稍微有点小钱了… 打算这个月里把他们全部结束掉 拿到MCSE2k3的 Full Combo

uploads/200902/06_195428_dsc02944_s.jpg

Share

惊险的考完了MCP:70-299

下午1点多,偶在公司百无聊赖的看片子。。想看到2点以后结束 开始看mcp考试。。

话说这mcp考试前后折腾了已经有2年了。到现在mcse还是没考完。。。 偶坚持每门都要认真的研究过以后再去考。

而今天下午,着实让我惊出冷汗。。

1点47分的时候,考试中心打电话来告诉我,今天有门考试必须考掉。不然的话50美圆泡汤。

偶一惊。想了半天才想起来。。去年9月的时候预约的。后来一直没空看, 就给忘记了这事。。

但是偶的考试是有重考圈的。。不过一次还能免费补考。 但是被告知如果今天不到场 就会失去补考资格。但是如果进去,哪怕点一下结束 变成0分。就还有一次免费补考。。

顿时全身开始Moe…..

冷静下来仔细看了一下70-299,其实题目并不多。。。

反正看也是走掉,不看也是走掉。。就看看吧 或许死的好看点。

看了两遍,用了半小时左右,偶出发了。

3点不到的时候就到了考场。而这时候正好有个鸟人作完题目出来(cao..怎么不晚点出来,给我点时间复习啊~)

3点05分 就这么被逼着进了考场。。。

一道一道看,一道一道选。。

3点25分的时候 一切结束。。 点了end exam后。。出现的分数竟然是887。

oh册。。 竟然pass了

只看了半个小时而已。。。 偶终于理解那些个什么英语系,历史系的家伙是怎么过的mcse了。。。

微软果然很好很强大。。一边钱是照骗不误,另一边 : 如果你想学的话 mcp考试可以给你带来很多知识,如果你不想学的话。mcse也就是张比较贵的白纸而已。。

无论如何。这场突如其来的噩梦总算是结束了。。。啊不奈以哟~~

Share

asp+ajax的页面无刷新技术

作者blog: www.cnbruce.com/blog/

AJAX的无刷新机制使得在注册系统中对于注册名称的检测能即时显示。

常见的用户注册是用户输入用户名,后台程序检测数据库中用户名是否重复而做出注册的成功与失败之提示(当用户注册重名时将返回重新注册),或者稍微人性化一点就是在用户名文本框后添加一个检测按钮,让用户检测后再做注册。

以上操作,对于用户体验方面来说是比较“差劲”的,一个很好的用户体验就是:当用户输入完注册用户名后,Web系统应能即时检查并即时显示,并在检查和显示的同时不影响当前页面的操作。这也就是“异步获取数据”的要求,而这正是AJAX的强项

功能展现

当输入已经存在的用户名(如cnbruce、cnrose)时页面将显示重名不能注册(false),否则将显示可以注册(true),这为用户的注册提供了快速的参考,用户体验至上。

那么下面就来说说是如何来实现这样的功能的。

其实通过如上的t1.htm的源代码,各位就可以看到AJAX的精髓

首先是定义XMLHttp对象

var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
关于这部分内容的说明 请看

接着是自定义函数

function callServer() {
var u_name = document.getElementById("u_name").value;
if ((u_name == null) || (u_name == "")) return;
var url = "cu.asp?name=" + escape(u_name);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
该函数的主要功能就是异步获得cu.asp的内容,在此前将先提取当前页表单元素“u_name”即用户名文本框zhogn 的值,通过cu.asp其后的参数及赋值而得到了不同的结果(true or false)。

那么这里要说的即是cu.asp,他的主要功能就是接受URL参数name的值做内容显示,该内容最终被t1.htm异步获取。

<!–cu.asp的源码示例–>

<!–#include file="conn.asp"–>
<%
name=request.querystring("name")
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from u_ser where u_name='"&name&"'"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
response.write("true")
else
response.write("false")
end if
rs.close
set rs=nothing
call CloseDatabase
%>
如何将异步获取的信息显示在当前页呢

function updatePage() {
if (xmlHttp.readyState < 4) {
test1.innerHTML="loading…";
}
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
test1.innerHTML=response;
}
}
其中xmlHttp.readyState中的readyState表示服务器在处理请求时的进展状况,其值分别有0-4,各有其说明情况,具体请参看

使用DHTML中的innerHTML可显示信息在定义的 <span id="test1">是否能注册</span> 上。

其余表单页面就不详叙了

点击下载

Share

WINDOWS 2003用户特定权限设置指南 看了表晕

用户特定权限设置指南 首先,在服务器上安装WINDOWS2003操作系统,并且做好终端服务组件的安装设置等。这些在客户支持光盘里面有详细的介绍,此处不再赘述。安装配置好基本的Windows2003终端服务器之后,我们就可以按照安全的需求来对用户的数据和权限进行一定的配置操作了。为了以后的管理方便,也为了下面对用户的权限设置更加方便易行,我们先把所有用户的数据文件移到系统盘以外的驱动器盘中。比如我这里把用户的数据全部移动到D盘中。一、移动用户数据到非系统盘在做这项工作之前,最好仅仅是超级用户有登陆过,其他的用户未登陆过,具体的做法是:用超级用户登陆,运行regedit注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList下的一个项ProfilesDirectory,原来的值为 %SystemDrive%\Documents and Settings,将%SystemDrive%改成D:,现在,便将以后登陆的用户的“我的文档”、“配置文件”等都移动到了D盘了,此时用一个新建的用户试登陆一次,便会自动在D盘建立一个对应注册表中的主文件夹了。当然新建用户目前还是无法登陆的,还需要将原c:\ Documents and Settings\的All Users、Default User拷贝到D盘的Documents and Settings目录下,Default User目录是隐含属性的,需要在文件夹选项中,显示隐含文件的选项选上,按照原C盘的Documents and Settings目录设置的权限,对D盘的Documents and Settings目录设置权限。记住,如果需要移动Documents and Settings,尽量在除超级用户外,其他用户都没有登陆的情况下来更改,更改后,C:\Documents and Settings也不能删除,因为超级用户的设置还在里面,新建一个用户,加入到超级用户组中,用该帐号登陆到系统中,将C:\Documents and Settings\Administrator目录删除掉,再用超级用户登陆一次,你便可以发现,超级用户的设置也移动到了D盘了,重新启动机器一次,删除C:\ Documents and Settings目录。(如果系统提示不能删除,可以不用删除,但里面的数据其实已经全部在前面的操作中移到了D盘,并不影响操作)到此,便将用户的数据目录放置在其他的驱动器中,便于管理。二、对用户进行某些权限设置 1、每个用户只能看到自已的文件,只能使用分配的权限。实现这项功能只要把用户的私人目录映射成为一个独立的盘符,然后把其他的驱动器全部隐藏,同时防止用户访问隐藏的驱动器。这样普通用户进去后打开我的电脑,只能看到由自己的私人目录映射出来的盘符,也就是只能看到自己的文件了。具体操作如下:第一步、把私人目录映射成为单独的盘符。设置每个用户的私人目录为一个固定的驱动器盘符,比如G:,可以在%SystemDrive%\Documents and Settings\All Users\「开始」菜单\程序\启动\下添加一个bat脚本文件,(此处的%SystemDrive%是具体放用户数据文件夹的盘符,默认是在C盘,如果已经移动了,则以移动的位置为准,如我们上面移动用户数据是放在D盘,则这里也就是D:\Documents and Settings\All Users\「开始」菜单\程序\启动\)下图是默认的C盘里建立。 该文件的内容为subst G: “% USERPROFILE%”(可以用记事本编辑好内容后以bat为后缀名保存的方法来创建该脚本文件)如图 这个时候只要用户进入系统就会自动执行该命令,也就把每个人的私人目录映射成了一个相同的G驱动器了,而该G驱动器指向了每个用户自己的私人目录。注:要求映射出来的盘符是排在最后的,这样为后面隐藏其他盘符提供方便。如果映射的时候脚本文件出现DOS死循环的话,则把BAT文件里面的命令由SUBST改为SUBST.EXE,其它的不变。即:subst.exe G: “% USERPROFILE%” 第二步、隐藏“我的电脑”中指定的驱动器此组策略可以从“我的电脑”和“Windows 资源管理器”上删除代表所选硬件驱动器的图标。并且驱动器号代表的所有驱动器不出现在标准的打开对话框上。超级用户打开开始菜单中的运行,在里面输入gpedit.msc后确定进入到组策略编辑器打开“本地计算机策略→用户配置→管理模板→Windows 组件→Windows资源管理器”中的“隐藏‘我的电脑’中的这些指定的驱动器” 启用此策略,并在下面列表框中选择一个驱动器或几个驱动器。但不能限制所有的驱动器,否则将把映射出来的驱动器也隐藏。 确定应用之后退出,这时候我的电脑中的就不会出现你选中要隐藏的盘符了。但在你选择要隐藏的盘符时会发现只有A、B、C、D四个盘符可以任意搭配来隐藏,要不就隐藏所有的驱动器,而对于D以后的盘符并没有在列表中出现。如果要隐藏D盘以后的驱动器该怎么办呢?那只有修改注册表来实现了。管理员运行“regedit”进入注册表编辑器,依次进入HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右边窗体中新建“NoDrives”数据类型选择“REG_DWORD”,单击“确定”按钮。在接下来弹出的DWORD值编辑器对话框的“基数”分组框中选择“十进制”单选钮,在“数据”编辑框中输入你要隐藏的驱动器号并确定,重新启动系统后相应的驱动器即被隐藏。注意:在这里使用2的N次方(N=1,2,3,……)来代表一个驱动器号,如:A为 1, B为 2, C为 4, D为 8, E为 16, F为 32, G为 64……还有,如果你要隐藏A、B、C三个驱动器,输入7即可,因为7=1+2+4,而要隐藏A、B、C、E四个驱动器,输入23即可,因为23=1+2+4+16。依次类推,就可以隐藏任意的盘符了。如果我们前面把私人目录映射出来的盘符设成了最后一个,将降低计算的难度。注:这里需要特别注意的一点是注册表各个项目之间的优先权问题。组策略的配置其实也就是通过图形界面对注册表进行修改,而它修改生成的键值是在:“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies中,如果我们要自定义隐藏驱动器的话就要在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer中添加建植才有效。但后者的优先权大于前者,也就是说后者的设置将覆盖前者的相关设置。并且不能通过后面所说的删除HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies中的子项目来解除对管理员的限制,也就是说管理员也将受限制。 第三步、防止用户用其他方式打开隐藏的盘另外,这个策略只是让驱动器在我的电脑中隐藏,如果用户用其他的方法还是可以进入的,比如打开私人目录在地址栏里输入“C:“也是可以打开C盘的。这个时候我们就可以把本地计算机策略→用户配置→管理模板→Windows 组件→Windows资源管理器”中的 “防止从‘我的电脑’访问驱动器”启动。方法和隐藏驱动器是基本一致的。可以参照上面关于隐藏驱动器的操作进行设置。当然,如果禁止访问的驱动器盘符超过了4个,在组策略设置里面也是无法做到的,因为和隐藏盘符一样,只能选择A、B、C和D的任意搭配,要不就全部禁止。这个时候同样可以通过手动修改注册表的形式来实现,进入HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右边窗体中新建“NoViewDrive”数据类型选择“REG_DWORD”,单击“确定”按钮。在接下来弹出的DWORD值编辑器对话框的“基数”分组框中选择“十进制”单选钮,在“数据”编辑框中输入你要禁止的驱动器号数值并确定,重新启动系统后相应的驱动器即被禁止。至
于盘符的计算方法和前面隐藏驱动器的计算方法是完全一致的。当然,这种设置和前面一样,需要注意注册表的优先权。它也将覆盖组策略在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies 中建立的与该设置相关的设置,并对管理员起作用。经过这三步的操作,已经实现了每个用户只能看到自已用户的文件,也就是私人目录。而这两步也就可以实现让普通用户不能访问我的电脑中的其他资源扩展:如果希望对用户管理的更直接和方便,可以把用户的桌面清空,然后再用该用户私人目录映射出来的驱动器中把 “My Documents”)创建快捷方式到桌面,改名为“我的文档”,然后隐藏所有的驱动器。不过对于阻止访问驱动器就不能使用阻止访问所有驱动器的方式了,由私人目录映射出来的驱动器是不能阻止的,否则将影响私人目录的使用。当然,如果一个个用户去设置桌面的话感觉太烦琐了,我们可以用一个普通用户进去设置好之后,退出。用管理员帐号进去,找到该用户的私人目录,进入该目录,用该目录下的NTUSER.DAT文件,替换掉D:\ Documents and Settings\Default User\目录下的NTUSER.DAT文件,记住NTUSER.DAT文件是一个隐含文件。以后的所有用户登陆上来,便按照配置的缺省用户地设置了,没有必要为每个用户都配置一遍。但这种设置对已经登陆过的用户不起作用,因为该用户已经有了自己的私人设置,将不再使用默认的设置。加上这步扩展的设置之后,普通用户就只能在桌面上使用“我的文档”,而“我的电脑”等其他项目都将不显示。极大的保障了安全性。 2、每个用户只能用分配的空间。实现这一步需要启动磁盘配额。由于安装WIN2003用的是NTFS的磁盘格式,所以可以配置磁盘配额。在磁盘属性里有磁盘配额选项,直接配置即可。在NTFS格式下,既可以建立全局磁盘配额,对每用户均起限制,也可以单独设置特殊用户的磁盘配额,限制用户对磁盘空间的使用,比如可以对普通用户分配50M的磁盘空间,超过50M便无法向磁盘写数据了。 需要注意的是由于前面对用户进行设置之后,用户只能看到自己的私人目录,为了安全考虑,也就只允许用户在自己的私人目录里面存储数据。而用户的私人目录是放在存放用户配置数据的驱动器里面的,如:D/Documents_and_Settings。那么就要在D盘对用户进行磁盘的配额设置,而在别的盘设置的磁盘配额由于用户看不到也访问不了而起不了作用。还有保证被分配的磁盘一定要有足够的空间。这点是肯定的。 3、每个用户不能私自装软件。将不允许安装软件的用户设为user组的成员。在windows2003操作系统中,该组的成员默认不允许安装软件。另外在组策略中也有相应的策略来限制用户在安装、执行各种程序。在这里可以有两种方法来实现,一种为指定不允许运行的程序,另外一种则为指定允许运行的程序。当然这两种设置对系统工作所需要的文件是不影响的。注意:在对该策略进行配置的时候务必先打开注册表编辑器,以免由于无法使用注册表而不能把组策略对管理员的限制去掉,那么管理员也将和普通用户一样的受到限制,而且不能修改策略。当然如果把注册表设置成允许运行就没必要了。解除组策略对管理员的限制将在后面提到。 1、启用“不要运行指定的Windows应用程序”策略  在组策略中有一条名为“不要运行指定的Windows应用程序”策略,通过启用该策略并添加相应的应用程序,就可以限制用户运行这些应用程序。设置方法如下:(1)、在“开始”“运行”处执行gpedit.msc命令,启动组策略编辑器。(2)、依次展开本地计算机策略-》用户设置-》管理模板-》系统 双击右侧窗格中的“不要运行指定的Windows应用程序”策略,选择“已启用”选项,并点击“显示”。 (3)、点击“添加”,输入不运行运行的应用程序名称,如腾讯QQ则输入“QQ.exe”,点击“确定” 此时,指定的应用程序名称添加到禁止运行的程序列表中(4)、点击“确定”返回组策略编辑器,点击“确定”,完成设置。当用户试图运行包含在不允许运行程序列表中的应用程序时,系统会提示警告信息。把不允许运行的应用程序复制到其他的目录和分区中,仍然是不能运行的。要恢复指定的受限程序的运行能力,可以将“不要运行指定的Windows应用程序”策略设置为“未配置”或“已禁用”,或者将指定的应用程序从不允许运行列表中删除。 2、启用“只运行许可的Windows应用程序”策略在组策略中还有一条名为“只运行许可的Windows应用程序”策略,通过启用该策略并添加相应的应用程序,就可以限制用户只运行这些应用程序。从而防止其他禁止运行的程序运行。设置方法和启用“不要运行指定的Windows应用程序”策略基本是一致的。可以参照上面的设置进行配置。只是添加的程序是允许运行的,没有加到列表中的程序就一律不允许运行。就是用户重新安装的也不行。这个设置的限制较大,如果允许运行的程序很多的话,管理员工作量也会大很多。特别注意的是采用上面这两个策略的时候,一定要特别注意一些配置程序的特殊性,比如组策略编辑器、注册表编辑器和命令提示符,因为这个设置是对所有用户限制的,包括Administrators组中的账户甚至是内建的administrator帐户,任何用户都将不能启动没有被允许的程序,也就不能对设置的策略进行更改。 另:解除组策略对管理员用户的限制当然也可以用修改注册表的形式来消除组策略对管理员的限制。(所以刚开始打开的注册表的操作是必要的) 其实可以在组策略中,按照您的具体的需求,进行详细的配置,配置后,在前面预先已经打开的注册表编辑器中找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies,该项目中又有一些子项目,可以将子项目中的内容全部删除掉,则对组策略的所有的设置对超级用户都不生效了。但由于优先权的存在,对修改注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer而生成的限制将不能解除。如果确实需要对不同用户组采用不同的策略,那么建议你将服务器升级成域控制器,然后将用户放置到不同的组织单元中,为每个组织单元设置不同的组策略。 4、某用户不能上网设置某个用户不能上网就可以为其起用代理服务上网,并且设置个错误的代理和端口号。在错误的代理和端口号的作用下,该用户当然就无法上网了。同时为了防止用户自己把设置改回来,就可以把设置的选项禁止普通用户使用,这些也可以通过组策略来实现。 1、设置错误代理,禁止用户上网用禁止其上网的用户名登陆进去,打开IE,在其工具栏中选择工具—》internet选项,将出现IE的属性栏,转到连接选项卡, 点击上面的“局域网设置”,进入LAN设置窗体,选中“为LAN使用代理服务器”,然后就是在下面的“地址”框中写入代理服务器,“端口”框中添上端口号。当然这些都是写错误的,比如代理地址:0.0.0.0,端口:0000。 至此,该用户就无法上网了。这里还有个选项“对于本地地址不使用代理服务器”,如果打上勾,也就是错误代理在本地不起作用,用户可以使用本地网络服务。如果不选中这项的话,用户就会在本地的连接中也使用代理,在目¿™个错误的代理下,自然本地连接也不能通的,也就上不了本地网络。至于是选还是不选就要看具体的需求了。当然为了不让用户自己改回设置,就要把IE中的这些设置项隐藏或禁止掉。这里又要利用到组策略了。 2、隐藏internet设置选项(1)、在“开始”“运行”处执行gpedit.msc命令,启动组策略编辑器。(2)、依次展开本地计算机策略-》用户设置 -》管理模块 -》windows组件—》Internet Explorer—》Internet控制面板 双击右侧窗格中的“ 禁用连接页”策略,选择“已启用”选项。 以后用户选择IE中的工具—》internet选项,打开的选项窗体中就将不再有“连接”这一选项卡了,自然用户也将无法修改里面的设置了。 在错误代理和端口的作用下,该用户将无法上网。当然,为了不让该组策略对管理员造成限制,我们还是要用上面提到修改注册表的方法来解除策略对管理员的限制作用。 5、设置敏感程序的权限上面对用户的权限已经有了比较全面的设置了,基本上可以做到用户只能使用计算机而不能更改系统的目的。但在系统里面有些敏感程序是可以修改设置的,如果有对计算机比较熟悉的用户,就会存在用户自己更改设置的可能。于是就产生了禁止普通用户运行这些敏感程序的需求。这些敏感程序一般包括命令提示符(cmd.exe),组策略编辑器(gpedit.msc)和注册表编辑器(regedit.exe及regedt32.exe)注:设置这些策略的时候务必先打开注册表编辑器。方便设置完策略后修改注册表来解除设置对管理员的限制。如果不先打开注册表,设置了禁止运行注册表编辑器后,就连管理员也无法运行,从而给管理带来巨大的困难。 ①禁止使用命令提示符在Windows 2000/XP/2003 下,我们可以运行cmd.exe 进入命令提示符状态,并可以继续运行一些DOS 命令和其他命令行程序。出于对安全的考虑,有些系统应该屏蔽此功能。打开“组策略控制台→用户配置→管理模板→系统”中的“阻止访问命令提示符” 并启用此策略。 下面列表框中还有个选择是否“也停用命令提示符脚本处理”,这个设置还决定批处理文件*.cmd 和*.bat是否可以在计算机上运行。可以按需求配置(一般是不停用)。 ②禁止组策略编辑器打开“组策略控制台→用户配置→管理模板→Windows组件→Microsoft Management Console→受限/许可的管理单元→组策略”,打开右边窗体的“组策略对象编辑器”属性, 禁用该设置。(即在上面选择“已禁止”项目) 以后如果要运行组策略编辑器就会被拒绝,并且弹出警告消息。 ③禁用注册表编辑器为了防止他人进入电脑后对注册表文件进行修改,可以在组策略中对注册表编辑器做禁止访问设置。具体操作方法:打开“组策略控制台→用户配置→系统”中的“阻止访问注册表编辑工具” 并启用此策略。 此策略被启用后,用户试图启动注册表编辑器(Regedit.exe 及Regedt32.exe)的时候,系统会禁止这类操作并弹出警告消息。这些禁止后即使用户利用建立脚本文件来启用这些程序也是会禁止执行的。另:经过上面的设置,那些系统敏感程序得到了保护。但为了让系统管理员可以用这些程序进行设置和管理系统,很有必要解除这些设置对管理员的限制。开始设置这些策略的时候打开的注册表编辑器在这个时候就派上用场了,如果你当时没有打开注册表编辑器的话,此时你已经无法运行该程序了,自然也无法解除这些设置对管理员的限制了。策略配置后,在前面预先已经打开的注册表编辑器中找到下面的位置HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies,该项目中又有一些子项目,可以将子项目中的内容全部删除掉,则对组策略的所有的设置对超级用户都不生效了。但直接修改注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer生成的限制将不能解除。其实这在前面有所提到,方法是一样的。 注意:以上权限设置是在独立的情况下进行的,对于要进行多种设置同时生效时,必须考虑各个策略的互相作用的情况。制定出前后不会相互制约的配置方法。比如前面用subst.bat脚本文件创建虚拟盘之后,在后面限制某些软件运行的设置时就要允许其运行,这样才能使两种效果同时实现。所以在运用多种策略的时候要注意相互作用的问题。另外,当修改完注册表来解除组策略对管理员的限制后,如果再次对组策略进行了某一项的设置,那么就需要重新解除对管理员的限制,否则以前设置的所有策略都将重新对管理员起作用。如果在设置过程中不小心把管理员的权限也完全限制了,这个时候就只能在启动的时候按F8,进入带命令提示符的安全模式,在提示符下输入:regedit.exe来启动注册表,然后再按照前面所说的解除管理员的方法删除相应建植就可以了。

Share

jmail 发邮件代码

Jmail发邮件代码,2005-6-2版
<%
Dim SendStat
SendStat = Jmail("Dove.163@163.com","Test Jmail","Just a test!","US-ASCII","text/plain")
Response.Write SendStat
%>
<%
'——————————————————————–
Function Jmail(mailTo,mailTopic,mailBody,mailCharset,mailContentType)
'——————————————————————–
'JMail
'——————————————————————–
'入口参数:
'    mailTo 收件人email地址
'    mailTopic 邮件主题
'    mailBody 邮件正文(内容)
'    mailCharset 邮件字符集,例如GB2312或US-ASCII
'    mailContentType 邮件正文格式,例如text/plain或text/html
'返回值:
'    字符串,发送成功后返回OK,不成功返回错误信息
'使用方法:
'    1)设置好常量,即以Const开头的变量
'    2)使用类似如下代码发信
'Dim SendStat
'SendStat = Jmail("aa@163.com","测试Jmail","这是一封<br/>测试信!","GB2312","text/html")
'Response.Write SendStat
'作者:
'    午夜狂龙(Madpolice) madpolice_dong@hotmail.com 2005年6月2日版
'——————————————————————–

'***************根据需要设置常量开始*****************
Dim ConstFromNameCn,ConstFromNameEn,ConstFrom,ConstMailDomain,ConstMailServerUserName,ConstMailServerPassword

ConstFromNameCn = ""'发信人中文姓名(发中文邮件的时候使用),例如‘张三’
ConstFromNameEn = ""'发信人英文姓名(发英文邮件的时候使用),例如‘zhangsan’
ConstFrom = ""'发信人邮件地址,例如‘Shakerd@163.com’
ConstMailDomain = ""'smtp服务器地址,例如smtp.163.com
ConstMailServerUserName = ""'smtp服务器的信箱登陆名,例如‘zhangsan’。注意要与发信人邮件地址一致!
ConstMailServerPassword = ""'smtp服务器的信箱登陆密码
'***************根据需要设置常量结束*****************

'—————————–以下内容无需改动——————————
On Error Resume Next
Dim myJmail
Set myJmail = Server.CreateObject("JMail.Message")
myJmail.Logging = True'记录日志
myJmail.ISOEncodeHeaders = False'邮件头不使用ISO-8859-1编码
myJmail.ContentTransferEncoding = "base64"'邮件编码设为base64
myJmail.AddHeader "Priority","3"'添加邮件头,不要改动!
myJmail.AddHeader "MSMail-Priority","Normal"'添加邮件头,不要改动!
myJmail.AddHeader "Mailer","Microsoft Outlook Express 6.00.2800.1437"'添加邮件头,不要改动!
myJmail.AddHeader "MimeOLE","Produced By Microsoft MimeOLE V6.00.2800.1441"'添加邮件头,不要改动!
myJmail.Charset = mailCharset
myJmail.ContentType = mailContentType

If UCase(mailCharset) = "GB2312" Then
myJmail.FromName = ConstFromNameCn
Else
myJmail.FromName = ConstFromNameEn
End If

myJmail.From = ConstFrom
myJmail.Subject = mailTopic
myJmail.Body = mailBody
myJmail.AddRecipient mailTo
myJmail.MailDomain = ConstMailDomain
myJmail.MailServerUserName = ConstMailServerUserName
myJmail.MailServerPassword = ConstMailServerPassword
myJmail.Send ConstMailDomain
myJmail.Close
Set myJmail=nothing

If Err Then
Jmail=Err.Description
Err.Clear
Else
Jmail="OK"
End If

On Error Goto 0
End Function
'——————————————————————–
%>

说明:更多的信息请参考Jmail说明,我想这已经足够用的了。

(1)Body(信件正文) : 字符串

如:JMail.Body = "这里可以是用户填写的表单内容,可以取自From。"

(2)Charset(字符集,缺省为"US-ASCII") : 字符串

如:JMail.Charset = "US-ASCII"

(3)ContentTransferEncoding : 字符串

指定内容传送时的编码方式,缺省是"Quoted-Printable"
如:JMail.ContentTransferEncoding = "base64"

(4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串

如果你以HTML格式发送邮件, 改为"text/html"即可。
如:JMail.ContentType = "text/html"

(5)Encoding : 字符串

设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable"
如:JMail.Encoding = "base64"

(6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串

如:使用Response.Write( JMail.Log )语句列出日志信息。

(7)Logging(是否使用日志) : 布尔型

如:JMail.Logging = true

(8)Recipients : 字符串

只读属性,返回所有收件人
如:Response.Write( "" + JMail.Recipients + "" );

(9)ReplyTo(指定别的回信地址) : 字符串

如:JMail.ReplyTo = "renwang@163.com"

(10)Sender( 发件人的邮件地址) : 字符串

如:JMail.Sender = "renwang@163.com"

(11)SenderName(发件人的姓名) : 字符串

如:JMail.SenderName = "renwang"

(12)ServerAddress(邮件服务器的地址) : 字符串

你可以指定多个服务器,用分号点开。可以指定端口号。
如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。
如:JMail.ServerAddress = "mail.263.net.cn"

(13)Subject(设定邮件的标题,可以取自From。):字符串
如:JMail.Subject = "客户反馈表单"

(14)添加文件附件到邮件
如:JMail.AddAttachment( "c:\anyfile.zip" )

(15)AddCustomAttachment( FileName, Data )

添加自定义附件.
如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" );

(16)AddHeader( Header, Value )

添加用户定义的信件标头。
如:JMail.AddHeader( "Originating-IP","192.168.10.10" );

(17)AddRecipient(收件人):字符串

如:JMail.AddRecipient( "info@dimac.net" );

(18)AddRecipientBCC( Email ),密件收件人:

如:JMail.AddRecipientBCC( "renwang@163.com" );

(19)AddRecipientCC( Email ) ,抄送收件人:

如:JMail.AddRecipientCC( "anone@mailhost.com" )

(20)AddURLAttachment( URL, 文档名)

下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。
如:JMail.AddURLAttachment( "http://www.fuo.cc/perl/files/jmail.zip", "jmail" )

(21)AppendBodyFromFile( 文件名) ,将文件作为信件正文:

如:JMail.AppendBodyFromFile( "c:\an
yfile.txt" )

(22)AppendText( Text )

追加信件的正文内容,比如增加问候语或者其它信息。
如:JMail.AppendText( "欢迎访问本站!" )

(23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接:
如:JMail.Close()

(24)Execute() ,执行邮件的发送

如:JMail.Execute()
jmail发邮件代码
<%
Set msg = Server.CreateObject("JMail.Message")
msg.silent = true
msg.Logging = true
msg.Charset = "gb2312"
msg.MailServerUserName = "*****@126.com" ''输入smtp服务器验证登陆名 (邮局中任何一个用户的Email地址)
msg.MailServerPassword = "*****" ''输入smtp服务器验证密码 (用户Email帐号对应的密码)
msg.From ="*****@126.com"' Request.Form("email") ''发件人Email
msg.FromName = "小灰"'Request.Form("name") ''发件人姓名
msg.AddRecipient "*****@163.com" ''收件人Email
msg.Subject = "信件主题"'Request.Form("subject") ''信件主题
msg.Body = "正文"'Request.Form("body") ''正文
'msg.addattachment(server.mappath("new.txt"))
msg.Send ("smtp.126.com") ''smtp服务器地址(企业邮局地址)
set msg = nothing
response.write("发送成功!")
%>

Share

考前复习必备——达芬奇睡眠法

达芬奇睡眠法
  画坛泰斗达·芬奇是一位刻苦勤勉、惜时如金的人,他创造的定时短期睡眠延时工作法甚为人们所称道。这一方法是通过对睡与不睡的硬性规律性调节来提高时间利用率,即每工作4小时睡15分钟。这样,一昼夜花在睡眠上的时间累计只有1.5小时,从而争取到更多的时间工作。
  前几年,意大利著名生理学家克拉胡迪奥·斯塔皮参照达·芬奇的方法,对一位航海运动员进行了长达两个月的类似睡眠试验。经测试,受试者的逻辑思维和记忆运算等能力均完好无损。这说明达·芬奇睡眠法不仅能满足机体代偿功能的需要,而且还预示着利用人体生理潜力的广阔发展前景。
  然而,有趣的是,在20年前,一位画家就这一方法进行了亲身试验,证实了它的有效性。可是不到半年时间,他又回到正常的8小时睡眠上来。谈及个中原因,画家不无幽默地承认自己并非天才,更不知道这些多出来的时间该如何打发。
==case 1==
一个提醒:当你处于θ波时,你的大脑细胞会调整它的钠离子和钾离子的比例。钠&钾离子的比例涉及到细胞渗透压和细胞间物质的传送。通常情况下,我们都处于β波,是一种轻微的紧张状态,这使我们的钠&钾离子的比例逐渐失衡,这就是引起我们感到疲劳的原因。一个段简短的θ波(5~10分钟)就可以恢复我们的钠&钾离子的比例平衡并让我们感到精神百倍。这也是小睡带给我们的好处。
转变为我睡眠的睡眠周期并不是一件难事,我是逐渐调整的。慢慢减少晚上的睡眠时间,并在傍晚设置一个小睡时间。小睡的时间只有2个选择,20分钟或90分钟。20分钟的小睡只让你进入第一个睡眠阶段,避免你进入更深的睡眠,使你醒来时精神百倍。
我个人小睡睡90分钟,只是因为我想要一个完整阶段的睡眠。我喜欢睡觉,我并不逃避它。对我来说,睡眠的时间表是很固定的。我享受着小睡的乐趣,我晚上的睡眠也很深(以前我睡得很浅,而且一天睡8、9个小时依然头昏脑胀),清醒而又舒畅。这就像吃一份丰富的大餐。你知道什么时候应该去睡眠,又知道什么时候应该醒来。一切都是那么的舒适与自然。
我写这篇文章的时候是在2003年的开始,现在已经2005年了,我的睡眠模式很固定,每天都只睡4个半小时。我很健康,几乎不生病,我现在不吃糖类,只吃蔬菜和蛋白质。我的胆固醇很低,创造力前所水有地好。很多人问我如何采取这样的睡眠,我认为关键有2个
1、测量你睡眠周期的长度。90分钟是一个平均值,但是对一些人来说它是不一样的。我自己的睡眠周期长度在这几年来已经从90变成75了。现在,如果我在晚上 7点开始小睡,我会在晚上8:15起来,从来不需要用闹钟。因为睡眠周期长度的改变,我一天睡4个周期长度,晚上长睡3个周期,傍晚小睡1个周期。
2、关键是,要把一天的睡眠分成2个阶段,如果你一天只睡4.5小时然后说“我今天的睡眠已经完成了”,也许你在剩余的19个小时会受不了。你必须把它分成2个或2个以上的睡眠阶段。你要把小睡间隔开来,才能发挥它恢复你大脑功能的作用。
==case 2==
本文重点并非关注是否缺乏睡眠,而是关于如何更聪明地睡觉,讨论什么才是符合我们自然天性的睡眠方式
  我总是和别人说,每天只需睡6个小时,甚至仅仅4个半小时就足够了。个中的秘密并非缘于睡眠的质量,而在于睡眠的时间本身——如果睡眠时间为90分钟的倍数,这将会改变你的人生。
  1个半小时
  3个小时
  4个半小时
  6个小时
  7个半小时
  上面这些数字应该就是你所应得到的睡眠时间,这也是你身体自然的生理需求。我向毛主席保证,如果关掉闹钟后去睡觉,醒来时再看一下钟,你会发现一共睡了90分钟的倍数时间。而这个90分钟,便是所谓的睡眠周期。
  一般来说,我在晚上睡3个小时,并会在傍晚打盹小憩90分钟。加起来一共也就4个半小时,而我的头脑能够一直保持清醒,感觉睡眠充足且精神饱满。如果想了解原因,就看看下面这些科学的解释吧……
  “哈佛大学的研究组对志愿者们进行了针对一项视觉任务的特殊训练,任务要求志愿者从屏幕上快速转变的一些图案中,指认出特定的图案。10小时之后再次进行测试时,休息过90分钟的志愿者组要比那些没有休息过的完成得好。而事实上,他们和那些休息了一晚的志愿者们几乎完成得一样棒。” 

  “研究指出,睡眠时间并不是醒来后是否清醒的原因,关键则是睡觉时所完成的睡眠周期个数。每个睡眠周期都有五个明显的阶段,分别显现出不同的脑波征象。从我们研究的角度来说,这意味着平均每个睡眠周期有90分钟:65分的正常睡眠期,或者说非REM 期(REM:快速眼球转动);然后是20分钟的REM睡眠期(此时大脑做梦);最后的5分钟又是非REM期。一般来说,REM期在较早几个睡眠周期中,持续时间较短(少于20分钟),而在后几个周期中为时更久(多于20分钟)。假使我们在没有设置闹钟,并且没有任何其他外界干挠的情况下自然睡眠,平均会在 90分钟的倍数时间后醒来——举例子来说,就像4个半小时、6小时、7个半小时、或者是9个小时等,而非7个小时或 8小时后醒来,因为这些不是90分钟的倍数。处于两个周期之间的时间段,我们并未真正处于睡眠状态:该时期人的意识朦胧模糊,如果此时未被干扰(如光、寒冷、尿急、噪音等刺激)的话,将会进入下一个90分钟的睡眠周期。一个只睡了四个睡眠周期(即6小时)的人,通常比那些睡了8至10小时但未完成(最后)一个睡眠周期的人,感觉休息更充分。”
  于是这也解释了,即使睡足8小时后,我仍旧感到疲惫、晕乎乎的,又或者说睡了4个钟头时,是几乎不可能醒得过来的。作为普通人,我们几乎从小都被教育过,要“睡足8个小时”。尽管这样(的教育是错误的),仍然还是会有一些人感觉睡得比别人好。这是为什么呢,难道说上述理论有误?当然不是。真实情况是因为那些看上去并未完成最后一个睡眠周期,但是仍然感觉休息很充分的人,实际睡眠时间大都接近7个半小时,或者9个小时(还有一个原因,即每个人的睡眠周期时间长度亦有不同,这点在文章最后有说明)。
打盹是直接改善θ脑波的关键。
θ脑波,即超意识脑波。在清醒时,更多的θ脑波,就意味着拥有更高的创造性智力
  据说历史上那些“高产”的名人,绝大多数深谙此理并恪守之。列奥纳多·达芬奇、托马斯·杰斐逊和巴克明斯特·弗勒都一直使用这个的“技巧”,另外还有诸如尼科拉·特斯拉、托马斯·爱迪生、拿破仑和温斯顿·丘吉尔等聪明的“大脑”们更是同时利用打盹休息获益不少。
  另外打盹似乎还有长寿的好处,弗勒活了87岁,达芬奇到60多岁才挂点——他们都活了各自所处时代男性平均寿命的两倍!
  趣味知识:当大脑处于θ脑波状态时,脑细胞会重组钠钾比率。钠钾比与渗透作用有关,渗透作用即各种化学物质出入脑细胞的化学过程。在一个长期的 β脑波状态后,钠钾比就会失去平衡,这就是造成所谓的“精神疲劳”的主要䛮ŽŸ因。而一个短暂的θ脑波期(约5 至15分钟)便能够恢复正常的钠钾比,也就是说恢复精神状态。
人类原始天性更适合于多相睡眠,而非我们所习惯了的单相睡眠行为
  单相睡眠,相当于人们普遍的睡眠行为,即晚上睡觉,白天干活。
  多相睡眠,则是指在一天内分布存在多次的睡眠/清醒事件。如果一天睡眠计划中含一次午睡,那就是一个多相睡眠的例子了。
首先,自然界中几乎所有动物的行为都是多相复杂性的。而且多相睡眠是人类婴儿时期占主导地位的睡眠方式,只有在稍年长后,儿童才逐渐被断绝了午睡的概念。此外,当人们与外界环境隔绝联系后——保证无法从自然因素(如阳光),或人为暗示(如钟表、电视节目)来判断实际时间——将倾向于表现出更多的短暂睡眠行为,而非保持只“夜晚”才发生的单相睡眠。最后一点,小睡打盹——即短时间的睡眠——比起长时间的睡眠来说,在提神醒脑方面更为有效。
  但是很遗憾,我们似乎都已“忘了”这种符合生理自然天性的睡眠方式,维持着一尘不变的9点睡5点起的作息习惯。
从单相睡眠习惯转变到多相睡眠
并不是一件很困难的事——但是要循序渐进
  逐渐减少夜间睡眠,并且在傍晚小睡一会——关于小睡,你应该只选择两种时间长度:要么20分钟,要么90分钟(或者90分钟的倍数)。因为打盹20分钟能让你只进入睡眠的第一阶段,而不会跌进深度睡眠,才能在醒来后能够获得一定的休息效果。

Share