博文

编程基本功   (2006-09-04 19:11:00)

摘要:1、扎实的基础
   数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。
2、丰富的想像力
   不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。
3、最简单的是最好的
   这也许是所有科学都遵循的一条准则,复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方法。
4、不钻牛角尖
   当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5、对答案的渴求
   人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6、多与别人交流
   三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7、良好的编程风格
   注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必......

阅读全文(2704) | 评论:2

asp.net开源资料——国内.NET论坛源代码(2006-09-04 19:10:00)

摘要:  
asp.net开源资料——国内.NET论坛源代码

1、中国非常论坛cnVery bbs v3.01(SQL/ACESS)

网站首页:http://www.cnvery.net/
发布地址:http://www.cnvery.net/cvb/board.aspx?boardid=2
演示地址:http://www.cnvery.net/cvb/
使用授权:cnVery bbs 免费开放使用权,网友可以任意使用和传播,但必须保留cnVery的著作权和署名权。
环境要求:Window2000 + IIS5 + .NET Framework 1.1 或更高版本
功能特性:
1、使用ASP.Net(c#)、三层结构开发;
2、全部代码都由手写完成,清晰易懂、易维护;
3、程序结构紧凑、设计新颖、速度优越;
4、兼容主流浏览器,界面美观,皮肤设计灵活多变;
5、简约型设计,可转换其他各种流行论坛的数据;
6、在线情况统计、浏览者跟踪统计精确;
7、核心稳定,可扩展性良好,适合个性需求;
8、支持增设外挂、合并其他系统,如合并BLOG、新闻系统等;
9、支持自行即时换风格的功能。
10、增强论坛安全性,全面巩固对SQL注入攻击和Cookies篡改的防护;


2、StellaForum v2.0

网站主页:http://api.533.net/
发布地址:http://api.html.533.net/
使用授权:开源
下载地址:
--> http://api.533.net/se/StellaForum_v_2.rar <--
--> http://www.mikecat.net/mikeapp/StellaForum_v_2.rar <--
以更易于扩展的三层架构为基础扩展论坛的功能,数据层使用了petshop模式,采用了可更换主题皮肤的设计,日志记录使用了log4net,重新设计的Model类,增加了跟踪帖子修改的功能,增加了所使用的第三方组件的连接


3、盛天BBS.NET v1.......

阅读全文(18927) | 评论:83

如何关闭计算机端口?(2006-09-04 19:09:00)

摘要: 默认情况下,Windows有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这些端口连上你的电脑。为了让你的系统变为铜墙铁壁,应该封闭这些端口,主要有:TCP 135、139、445、593、1025 端口和 UDP 135、137、138、445 端口,一些流行病毒的后门端口(如 TCP 2745、3127、6129 端口),以及远程服务访问端口3389。下面介绍如何在WinXP/2000/2003下关闭这些网络端口:

第一步,点击“开始”菜单/设置/控制面板/管理工具,双击打开“本地安全策略”,选中“IP 安全策略,在本地计算机”,在右边窗格的空白位置右击鼠标,弹出快捷菜单,选择“创建 IP 安全策略”(如右图),于是弹出一个向导。在向导中点击“下一步”按钮,为新的安全策略命名;再按“下一步”,则显示“安全通信请求”画面,在画面上把“激活默认相应规则”左边的钩去掉,点击“完成”按钮就创建了一个新的IP 安全策略。

第二步,右击该IP安全策略,在“属性”对话框中,把“使用添加向导”左边的钩去掉,然后单击“添加”按钮添加新的规则,随后弹出“新规则属性”对话框,在画面上点击“添加”按钮,弹出IP筛选器列表窗口;在列表中,首先把“使用添加向导”左边的钩去掉,然后再点击右边的“添加”按钮添加新的筛选器。

第三步,进入“筛选器属性”对话框,首先看到的是寻址,源地址选“任何 IP 地址”,目标地址选“我的 IP 地址”;点击“协议”选项卡,在“选择协议类型”的下拉列表中选择“TCP”,然后在“到此端口”下的文本框中输入“135”,点击“确定”按钮(如左图),这样就添加了一个屏蔽 TCP 135(RPC)端口的筛选器,它可以防止外界通过135端口连上你的电脑。

点击“确定”后回到筛选器列表的对话框,可以看到已经添加了一条策略,重复以上步骤继续添加 TCP 137、139、445、593 端口和 UDP 135、139、445 端口,为它们建立相应的筛选器。

重复以上步骤添加TCP 1025、2745、3127、6129、3389 端口的屏蔽策略,建立好上述端口的筛选器,最后点击“确定”按钮。

第四步,在“新规则属性”对话框中,选择“新 IP 筛选器列表”,然后点击......

阅读全文(2449) | 评论:0

教你如何查看自己开放的端口! (2006-09-04 19:08:00)

摘要: 教你如何查看自己开放的端口! By  静夜思 发表于 2006-5-31 2:07:00 
可以利用查看本机开放端口的方法来检查自己是否被种了木马或其它hacker程序。以下是详细方法介绍。

1. Windows本身自带的netstat命令

关于netstat命令,我们先来看看windows帮助文件中的介绍:

Netstat
显示协议统计和当前的 TCP/IP 网络连接。该命令只有在安装了 TCP/IP 协议后才可以使用。

netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]

参数

-a

显示所有连接和侦听端口。服务器连接通常不显示。

-e

显示以太网统计。该参数可以与 -s 选项结合使用。

-n

以数字格式显示地址和端口号(而不是尝试查找名称)。

-s

显示每个协议的统计。默认情况下,显示 TCP、UDP、ICMP 和 IP 的统计。-p 选项可以用来指定默认的子集。 

-p protocol

显示由 protocol 指定的协议的连接;protocol 可以是 tcp 或 udp。如果与 -s 选项一同使用显示每个协议的统计,protocol 可以是 tcp、udp、icmp 或 ip。

-r

显示路由表的内容。

interval

重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。

阅读全文(2622) | 评论:0

三十岁前不要去在乎的事(2006-09-04 19:02:00)

摘要:1.放弃
把握的反面就是放弃,选择了一个机会,就等于放弃了其他所有的可能。当新的机会摆在面前的时候,敢于放弃已经获得的一切,这不是功亏一篑,这不是半途而废,这是为了谋求更大的发展空间;或者什么都不为,只因为喜欢这样做,因为,年轻就是最大的机会。人,只有在三十岁之前才会有这个胆量,有这个别资本,有这个资格。

2.失恋
不是不在乎,是在乎不起。三十岁前最怕失去的不是已经拥有的东西,而是梦想。爱情如果只是一个过程,那么正是这个年龄应当经历的,如果要承担结果,三十岁以后,可能会更有能力,更有资格。其实,三十岁之前我们要做的事情很多,稍纵即逝,过久地沉溺在已经乾涸的爱河的河床中,与这个年龄的生命节奏不合。

3.漂泊
漂泊不是一种不幸,而是一种资格。趁著没有家室拖累,趁著身体健康,此时不飘何时飘?当然,漂泊的不一定是身体,也许只是幻想和梦境。新世纪的时尚领袖是飘一代,渴望漂泊的人惟一不飘的是那颗心。

4.失业
三十岁以前就尝到失业的滋味当然是一件不幸的事,但不一定是坏事。三十岁之前就过早地固定在一个职业上终此一生也许才是最大的不幸。失业也许让你想起埋藏很久而尘封的梦想,也许会唤醒连你自己都从未知道的潜能。也许你本来就没什么梦想,这时候也会逼著你去做梦。

5.时尚
不要追赶时尚。按说青年人应该是最时尚的,但是独立思考和个性生活更重要。在这个物质社会,其实对时尚的追求早已经成为对金钱的追求。今天,时尚是物欲和世俗的同义语。

6.格调
这是小资的东西,「小资」这个词在今天又二度流行,追求格调就是他们的专利。小资们说,有格调要满足四大要件:智慧、素养、自信和金钱。格调就是把「高尚」理解成穿著、气质、爱好的品味和室内装潢。也就是大老粗只会表现谈吐的庸俗,「小资」们已经有能力庸俗他们的心灵了。主流观念倒不是非要另类,另类已经成为年轻人观念的主流了,在今天,老土倒显得另类。关键是当今社会是一个创造观念的时代,而不是一个固守陈旧观念的时代。

7.评价
我们最不应该做出的牺牲就是因为别人的评价而改变自我,因为那些对你指手画脚的人自己也不知道他们遵从的规则是什么。千万不要只遵从规矩做事,规矩还在创造之中,要根据自己的判断做每一件事,虽然这样会麻烦一......

阅读全文(2591) | 评论:1

IT人员必读10个小故事(2006-09-04 19:02:00)

摘要:1. 从前,有两个饥饿的人得到了一位长者的恩赐:一根鱼竿和一篓鲜活硕大的鱼。其中, 一个人要了一篓鱼,另一个人要了一根鱼竿,于是他们分道扬镳了。得到鱼的人原地就用 干柴搭起篝火煮起了鱼,他狼吞虎咽,还没有品出鲜鱼的肉香,转瞬间,连鱼带汤就被他 吃了个精光,不久,他便饿死在空空的鱼篓旁。另一个人则提着鱼竿继续忍饥挨饿,一步 步艰难地向海边走去,可当他已经看到不远处那片蔚蓝色的海洋时,他浑身的最后一点力 气也使完了,他也只能眼巴巴地带着无尽的遗憾撒手人间。又有两个饥饿的人,他们同样 得到了长者恩赐的一根鱼竿和一篓鱼。只是他们并没有各奔东西,而是商定共同去找寻大 海,他俩每次只煮一条鱼,他们经过遥远的跋涉,来到了海边,从此,两人开始了捕鱼为 生的日子,几年后,他们盖起了房子,有了各自的家庭、子女,有了自己建造的渔船,过 上了幸福安康的生活。 一个人只顾眼前的利益,得到的终将是短暂的欢愉;一个人目标高远,但也要面对现实的 生活。只有把理想和现实有机结合起来,才有可能成为一个成功之人。有时候,一个简单 的道理,却足以给人意味深长的生命启示。

2. 有位秀才第三次进京赶考,住在一个经常住的店里。考试前两天他做了三个梦,第一个 梦是梦到自己在墙上种白菜,第二个梦是下雨天,他戴了斗笠还打伞,第三个梦是梦到跟 心爱的表妹脱光了衣服躺在一起,但是背*着背。这三个梦似乎有些深意,秀才第二天就 赶紧去找算命的解梦。算命的一听,连拍大腿说:“你还是回家吧。你想想,高墙上种菜 不是白费劲吗?戴斗笠打雨伞不是多此一举吗?跟表妹都脱光了躺在一张床上了,却背* 背,不是没戏吗?” 秀才一听,心灰意冷,回店收拾包袱准备回家。店老板非常奇怪,问:“不是明天才考试 吗,今天你怎么就回乡了?”秀才如此这般说了一番,店老板乐了:“哟,我也会解梦的 。我倒觉得,你这次一定要留下来。你想想,墙上种菜不是高种吗?戴斗笠打伞不是说明 你这次有备无患吗?跟你表妹脱光了背**躺在床上,不是说明你翻身的时候就要到了吗 ?”秀才一听,更有道理,于是精神振奋地参加考试,居然中了个探花。 积极的人,象太阳,照到哪里哪里亮,消极的人,象月亮,初一十五不一样。想法决定我 们的生活,有什么样的想法,就有什么样的未来。

3. 在某个小村落,下了一场非常大的雨,洪水开始淹没全村,一位神父在教堂里祈祷,眼 看......

阅读全文(2504) | 评论:0

C++编程书籍推荐(2006-09-04 18:56:00)

摘要:  大家好,这是我的第一篇文章,想来想去想不出写点什么好,最后决定,就以我看书的经历给大家介绍一下C++编程的基础书籍吧。 虽然本人也是菜鸟一个,刚学编程不久,但就因为这样,我对C++编程的初级书还知道一些。 要看编程书籍需要什么基础呢?我看到有许多这样问的人,有人认为要把电脑弄的比较精通的才去学编程,其实,我认为只要知道些很基础的电脑知识的就行了(总不能鼠标不会用就去看书吧)。 刚开始,就看些C++编程入门的书,比如《21天学通C++》、《C++编程思想》、《C++程序设计》等大家都认为比较好的书。我看的第一本是《C/C++程序设计入门》,洪恩的,也不知好不好,但是它确实把我带进了编程的殿堂。这些就是编程的入门书籍了,都讲的比较详细,容易看懂,要照着上面仔细的看,掌握好知识,多实践,写代码,这样,C++的基础也就差不多了。 接下来看的是数据结构和算法的书,这是编程必备的基本功,是相当重要的,重要的是要理解,并学会应用。这类型的书籍有《数据结构、算法与应用——C++语言描述》、《数据结构 C++语言描述——应用标准模板库(STL)》等等,这部分真是很重要,毕竟有人说:“程序 = 数据结构 + 算法”嘛! 有了这些基础,就可以看windows程序方面的书了,这是最有趣的,也是最有用的。首先,《windows程序设计》是非看不可的。这是经典中的经典,看了这本书,多练习练习,windows程序设计基础就差不多了。接下来就根据自己的兴趣看其他的书,例如游戏方面的《windows游戏编程 大师技巧》,比较深入的《windows核心编程》,MFC的《MFC windows程序设计》等,这些书都可以帮你进一步掌握windows编程。 看了那么多书,就可以再进一步看更高深的书籍了,我也介绍到这里了。其实这写内容网上也可以搜到相关文章,不过先要系统的学习还是要看书。那怎么买书呢?去附近的书店逛逛看吧,也可以到网上订够,www.china-pub.com卖的计算机书籍真的很全,建议到那里去买,看电子书也可以,总之想办法弄来看吧~ 这里提醒大家,不要光顾着看书,也要多写代码,练习练习,这样才能巩固学到的知识,记住“三天不练手生”这句老话。    这是我的第一篇文章,写得不好望大家见谅。在新年的第一天,祝大家身体健康,事业有成,编程进步。谢谢各......

阅读全文(3374) | 评论:2

C++ 语言基础(2)(2006-09-04 11:42:00)

摘要:if语句
if语句用于测试条件并在条件为真时执行一桌或几条语句。
说明:if表达式后面不能带分号,否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句。
if (x == 10); // Warning! Extra semicolon!
DoSomething(x);
这里DoSomething()函数总会执行,因为编译器不把它看成在条件为真时执行的第一条语句。由于这个代码完全合法(但无用),所以编译器无法发出警告。

假设要在条件为真时执行多行语句,则要将这些语句放在大括号内:
if (x > 10) {
cout << "The number is greater than 10" << end1;
DoSomethingWithNumber(x);
}
条件表达式求值为false时,与if语句相关联的码段忽略,程序继续执行该码段之后的第一条语句。
说明 :
C++中包含许多快捷方法,其中一个是用变量名测试true,例如:
if (fileGood) ReadData();
这个方法是下列语句的速写方法:
if (fileGood == true) ReadData();
本例用了bool变量,也可以用其它数据类型。只要变量包含非零数值,表达式即求值为true,对变量名加上逻辑非(!)操作符可以测试false值:
bool fileGood = OpenSomeFile();
if (!fileGood) ReportError();
学会C++快捷方法有助于写出更精彩的代码。 有时要在条件表达式求值为true时进行某个动作,在条件表达式求值为false时进行另一动作,这时可以用else语句如下:
if (x == 20) {DoSomething(x);}
else {DoADifferentThing(x);}

新术语
else语句和if语句一起使用,表示if语句失败时(即在条件表达式求值为false时)执行的码段。

if语句形式之二:
if (cond_expr_1) {

阅读全文(2425) | 评论:0

C++ 语言基础(1)(2006-09-04 11:42:00)

摘要:入门简介    
变量 C++数据类型 C++操作符 C++中的函数 main函数 数组 字符串数组 字符串操作函数

C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚。读者学完本书并使用C++ Builder一般时间之后,最后对C++语言再作更深入的了解。

C++可以最充分地利用面向对象编程(OOP)的优势。OOP不只是一个新名词,而有它的实际意义,可以生成可复用的对象。新术语 对象(object),和前面介绍的构件一样,是完成特定编程任务的软件块(构件是对象,但对象不全是构件,稍后会解释这点)。对象只向用户(使用对象的编程人员)显示必须的部分,从而简化对象的使用。用户不必知道的所有内部机制都隐藏在幕后。这一切都包括在面向对象编程的概念中。OOP可以用模块化方法进行编程,从而避免每次从头开始。C++ Builder程序是面向OOP的,因为C++ Builder大量使用构件。生成构件后(你生成的或C++ Builder内置的构件),就可以在任何C++ Builder程序中重复使用。构件还可以扩展,通过继承生成具有新功能的新构件。最妙的是,构件隐藏了所有内容细节,使编程人员能集中精力充分利用构件。

入门简介
在C++之前先有C语言,C++是建立在C语言之上的,称为“带类的C语言”。这个C语言基础在当今的C++程序中仍然很重要。C++并不是取代C,而是补充和支持C。本章余下部分和下几章主要介绍C++中来源于C语言的部分。实际上,这里介绍的是C语言,第2课"C++基础"中才转入C++。读者不必关心哪个来自C,哪个来自C++,因为这些全在C++中。C++语言很难按顺序介绍,因为我们要介绍的所有特性都是交叉的。我准备的一次介绍一块,然后拼凑起来。到第3课"高级C++"结束,你将对C++语言有个完整的了解。一下子没有掌握某个概念也没关系,有些概念必须经过实践才能完全了解。

变量
还是从变量讲起来吧。变量(variable)实际上是赋予内存地址的名称。声明变量后,就可以用它操作内存中的......

阅读全文(2996) | 评论:0

.NET 开发 (2006-09-04 11:17:00)

摘要: 不过,我发现在今天,因特网上还有许多我想做的事情不能实现。例如,我想在我的社区找到一个对菜肴风味有详细介绍的餐馆。此外,我想知道这个餐馆今晚7点是否还有空位。
  
  或者,如果我在做生意,我会希望知道卖方商品的详细资料。如果有多个的卖方能向我提供资料,我想知道哪个卖方的货最便宜,或者是哪个卖方能最快交付。
  
  今天还不能存在象这样的服务,主要有两个原因。第一个原因是, 没有合适的标准来描述全部信息类型。第二个原因是,今天的商家用自己的方式告诉别人他们在卖什么。XML的出现,提供了描述全部信息类型的标准。第二的理由可以归结为:为了提供这样的服务而必须进行的开发工作具有难度。
  
  微软公司预见到出售服务将是未来之路。换句话说,公司将提供服务,并且被服务的用户将支付服务的费用。很多的服务将免费,还有一些服务将按月收费或按用户个数收费。当写这篇文章时,个人和商业公司如何对这些服务支付的费用细节尚不清楚;我们必须先看一看这种业务将会如何开展。你能把服务看作一些商业抽象概念的实现。这里是一些简单的服务例子:
  
  将邮政编码转换为经纬位置;
  
  验证信用卡的购买力;
  
  找到从某地到达另一地的方法;
  
  找一家需要的餐馆;
  
  管理一个在线像册;
  
  控制一个在线日历;
  
  我可以继续设想一个公司应实现的服务。
  
  毫不怀疑地,微软公司将在不远的将来, 提供一些这类的服务。其它的公司将提供其它的服务,并且,他们能完全参加(甚至和微软公司一起)到一个自由的市场。
  

阅读全文(2832) | 评论:0