自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(238)
  • 资源 (11)
  • 收藏
  • 关注

原创 openstack nova基础知识——RabbitMQ

nova中各个组件之间的交互是通过“消息队列”来实现的,其中一种实现方法就是使用RabbitMQ,对RabbitMQ的使用,官方文档上有一个非常好的Get Started,由浅及深,结合例子,很容易理解。现在对RabbitMQ的理解,就是利用它可以非常灵活的定制自己想要实现的消息收发机制。其中,有这样几个角色:producer, consumer, exchange, queueprodu

2012-08-17 06:20:11 9111

原创 openstack nova 基础知识——cfg

纠结了两天,才把nova中的配置文件的管理和命令行的解析了解了一个大概,在nova中,很多地方都用到了cfg这个模块。现在的分析,只是还在表面上,没有深入到实质性的内容,而且,有很多不清楚的地方,这个不清楚的地方,主要是不知道它用来是做什么的,以及怎么去用它。不过随着慢慢的深入,会越来越清楚的。我觉得cfg模块的主要作用有两个:一个是对配置文件进行解析,一个是对命令行参数进行解析,

2012-08-11 03:29:19 10534 1

原创 python中的装饰器——@

对装饰器本来就一知半解的,今天终于弄清楚了,python中的装饰器是对装饰者模式的很好运用,简化到骨子里了。python中为什么需要装饰器,看这里:http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.htmlpython原理解释,看这里:http://www.openstack.org.cn/bbs/forum.

2012-08-08 10:28:59 5518

原创 openstack nova 基础知识——wsgi

激励自己的话:在微博上看到一句话:一件事成功的概率只有1%,但是要是做上100遍的话,成功的概率将会是63%,这句话对现在的我真是一个极大的鼓励。正文:在nova源码中看到了wsgi这个模块,不懂,于是谷歌去,又全是英文啊!官方网站:http://wsgi.readthedocs.org/en/latest/index.html1.  什么是wsgi?W

2012-08-07 07:08:17 6374

原创 openstack nova 基础知识——eventlet

激励自己的话:站在nova的源码面前,不知该从何处开始,木有资料,木有人指导,只能自己去摸索。nova中,除了mysql是我以前就熟知的之外,其它全是陌生,这对我来说,真是一个不小的挑战。另外,就是看英文文档,就好像干嚼馒头一样,嚼得久了,才会觉得它甜,这也实在是没有办法。登山的乐趣不在于到达山顶,而在于到达山顶的过程中,在此记录这个过程,希望我可以走到最后!申明:这里

2012-08-07 03:38:25 23832 6

原创 python学习笔记(4)

44、模块(1)修改搜索路径在交互模式下修改sys.path,将自己写的模块所在的目录放到这个搜索路径中,那么解释器就可以找到在这个路径下所定义的模块了,示例:>>>import sys>>> sys.path.append(r'E:\My DBank\python\py\mymodule')若要移除这个路径,那么可以使用列表中的pop()方法(2)名称空间名称空间是名称(标识符

2012-08-03 22:06:03 2007

原创 python学习笔记(3)

43、函数(1)若函数没有返回值,则默认的返回值是None(2)装饰器装饰器实际就是函数,它接受函数对象。我们在执行函数之前,可以运行些预备代码,也可以在执行代码之后做些清理工作。这类似于java中的AOP,即面向切面编程,可以考虑在装饰器中置入通用功能的代码来降低程序复杂度。例如,可以用装饰器来:引入日志、增加计时逻辑来检测性能、给函数加入事务的能力1. 无参装饰器:@deco

2012-08-03 22:03:03 1615

原创 python学习笔记(2)

37、列表(1)添加新的元素,注意不能使用+号来添加元素,+号的使用级别是列表,即两个操作数都是列表的情况下才可以连接:>>> s=[1,2,3,4]>>> s.append(5)>>> s[1, 2, 3, 4, 5]>>> (2)序列类型函数sorted() and reversed():sorted()只是对s进行排序,并没有改变s的真实顺序>>>s=[4,5,43,

2012-08-03 22:01:01 2991 2

原创 python学习笔记(1)

1、在Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。 如:x=1 1这个整形对象被创建,然后将这个对象的引用赋值给x这个变量2、多元赋值,其实就是元组赋值x,y,z=1,2,'string' 等价于 (x,y,z)=(1,2,'string')利用多元赋值实现的两个变量的值交

2012-08-03 21:52:13 3373

原创 第一次面试的失败

深夜辗转难眠,一直在想着5个小时前的电话面试,心里什么感觉真是说不出来,感觉遗憾,感觉悔恨,又感觉兴奋,总之错综复杂,心里安慰自己,毕竟是第一次面试,失败时难眠的,但是我又在责问自己,为什么我会失败??这次面试来的太突然了,我几乎没有任何的思想准备,当然失败的主要原因不在于没有准备,而是在于我现在确实没达到人家的招聘要求:1、熟悉C/C++,有linux系统开发经验2、熟悉Py

2012-06-27 02:53:54 3659 6

原创 编译原理之逆波兰表达式

逆波兰表达式就是所谓的后缀表达式,运算符号都在运算变量的后面,这样计算机进行计算的时候是非常方便和快捷的。将中缀表达式转换成后缀表达式的算法如下图所示:根据上图可以直接出来代码,另外转换为后缀表达式之后,对逆波兰表达式的计算就会很方便了,看下图:需要注意的是,重点不在写程序,重点在于这些个图是怎么出来的,这些也都是前人的总结啊,示例代码如下:#inc

2012-06-21 14:25:11 8615

原创 语法分析之LL(1)分析法

LL(K)分析方法是一种自顶向下的分析技术,这种分析方法是从左到右扫描源程序(输入串),同时从识别符号开始生成句子的最左推导,向前看K个符号,便能确定当前应选用怎样的规则。当K=1时,即是LL(1)分析法。LL(1)分析法中很重要的一块内容是分析矩阵的构造,这个分析矩阵是进行语法分析的依据,每一步都要靠它来决定如何进行,分析矩阵的构造方法如下:1.   对于A→ab(a∈Vt)

2012-06-21 14:16:23 16607

原创 编译原理之词法分析

词法分析的主要任务是对源程序进行单词序列化,主要是看得懂“状态转换图”,即所谓的“自动机”,程序的实现是根据状态转换图来完成的,图理解了,程序就非常好写了,一个状态是一个case,然后在不同的状态之间跳转,如果能够达到最后的状态,则说明符合某一个词法,那么程序就可以正确的识别这个单词了。在此举的一个例子是识别c语言的源程序的,程序也是用c语言写的,用c语言来识别c语言,好像有点不太对劲

2012-06-21 14:00:24 1264

原创 jdbc连接access

如果想省事,用access作为数据库是最方便的了,配置如下:1、把mdb文件工程目录下2、url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=shopJXC.mdb";3、con=DriverManager.getConnection(url,user,password);//连接数据库对象connectDB,

2012-06-05 10:30:20 793

原创 设计模式学习笔记——桥梁模式

定义:将抽象和实现解耦,使得两者可以独立地变化。(抽象角色引用实现角色,实现抽象角色的部分实现) 桥接模式主要是为了补充继承的缺点的,继承有什么缺点呢?即强侵入,父类有这个方法,子类也必须有这个方法,这是不可选择的,会带来扩展性的问题。比如A类有一个方法,B类继承了A类的这个方法,C类继承了B类的这个方法,如果B类要重写父类的这个方法,那么它就要修改和C类的关系,这就带来了很大的风险。

2012-05-21 23:18:30 870

原创 设计模式学习笔记——解释器模式

定义:给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。这个模式个人感觉比较难理解,需要借助例子来消化,先来看一个例子:即四则运算的模型公式,所谓模型公式就是可以自定义的一个表达式,自定义好表达式之后,对参数进行赋值,就可以计算出结果,关键是这个公式是可以自定义的,只要符合规定的文法即可,输入参数,计算结果。这就是一个解释器模式,输入的表

2012-05-16 01:17:01 1014

原创 设计模式学习笔记——享元模式

定义:使用共享对象可以有效的支持大量的细粒度的对象。这里出现两个名词:共享对象和细粒度对象,所谓共享对象,这个好说,就是这个对象是常驻在内存中的,供大家一起使用,细粒度对象是说对象很多而且这些对象性质很相近,可以提取出很多公共的属性,那么这样来说,细粒度对象的属性就可以分为两种了,一种是可以共享的,称作外部状态,一种是不可以共享的,称作内部状态(我觉得《设计模式之禅》作者这里说的有

2012-05-15 21:32:39 2105 2

原创 设计模式学习笔记——责任链模式

定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。在这里举一个用户注册的例子,这个例子源于《设计模式之禅》上关于本模式的讲解,说是作者在实际项目中用到的这个责任链模式,我这里进行了简化操作,该例子描述如下:用户分为两类,VIP用户户和普通用户,VIP用户是在他们公司办理过业务的用户,注

2012-05-14 23:54:58 934

原创 设计模式学习笔记——装饰模式

定义:动态的给一个对象添加额外的职责,就增加功能来说,装饰模式相比生成子类更为灵活。其通用类图如下:装饰模式的优点:1、装饰类和被装饰类可以独立发展,互不耦合,因为装饰类是从外部来扩展被装饰类的功能的,所以Component无需知道Decorator2、装饰模式是继承关系的一个替代方案,当继承的时候,如果需要生成很多的子类,才能解决问题,那么就会降低系统

2012-05-14 16:56:14 803

原创 设计模式学习笔记——访问者模式

定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。这里先来说一下访问者模式的使用场景:1、需要对一个对象结构中的对象进行很多不同且不相关的操作,而又不想让这些类变得异常繁杂。2、一个对象包含很多的类对象,他们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作,也就是用迭代器模式已经不能胜任的场景。

2012-05-14 15:51:43 932

原创 设计模式学习笔记——组合模式

定义:将对象组合成树形结构以表示“部分—整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式主要用来处理一些具有“容器特征”的对象,即他们在充当对象的同时,又可以作为容器包含其他的多个对象。也就是说组合模式表达的是一种树形的结构,将数据结构中的“树”,用面向对象的方式表现出来了,而且表达的是一种多叉树。看如下的通用类图:源代码如下:/* * 抽

2012-05-14 12:34:58 900 1

原创 设计模式学习笔记——备忘录模式

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态。备忘录模式主要是对某个对象的状态的备份,备份的主要是对象当前的属性值,即成员变量的值,成员变量可以有多个,而且可以备份同一个对象的多种不同状态,即同一个对象可以同时有多个备份,先来看最简单的情况,即一个对象只有一个成员变量:其通用类图为:源代码如

2012-05-13 23:19:58 788

原创 设计模式学习笔记——观察者模式

前言:终于接触到观察者模式了,很早很早以前就听说过这个模式,当时也大概读了一下,但是并没有理解,总感觉这是一个很牛的东西,今天我要理解它……定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于他的对象都会得到通知并被自动更新。在java中已经实现了观察者(Observer)和被观察者(Observable),在这里就实现一下java中的方法,

2012-05-13 18:06:40 844

原创 设计模式学习笔记——迭代器模式

定义:它提供一种方法访问一个容器对象中的各个元素,而又不需要暴露该对象的内部细节。迭代器是为容器服务的,迭代器模式为了解决遍历容器中的元素而诞生的,从而使容器只管增减元素就可以了,需要遍历时,交给迭代器处理。其通用类图如下:实现代码如下:public interface Iterator { public Object next(); public bool

2012-05-13 02:49:38 879

原创 设计模式学习笔记——门面模式

定义:要求一个子系统的外部和其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用。“统一的对象”,也就是提供一个访问子系统的接口,除了这个接口,不允许有任何访问子系统的行为发生,门面对象是外界访问子系统的唯一通道,不管子系统内部是多么杂乱无章,只要有门面模式在,就可以做到“金玉其外,败絮其中”。其通用类图如下:举一个简单

2012-05-13 01:48:33 809

原创 设计模式学习笔记——适配器模式

定义:将一个类的接口变成客户端所期待的另一种接口,从而使原本因为接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式有两种表现形式,一种称作“类适配器”,一种称作“对象适配器”。在本文中将举一个“本公司员工和外来公司员工”这样的一个例子,本公司员工的信息是由本公司的系统来维护的,但是外来公司员工的信息是在他们自己的公司中维护的,但是现在要将外来员工的信息整合到本公司的员工管

2012-05-13 00:44:44 799

原创 设计模式学习笔记——命令模式

定义:将一个请求封装成对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求的日志,可以提供命令的撤销和恢复功能。通用类图如下:通用代码如下://命令接受者public abstract class Receiver { public abstract void doSomething();}public class ConcreteRec

2012-05-12 21:34:31 749

原创 设计模式学习笔记——策略模式

定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。通用类图如下:策略模式的优点:1、算法可以自由切换2、避免了使用多重条件判断3、扩展性良好策略模式的缺点:所有策略类都需要对外暴露,上层模块必须知道有哪些策略,然后才能决定使用哪个策略,这与迪米特法则是相违背的,可以混合工厂方法模式、代理模式等解决这个缺点。通用代码

2012-05-10 15:39:09 711

原创 设计模式学习笔记——中介者模式

定义:用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示的互相交互,从而使其耦合松散,而且可以独立的改变他们之间的交互。模式动机:1、在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责。2、对于一个模块,可能由很多对象构成,而且这些对象之间可能存在相互的引用,为了减少对象两两之间复杂的引用关系,使之成为一个松

2012-05-10 14:51:34 1149

原创 设计模式学习笔记——原型模式

定义:用原型实例创建对象的种类,并且通过拷贝这些原型创建新的对象。在java中,其实原型模型已经应用到了平常的操作中,即只要类实现了Cloneable接口,那么这个类的对象,就可以通过其父类的clone()方法被复制,这就是原型模型。但是要注意以下几点:1、通过复制的方式产生了一个对象,构造方法是不会执行的,因为Object类的clone()方法的原理是从内存中以二进制流的方式进行

2012-05-08 13:36:30 605

原创 设计模式学习笔记——代理模式

定义:为其他对象提供一种代理以控制对这个对象的访问。Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层,这个访问层就是

2012-05-08 03:00:57 794

原创 设计模式学习笔记——创建者模式

这个模式也是比较难理解的,我看了《设计模式之禅》上讲解的例子,但是看完之后一头雾水,而且好乱,仍然没有理解,看了好几遍,还是没有理解,于是我又去翻开我的课本,看那上面的例子,但是结果依然。于是上网搜,搜了很多,但是都不是很理想,最终功夫不负有心人,终于找到一个我能理解,而且我认为比较合理的创建者模式的讲解,在这里感谢作者,原文地址:http://blog.csdn.net/lovelion/art

2012-05-07 02:05:57 754

原创 设计模式学习笔记——状态模式

定义:当一个对象内在的状态改变时,允许其改变行为,这个对象看起来像是改变了其类。状态模式不太好理解,我现在还没有完全理解,这个模式给我的第一印象就是比较乱,给我的感觉好像是两个类互相依赖,①调用②的方法,②调用①的方法,弄的好乱,所以这个状态模式就不用通用类图去描述了,那样会不知所云,还是举一个实际的例子来理解吧。这个例子是书本上的一个例子,是针对足球队比赛时,根据比分的领先还是落后,

2012-05-06 12:59:50 862

原创 设计模式学习笔记——模板方法模式

定义:定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模板方法模式类中,有两种方法,一种是基本方法,是由子类实现的,并且在模板方法中调用,这些函数要定义成抽象的;第二种方法时模板方法,实现对基本方法的调度,完成固定的逻辑,这个方法是在父类中就已经实现了的。我们还可以在父类中,定义一个“钩子函数”,用以控制模板方法中,某些

2012-05-04 23:41:48 695

原创 设计模式学习笔记——抽象工厂模式

定义:为创建一组相关或相互依赖的对象提供一组接口,而且无需指定它们的具体类。抽象工厂模式是工厂模式的升级版本,因为它应对的是更加复杂的业务,即当有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。由于抽象工厂类较为复杂,我觉得使用一个具体的例子,更能形象的表达这个模式的思想,而且容易理解,这里画类图就不使用通用的类图了,模拟一个跨Windows和Linux

2012-05-04 22:11:05 848 1

原创 设计模式学习笔记——工厂方法模式

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。通用类图:代码如下:public abstract class Product { public void method1(){ System.out.println("method1 invoked"); } public abstract void metho

2012-05-03 13:20:37 997

原创 设计模式学习笔记——单例模式

定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式的通用类图如下:代码如下:public class Singleton { private static final Singleton singleton=new Singleton(); //私有的构造函数,限制产生多个对象 private Singleton(){ Sys

2012-05-02 20:53:55 746

原创 设计模式学习笔记——开闭原则

定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。一、什么是开闭原则举个书店售书的例子:代码如下:public interface IBook { public String getName(); public int getPrice(); publ

2012-05-02 00:22:51 1731

原创 设计模式学习笔记——迪米特法则

迪米特法则是针对类之间的低耦合而提出的,它要求一个类应该对自己需要耦合或者调用的类知道的最少,即被耦合或调用的类的内部如何复杂,跟本类没有一点关系,本类就知道你提供给我多少public方法,本类就调用这些方法,其他的你不要让我知道。这个法则有以下基层含义:1、只和朋友类交流什么是朋友类呢?即和自己相耦合的类。既然相耦合,那么肯定是这两个耦合的类之间要存在交互,那些不存在交互的,却耦合到

2012-05-01 22:12:15 1360

原创 设计模式学习笔记——接口隔离原则

定义:1、客户端不应该依赖于它不需要的接口2、类间的依赖关系应该建立在最小的接口上通俗的讲,应该建立单一的接口,不要建立臃肿庞大的接口,即接口应该尽量细化,同时接口中的方法尽量少。举例:要成为一名美女必须具备三个条件:面貌、身材、气质,星探找美女的过程如下类图所示:IPrettyGirl接口中定义了三个方法,只有这三个条件都满足,才会被称作美女,在星探的抽象类中,用

2012-05-01 21:01:01 694

openstack 服务重启/调试 脚本

openstack 服务重启/调试 脚本, 针对devstack环境

2012-12-22

数据重现+文件系统原理精解与数据恢复最佳实践.马林

数据重现+文件系统原理精解数据重现+文件系统原理精解与数据恢复最佳实践.

2012-09-30

汇编语言王爽

汇编语言王爽

2012-09-30

openstack nova cfg

openstack nova cfg

2012-08-11

Struts2.2.3.1帮助文档,免积分下载

Struts2.2.3.1帮助文档,chm格式,免积分下载

2011-11-05

Boson NetSim for CCNP v6.0.Beta2b以及注册机和帮助文档

里面有Boson NetSim for CCNP v6.0.Beta2b以及注册机和帮助文档,全都安装测试过,可以注册使用!

2011-10-13

数据结构全部程序打包下载

这是和数据结构相关的程序,每一章都有相关的源代码,适合刚学习数据结构的同学使用,好好学习哦!您也可以到这里免积分下载:http://bbs.quanlaila.com/thread-1947-1-1.html

2011-09-25

拓扑排序的C++源代码

拓扑排序的源代码,是用栈来实现的拓扑排序,是很基础的东西。

2010-12-01

哈夫曼树及哈夫曼编码

这个资源是哈夫曼树及哈夫曼编码的C++代码,我觉得哈夫曼编码很有用,这就是技术使之然!

2010-11-16

用线性表实现的通讯录,C++代码实现

用线性表写的通信录管理系统,资源只是把源代码写出来,并没有设计界面!代码写的也比较粗陋,适合刚学C++和数据结构的同学使用!

2010-11-13

单链表C++代码实现、插入、删除结点等

单链表C++代码实现、插入、删除结点等,还有有关单链表的练习作业题

2010-10-25

空空如也

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

TA关注的人

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