自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

My_Notebook

比较杂乱的知识碎片,以后会抽个时间好好整理,要不没有办法给人看~吼吼~

  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

转载 大型网站架构演变和知识体系

大型网站架构演变和知识体系之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的

2012-11-05 21:46:26 590

转载 java map

Map.Entry 类使用简介(转)你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:Set keys = map.keySet( );if(keys != null) {Iterator iterator = keys.iterator( );while(it

2012-06-20 09:54:02 479

转载 JDK安装方法

JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径(假设安装在D:\jdk1.4),此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,Eclipse等都需要依靠此变量)。Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin CLASSPATH为java加载类(cl

2012-04-30 02:08:33 520

转载 详解C#委托,事件与回调函数

.Net编程中最经常用的元素,事件必然是其中之一。无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等。“protected void Page_Load(object sender, EventArgs e)”这段代码相信没有人不熟悉的。细心一点一定会发现,非常多的事件方法都是带了“object sender, EventArgs e”这

2011-11-21 14:55:00 615

转载 回调函数

一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢? 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。 而那个函数在需要的时候,利用传递的地址调用回调函数

2011-11-21 14:51:17 1074

转载 C#回调函数

C#回调函数应用示例,形象比喻方法助理解,整理了一个简单的例子来说明回调函数的用法: namespace CallBackFunction {     class Program     {         static void Main(string[] args)         {             Program prog = new Program()

2011-11-21 14:42:11 16300

转载 TCP/IP四层模型和OSI七层模型

TCP/IP四层模型和OSI七层模型    表1-1是 TCP/IP四层模型和OSI七层模型对应表。我们把OSI七层网络模型和TCP/IP四层概念模型对应,然后将各种网络协议归类。    表1-1  TCP/IP四层模型和OSI七层模型对应表OSI

2011-09-05 15:18:03 853

原创 抽象类和接口的区别与联系

文章是转载的:      一、抽象类:      抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可

2011-08-29 14:40:11 571

转载 动态分配二维数组

在C语言中动态的一维数组是通过malloc动态分配空间来实现的,动态的二维数组也可以通过malloc动态分配空间来实现。  实际上,C语言中没有二维数组,至少对二维数组没有直接的支持,取而代之的是“数组的数组”,二维数组可以看成是由指向数组的指针构成的数组。对于一个二维数组p[i][j],编译器通过公式*(*(p+i)+j)求出数组元素的值:  1、p+i 计算行指针。  2、*(P+i) 具体的行,是一个指针,指向该行首元素地址。  3、*(P+i)+j 得到具体元素的地址

2011-05-27 17:28:00 888

转载 科技英语论文的写作要点

<br />总体原则(3C):Correct (正确),Clear (清楚);Concise (简洁)。<br /> <br />1 论文题名<br />1.1 基本要求<br />(1) 准确 (Accuracy)。题名要准确地反映论文的内容。作为论文的“标签”,题名既不能过于空泛和一般化,也不宜过于烦琐,使人得不出鲜明的印象。如果题名中无吸引读者的信息,或写得不堪理解。为确保题名的含义准确,应尽量避免使用非定量的、含义不明的词,如"rapid","new"等;并力求用词具有专指性,如"a vanad

2011-05-19 10:23:00 1592

转载 关于函数返回值的几种情况

<br />在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。<br /> <br />1.     如果返回一个基本类型的变量,比如:<br />int a;<br />a = 5;<br />return a;<br /> <br />那么就会a的一个拷贝,即5返回,然后a就被销毁了。尽管a被销毁了,但它的副本5还是成功地返回了,所以这样做没有问题。<br /> <br />2.     但是对于非动态分配(new/malloc)得到的指

2011-05-18 09:29:00 584

转载 序列化实例

<br />#include <stdlib.h><br />#include<stdlib.h><br />#include<time.h><br /><br />#define random(x) (rand()%x)<br /><br />#define OUT<br />#define IN<br /><br />typedef struct _XY<br />{<br />   int nX;<br />   struct _XY* pNext;<br />}XY,* PXY;<br />type

2011-04-13 02:17:00 702

原创 结构对齐

有关字节对齐的介绍:什么是对齐,以及为什么要对齐:现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上

2011-04-09 17:07:00 527

翻译 man of grep

<br />GREP <br /> <br /> <br />GREP <br /> <br /> Section: User Commands (1)  <br /> <br />NAME <br /> <br /> grep, egrep, fgrep - 打印匹配给定模式的行  <br /> <br />总览 SYNOPSIS <br /> <br />grep [options] PATTERN [FILE. . .]  <br /> grep [options] [-e PATTERN | -f

2011-04-02 10:44:00 1127

转载 回溯法

<br /><br />回溯法<br />    回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解;倘若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。扩大当前候选解的规模,以继续试探的过程称为向前试探。

2011-03-21 22:20:00 4767 3

原创 C++内存分配秘籍—new,malloc,GlobalAlloc详解

<br />        C++内存分配秘籍—new,malloc,GlobalAlloc详解<br />                                                   _______只为因内存分配而无法入眠的程序员<br />一。关于内存<br /> 1、内存分配方式<br />  内存分配方式有三种:<br />  (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在<br />。例如全局变量,static变量。<

2011-03-17 01:22:00 809

原创 container_of()理解

<br /><br /><br /><br />问题:如何通过结构中的某个变量获取结构本身的指针???<br /><br />关于container_of见kernel.h中:<br />/**<br />* container_of - cast a member of a structure out to the containing structure<br />* @ptr:     the pointer to the member.<br />* @type:     t

2011-03-09 10:20:00 483

转载 linux内核链表

<br />国防科技大学计算机学院<br />2004 年 8 月 本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。<br />一、 链表数据结构简介<br />链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。<br /

2011-03-09 08:14:00 648

转载 linux 链表实例应用程序

/********************************************************************* * * Filename: pfile.c * Version: 1.0 * Description: Demo for Linux LIST utility * Compilation: gcc –D__KERNEL__ -I/usr/src/linux/include pfile.c

2011-03-09 02:07:00 2767

转载 scanf的注意细节

scanf()函数的用法和实践daizh摘要:本文阐述了基于ANSI,Win 95,Win NT上的 C/C++语言中scanf()函数的用法,以及在实际使用中常见错误及对策。关键词:scanf()一、             序言在CSDN论坛的C/C++版块,我时常见到“对于scanf()函数的用法、及出现的各种错误而迷惑”的帖子,萌发了我写这篇文章的念头。文中结合自身在学习和编程中对它的认识和体会,以具体示例阐述问题,目的在于使得初学者能够正确使用scanf()函数,少走不必要的弯路。二、    

2011-03-01 11:18:00 717

原创 蚁群算法代码(C++)

<br />//基本蚁群算法程序<br /><br />#include "stdafx.h"<br />#include<iostream><br />using namespace std;<br /><br />const int iAntCount=34;//蚂蚁数量<br />const int iCityCount=51;//城市数量<br />const int iItCount=2000;//最大跌代次数<br />const double Q=100;<br />const double

2010-12-28 09:47:00 6844

原创 Printf()函数简单实现

/************************************************************************/<br />/* coder:huifeng00 <br />/* 时间:2010-5-23<br />/* 功能:简单实现自己的printf()函数,识别%d,%s,%c<br />/*********************************

2010-11-25 15:13:00 748

原创 C语言注释风格

<br />C语言编程规范-注释<br /><br />  规则:<br />1:一般情况下,源程序有效注释量必须在20%以上。<br />说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。<br />2:说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数

2010-11-04 09:52:00 18603

转载 二位指针和二位数组理解

<br />下面三种定义形式怎么理解?怎么动态分配空间? <br />(1)、int **Ptr; <br />(2)、int *Ptr[ 5 ]; 我更喜欢写成 int* Prt[5]; <br />(3)、int ( *Ptr )[ 5 ];<br />此文引自网上,出处不详,但是觉得非常好。略改了一点。<br />多维数组一向很难,一般都采用一维数组,但是一旦要用到还真是头疼。 <br />闲话少说,这里我就以三个二维数组的比较来展开讨论: <br />     (1)、int

2010-11-03 20:21:00 2180

转载 对sizeof()的深入理解

sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“<br />辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。<br />但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不<br />适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,<br />那么这篇文章对你或许有所帮助。<br />菜鸟我对C++的掌握尚未深入,其中不乏错误,欢迎各位指正啊<br /><br />1. 定义:<

2010-11-02 15:35:00 518

原创 对buffer的简单理解

<br />定义了一个Bufffer: <br /> BYTE   buf=new   BYTE[0x100000] <br /> 说明:首先定义一个buffer,说白了就是申请一块内存空间,new返回的是一个指针,所以这里的声明有错的,应该这样: <br /> BYTE   *pBuf   =   new   BYTE[0x100000]; <br /> 如果申请成功,则返回了该内存空间的首地址,如果申请失败则返回NULL。 <br /><br /> 1。如何向这个bu

2010-11-02 10:47:00 1004

转载 rpm安装总结

<br />在RedHat Linux和Mandrake等兼容RedHat的发行版中,整个发行版都是利用RPM安装的。所以安装新软件的最好方<br /><br />法是从网络上下载rpm包。<br /> 1)用RPM安装软件包,最简单的命令如下:<br /><br /> # rpm -ivh foo-1.0-l.i386.rpm (这里讲的软件包是foo-1.0-l.i386.rpm,以下都是)<br /><br /> foo###############

2010-11-01 19:39:00 407

转载 mount命令详解

<br />命令格式:<br />  mount [-t vfstype] [-o options] device dir<br />  其中:<br /> 1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:<br />  光盘或光盘镜像:iso9660<br />  DOS fat16文件系统:msdos<br />  Windows 9x fat32文件系统:vfat<br />  Windows NT ntfs文件系统:ntfs<br />  M

2010-09-28 09:34:00 390

翻译 Regular expression 与 GNU grep 的中文化

《专题报导》  Regular expression 与 GNU grep 的中文化              (作者 邱展毅)      一、前言      打开电视、收音机、报章杂志,细心的你也许已发觉到资讯量正    快速的成长中。若你连上网际网路(Internet),相信News、BBS、    Gopher、WWW(Word Wide Web)的资讯量更会使你看的目不暇给。聪    明的你会如何运用这些资讯呢?或者已被这庞大的资讯巨兽逼迫的    不

2010-09-27 01:47:00 1124

原创 POSIX正则表达式

<br />正则表达式(regular expression)是一种表示方式,在许多地方均有对此的支持,如命令grep、语言Python、工具vim等。但是这里仅讨论POSIX正则表达式,显然它与其他正则表达式(如传统的Unix正则表达式)存在稍许的差异。POSIX正则表达式分为:BRE(Basic Regular Expression)和ERE(Extended Regular Expressions)。以下是有关POSIX正则表达式的元字符(meta)的说明:<br /><br />/<br />用于关

2010-09-26 16:16:00 9642

转载 DFA与NFA的终极比较

<br />NFA与DFA各有利弊。<br />DFA与NFA:在预编译阶段(pre-use compile)的区别<br />在使用正则表达式搜索之前,两种引擎都会编译表达式,得到一套内化形式,适应各自的匹配算法。NFA的编译过程通常要快一些,需要的内存也更少一些。传统型NFA和POSIX NFA之间并没有实质的差别。<br /><br />DFA与NFA:匹配速度的差别<br />对于“正常”情况下的简单文本匹配测试,两种引擎的速度差不多。一般来说,DFA的速度与正则表达式无关,而NFA中两者直接相关。

2010-09-25 11:15:00 7780

原创 DFA&NFA(简易比较)

<br />1.历史<br /> <br />正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一个代数系统,并且引入了一种记号系统来描述正则集,这种记号系统被他称为“正则表达式”。在理论数学的圈子里被研究了几十年之后,1968年,后来发明了UNIX系统的Ken Thompson第一个把正则表达式用于计算机领域,开发了qed和grep两个实用文

2010-09-25 10:49:00 1612 1

原创 DFA&NFA

如果读者根据上面介绍的知识比较NFA和DFA,可能会得出结论:一般情况下,文本主导的DFA引擎要快一些。正则表达式主导的NFA引擎,因为需要对同样的文本尝试不同的子表达式匹配,可能会浪费时间(就好像上面例子中的3个分支)。这个结论是对的。在NFA的匹配过程中,目标文本中的某个字符可能会被正则表达式中的不同部分重复检测(甚至有可能被同一部分反复检测)。即使某个字表达式能够匹配,为了检查表达式中剩下的部分,找到匹配,它也可能需要再一次应用(甚至可能反复多次)。单独的子表达式可能匹配成功,也可能失败,但是,直到抵

2010-09-25 10:44:00 1500

转载 GREP相关

<br /> 1. grep简介<br />  grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它

2010-09-25 10:38:00 443

翻译 源码的读法

如何看懂源代码--(分析源代码方法)我们在写程式时,有不少时间都是在看别人的代码。 例如看小组的代码,看小组整合的守则,若一开始没规划怎么看, 就会“噜看噜苦(台语) ” 不管是参考也好,从开源抓下来研究也好,为了了解箇中含意,在有限的时间下,不免会对庞大的源代码解读感到压力。 网路上有一篇关于分析看代码的方法,做为程式设计师的您,不妨参考看看, 换个角度来分析。 也能更有效率的解读你想要的程式码片段。 六个章节: ( 1 )读懂程式码,使心法皆为我所用。 ( 2 )摸清架构,便可轻松掌握全貌。 ( 3 )

2010-09-24 18:16:00 835

原创 Bugzilla配置

<br />参考下面四个网站:<br />http://blog.csdn.net/qiongguishanglu/archive/2010/05/05/5559587.aspx<br />http://www.9php.com/FAQ/cxsjl/perl/2009/11/2304445153676.html<br />http://www.chinaunix.net/jh/13/1323186.html<br />http://www.51testing.com/html/25/n-91725.html

2010-09-24 15:27:00 340

原创 Fedora 12里面一root身份登录GUI

<br />以用户账号进入终端,允许root账号登陆:<br />$ su <br />输入密码:<br /><br />#vi /etc/pam.d/gdm<br />删除其中的一行 auth required pam_succeed_if.souser != root quiet<br />:wq保存并退出。<br /><br />#vi /etc/pam.d/gdm-passwaord<br />删除其中的一行 auth required pam_succeed_if.souser != root q

2010-09-24 15:19:00 456

原创 inline函数问题

<br />inline函数<br />我们看下面的函数,函数体中只有一行语句:<br />double Average(double total, int number){ return total/number; } 定义这么简单的函数有必要吗?实际上,它还是有一些优点的:<br />第一,它使程序更可读;<br />第二,它使这段代码可以重复使用。<br />但是,它也有缺点:当它被频繁地调用的时候,由于调用函数的开销,会对应用程序的性能(时间+空间效率,这儿特指时间)有损失。例如,Average在一

2010-09-24 15:17:00 692

原创 什么是二进制文件

<br />二进制文件<br />英文:Binary files - 包含在 ASCII 及扩展 ASCII 字符中编写的数据或程序指令的文件。计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本)文件,图形文件及文字处理程序等计算机程序都属于二进制文件。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。<br />从本质上来说他们之间没有什么区别,因为他们在硬盘上都有一种的存放方式--二进制,但是如果要对他们有些区分的话,那可以这样理解。我们现在的每个

2010-09-24 15:10:00 1035

原创 细小语法(我容易忘记的)

<br /><br />Memset函数用法(C语言)<br />原型是extern void *memset(void *buffer, int c, int count) <br />buffer为指针或是数组,c是赋给buffer的值,count是buffer的长度. <br />这个函数在socket中多用于清空数组. <br />如:原型是memset(buffer, 0, sizeof(buffer)) <br />  <br />  <br />ungetc是将读出的数据再次放回到缓冲区去,下

2010-09-24 15:06:00 399

正则表达式编译器MTracer.rar

很好用的正则表达式编辑器~主要模拟的和perl语言里面的正则语法相似~

2010-09-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除