自定义博客皮肤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)
  • 收藏
  • 关注

原创 CSDN做的真是烂a

关键时刻总是掉链子,后台更是惨不忍睹,这么多年了,就没一点长进!

2015-03-08 23:22:38 4896 7

原创 Django学习小记[6]——Class-based View

这节我们讲一下Class-based View,为什么要有这个Class-based View呢?view不都是一个方法吗?跟类有啥关系?其实答案很明显,用类其实是为了抽象,抽象出通用的,将可变的暴露出来,这样我们就可以用最少的代码实现复杂的功能了。Django中,对那些我们平时经常用的View进行了封装,比如用于渲染一个template的TemplateView,用于处理重定向的Redi

2014-11-08 12:42:16 19663 5

原创 Django学习小记[5] —— View Request/Response

在Django中,view是指一个方法,这个方法接收一个request,然后返回一个response.当客户端发送一个请求的时候,Django会创建一个HttpRequest对象,这个对象包含本次请求的所有相关信息,比如请求的路径,请求的参数,请求的方法等等,然后将这个对象作为view方法的第一个参数传给view,view经过处理之后,返回一个HttpResponse对象,这个HttpRe

2014-11-04 00:41:30 7044

原创 Django学习小记[4]——URL Dispatcher

URL dispatcher简单点理解就是根据URL,将请求分发到相应的方法中去处理,它是对URL和View的一个映射,它的实现其实也很简单,就是一个正则匹配的过程,事先定义好正则表达式和该正则表达式对应的view方法,如果请求的URL符合这个正则表达式,那么就分发这个请求到这个view方法中。有了这个base,我们先抛出几个问题,提前思考一下:这个映射定义在哪里?当映射很多时,如

2014-11-02 03:13:33 6110 1

原创 Django学习小记[3] —— Query

今天学习的是Django的Model Query,前一篇已经学习过Model了,讲述的主要是Django中是如何处理关系型数据的模型的,一对一,多对一,多对多等,这篇则主要是描述的查询,能够将数据存进去,还得取出来,Django给每一个Model自动提供了丰富的查询接口,而且能够进行关联查询,基本上,能够满足绝大多数的查询需求。在Django的文档中,有一句话说的非常好:A m

2014-10-07 00:21:13 16073 1

原创 Django学习小记[2] —— Model

开始学习django的model了,学习django的目的很简单,就是我想用django搭建一个自己的博客,现在开源的已经有django-zinnia这个博客引擎了,但是想要看懂它,并且修改它,就必须过django这一关。之前对django的了解,仅仅限于用到了什么,就知道什么,缺乏系统的学习,所以要把django的文档都过一遍,做一下简单的笔记。今天的主题是Model,Model就是MV

2014-09-11 02:27:23 19556

原创 Django学习小记[1] —— Start

Part 1Part 1 通过举例,从整体上过了一遍django的基本内容,包括project, app, database, model等内容。有几下内容需要注意:project vs. appapp是一个web应用程序,它是实际用来做事的,比如zinnia这个用django写的博客引擎就是一个app,但是一个project是配置文件和app的集合,相当于一个容器。一

2014-08-12 23:01:17 10233

原创 Ceilometer Distributed Alarm

Ceilometer Alarm是H版新添加的功能,监控报警是云平台不可缺少的部分,Ceilometer已经实现了比较完善的监控体系,报警怎么能缺少呢?用过AWS CloudWatch Alarm的人应该不会对Ceilometer的Alarm感到陌生,Ceilometer实现的Alarm和CloudWatch的Alarm很像,概念基本上都一样,Alarm的逻辑也基本上一样,可以说是一个开源版的Cl

2014-07-27 16:09:10 7916 7

原创 Horizon学习笔记

horizon牛逼吊炸天!程序的入口点在horizon/openstack_dashboard/urls.py中:url(r'', include(horizon.urls))然后由Horizon这个单例的Site对象,开始加载urls,自动发现并注册dashboard,然后对每一个dashboard,再自动发现并注册panel:```Horizon._lazy_u

2014-05-16 00:52:55 7027 2

原创 Python单元测试——深入理解unittest

单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等这些,先不说如何写单元测试,光是怎么运行单元测试就有N多种方法,再因为它是测试而非

2014-04-19 10:32:09 135687 15

原创 很久没有写博客了

是的,很久没有写博客了,手都有点生疏了,最近毕业,工作,像演电影一样,草!

2014-01-05 10:56:50 3179 2

原创 jetty报错: Open quote is expected for attribute "{1}" associated with an element type "BORDER".

这个错误是使用jetty作为容器,但是java代码中,servlet是使用注解的形式标记一个类为servlet的,可能是版本不兼容吧,会报这个莫名其妙的错,解决方法是将这个servlet类配置到web.xml文件中,不要用注解的形式。

2013-06-13 03:32:37 4078

原创 maven jetty plugin 配置全局 jndi datasource

全局的datasource,要求把数据源配置在jetty.xml文件中,但是使用maven的插件,需要在pom.xml文件中指定jetty.xml文件在哪。同时,由于是全局的数据源,jetty会找不到数据库驱动,也需要在pom.xml文件中写上对数据库驱动的依赖。此外,还需要配置一个webdefault.xml文件,这个文件是在web.xml文件加载之前加载的,可以把数据源的引用放在webde

2013-04-27 18:42:41 8434

原创 Openstack Nova Security Group——安全组之架构篇

哈,又回来了!公司同事说不要只停留在逻辑层,你要对跑在你程序底下的数据流也要非常的清楚。但是这里还是先介绍一下逻辑层,在代码的角度看是如何实现这个功能的,关于底层的数据流,还需要哦酝酿一段时间,之后会再总结一篇底层数据流的文章,真难为我了!一、什么是安全组安全组,翻译成英文是 security group。安全组是一些规则的集合,用来对虚拟机的访问流量加以限制,这反映到

2013-03-12 17:39:25 19171 3

翻译 iptables简介

DESCRIPTION       Iptables is used to set up, maintain, and inspect the tables of IPv4 packet filter rules in the Linux kernel.  Several different tables may       be defined.  Each table contains

2013-02-20 16:04:49 4389

翻译 网络IO控制——Quality of Service

早上没吃饭,坐在公司里测试,等结果等的太无聊,翻译一下libvirt上的关于网络IO控制的一点内容。希望翻译完,就可以吃饭了。原文如下: ... ...This part of interface XML provides setting quality o

2013-01-30 13:49:30 4500 2

原创 常用linux命令

1. 磁盘备份,将本地的/dev/hdx整盘备份到/dev/hdydd if=/dev/hdx of=/dev/hdy2. 磁盘恢复,将备份文件恢复到指定盘dd if=/path/to/image of=/dev/hdx3. 备份MBR,备份磁盘开始的512Byte大小的MBR信息到指定文件dd if=/dev/hdx of=/path/to/image

2013-01-24 08:51:47 2920

原创 emacs命令积累

用了几天emacs,终于感觉到它的强大了,这是一个长期使用积累的过程,熟能生巧。1.单个Buffer处理Buffer的名字都是包含在**当中的可以把buffer中的那内容C-x C-w写入到文件中2.多个buffer处理C-x b显示Buffer列表选中某一个Buffer按Enter进入Buffer编辑删除Buffer使用C-x k2.Emacs窗口

2013-01-23 23:29:51 3484

原创 OpenStack遇到问题收集

1. AMQPChannelExceptionPROBLEM:在用stable/folsom的devstack安装stable/folsom的openstack时,遇到下面的问题:(nova.api.openstack): TRACE: AMQPChannelException: (406, u"PRECONDITION_FAILED - cannot redeclare ex

2013-01-23 10:46:46 10874

原创 linux之iptables

1. 查看网络监听的端口:netstat -tunlp2. 查看本机的路由规则:routestack@ubuntu:~$ route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 10.217

2013-01-18 17:54:47 3751

原创 My OpenStack Weekly Reports——社区

接触openstack社区的时间已经不短了,但是也就是在近段时间,我才感受到开源社区的魅力。一个词形容我的心情:开心要我说openstack社区里,最吸引人的地方,是下面的4个:1. maililg list以前吧,从来就不知道还有邮件列表这个东西,还以为老外都用MSN,像QQ一样开个高级群,都在里面讨论,传个文件啥的也方便,唉,太幼稚了。。。邮件列表中“会话”这个功能

2013-01-11 17:18:51 2603 8

原创 使用pdb调试openstack (How to debug openstack using pdb )

终于摸索出了一个调试openstack的简单方法,使用pdb进行单步调试,对于分析代码很有帮助。注意,这个方法只适用于用devstack安装的openstack。调试主要是使用了一个脚本,这个脚本不记得是从哪下载的了,是用来重启使用devstack安装的openstack的各个服务的,后来,我又结合devstack的stack.sh和unstack.sh的脚本,向里面添加了一点内容,添加的功能

2012-12-22 17:56:55 9730 9

原创 policy机制中经典的python用法

由于接触python时间还不长,属于边用边学,在看项目代码的时候,遇到了很多不太懂的python语法,但是我认为这些用法用的实在是好,希望以后自己在写程序时,也能写出这么经典的代码,在这里记录下来这些:1. 将函数名作为参数传递给另一个模块中的函数使用:def init(): ...... #read_cached_file做的事是读取_POLICY_PATH文件中的数据,

2012-11-30 12:33:27 3786

原创 openstack nova 基础知识——policy

终于到了可以总结的时候了,policy本身的实现机制并不难,对我来说,难就难在python语法上,policy用到了很多高级的语法,逻辑性比较复杂,要理清其中的关系,还是要费一番功夫的。为此,还总结了另一篇blog,介绍了一下policy中用到的较为经典的语法。1. 首先还是先来了解一下什么是policy,它是用来做什么的在openstack的用户管理中,有三个概念:Users

2012-11-30 00:43:34 13098 9

原创 python——metaclass

元类一般用于创建类。在执行类定义时,解释器必须要知道这个类的正确的元类。解释器会先寻找类属性__metaclass__,如果此属性存在,就将这个属性赋值给此类作为它的元类。如果此属性没有定义,它会向上查找父类中的__metaclass__.如果还没有发现__metaclass__属性,解释器会检查名字为__metaclass__的全局变量,如果它存在,就使用它作为元类。否则, 这个类就是一个传统类

2012-11-28 10:52:26 5012

转载 python----yield

包含了关键字"yield"的函数就不是普通的函数。当含有这个关键字的函数被调用的时候,这个函数在遇到yield的时候会停止运行,并且返回一个迭代器(iterator)。每次请求一个值,就会执行生成的代码。直到遇到一个yield或者return。首先,我们先了解什么是迭代器。 lst=[1,2,3,4,5]for i in lst    print i从这个例子我们可以看的出

2012-11-27 17:53:47 1872

转载 linux技巧:screen

简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。在screen中创建一个新的窗口有这样几种方式:1.直接在命令行键入screen命令[root@tivf06 ~]# screen

2012-11-26 23:16:28 1778

原创 openstack nova 基础知识——Quota(配额管理)

很久没有写博客了,之前在学校的一段时间比较堕落,坐着火车从南到北,穿越长江黄河,来到了一片新的天地。在这里,不管男的女的,老的少的,在吃饭,在路上,我听到的不再是“游戏”这个永久不变的话题,更多的是在讨论“内核”、“高效”、“这段代码”、“这个算法”等等这些技术性的话题。我的想法是对的,我的选择是对的,很喜欢现在的环境,在这样的环境里,会让我成长更快。正文:一、什么是配额(quota)管理

2012-11-26 01:08:11 28935 13

转载 linux sed命令详解

1. Sed简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介

2012-10-05 18:33:21 1441

原创 近期计划

近期有些松懈,原因有很多,主要还是在自身,人没有了目标,就像一具行尸走肉一样,每天过着可有可无的生活。也许,能够激励一个人不断奋进的动力,就是不断的树立更高的目标,即使中间有短暂的休息,也是可以谅解的,但是不能一直这么休息一下,那是不思进取啊。如果能克服这一关,那么我就战胜了自己的惰性。然而,战胜自己惰性的方法,就是树立更高的目标,至少,这对我是有用的,也是我这几天想明白的地方。自从一

2012-10-02 17:19:17 2335 4

原创 c语言中realloc()函数解析

真是有点惭愧,这些内容本应该很早就掌握的,以前只是糊里糊涂的用,不知道在内存中具体是怎么回事,现在才弄清楚。realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。如果将分配的内存减少,realloc仅仅是改变索引的信息。如果是将分配的内存扩大,则有以下情况:1)如果当前内存段

2012-09-07 10:51:49 113507 18

原创 从内存理解c语言中变量的存储类型

今晚看了一下linux程序设计,看到了进程管理这一块,讲解了c语言中的各种变量的存储类型,而且是从进程、内存的角度讲解的,以前从没有这样理解过,觉得挺有用的,在这里记录下来。首先要来理解一下可执行文件加载进内存后形成的进程在内存中的结构,如下图:代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。数据区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。BB

2012-09-07 03:08:46 9423 2

原创 有用的linux命令集锦

1. 查看内存使用情况free -m2. 查看系统版本信息sudo lsb_release -a3. 查看磁盘使用情况df -l4. 查看当前所有进程ps -e5. 查看外网ipcurl ifconfig.me6. 查看网卡信息mii-toolmii-tool -v7.路由信息tracepath -n www.baidu.com8.查看dns去/etc

2012-09-05 14:04:14 2535

原创 openstack nova基础知识——libvirt和qemu(2)

前一篇介绍了qemu的基本使用,使用virsh或者virtual manager来管理虚拟机,但没有涉及到libvirt API,这里就使用libvirt的python API来演示一下虚拟机的创建。看nova的源码,关于虚拟机管理的模块是virt,libvirt就是其中的一个包,这个包中包含了使用libvirt管理虚拟机的所有API,看一下下面的示意图:libvirt.dri

2012-08-26 14:51:00 9590 2

原创 openstack nova 基础知识——libvirt和qemu(1)

又纠结了几天,终于到了可以写文章记录下来的时刻了。简单的讲,nova最核心的功能就是对一大堆的虚拟机进行管理,虚拟机可以是各种各样(kvm, qemu, xen, vmware...),而且管理的方法也可以是各种各样(libvirt, xenapi, vmwareapi...),因为我的电脑不支持CPU的VT,而且以前在visualbox中装openstack,也只能使用qemu,所以这次测试

2012-08-26 06:22:04 22291 11

原创 openstack nova 基础知识——scheduler的filter和weight

一开始在没有看源码的时候,看了下官方文档的Filter Scheduler,知道过滤(filter)是怎么回事,但是那个weight是什么意思始终没看明白,现在看下源码发现也挺简单的。Scheduler做的工作就是在创建实例(instance)时,为实例找到合适的主机(host),这个过程分为两步:首先是过滤(filter),从所有的主机中找到符合实例运行条件的主机,然后从过滤出来的主机中,找

2012-08-21 05:48:48 7688

原创 openstack nova 基础知识——从源码看一个服务是如何启动的

nova中服务分为两种:Service和WSGIService,后者我还不清楚是用来做什么工作的,但是前者看了一下bin中的代码,知道了它是scheduler, compute, network等这些组件所使用的服务。相对这两种服务,就有两种加载的方法:ServiceLauncher和ProcessLauncher,看代码这两者的主要区别是前者放到了绿色线程中,后者则是用os.fork()出来

2012-08-21 03:28:11 6628 3

原创 openstack nova 基础知识——rpc回调机制(callback)

前几篇已经知道了nova中消息是怎么发送和接收的了,但是不太明白消息被接收之后,是怎么处理的,看代码中消息接收那块传递的参数不是proxy就是callback,或者是callbacks,这个回调方法到底调用的是哪的方法呢?从一个服务的启动程序上看,有这样一段代码:rpc_dispatcher = self.manager.create_rpc_dispatcher()self.conn

2012-08-21 02:47:14 8262 1

原创 openstack nova基础知识——rpc模块中的kombu

nova中的rpc模块并没有直接使用kombu,而是又对它进行了一次封装,封装的主要是发送者和接收者,在nova中,封装成了两个类:Publisher和ConsumerBase,并且根据这两个类派生出了DirectPublisher, DirectConsumer, TopicPublisher, TopicConsumer等子类,使操作更加的方便。一直就觉得Exchange和发送者的关系很密

2012-08-18 11:12:43 5634 2

原创 openstack nova 基础知识——Kombu

Kombu是一个AMQP(Advanced Message Queuing Protocol)消息框架。所谓框架,就是一个软件的半成品,是为了提高开发效率而开发的。AMQP是一个协议,而RabbitMQ是对这个协议的一个实现。Kombu和RabbitMQ的关系是什么呢?我觉得就好像javaAPI和Structs/Hibernate这些框架的关系一样,Kombu对Rabb

2012-08-17 07:28:03 8704 2

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关注的人

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