摘要: 本文旨在记录作者学习 Java 的过程。 封装,字面上可以理解为『包装』的意思,换句话说隐藏信息,是指利用抽象的数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在了抽象数据类型的内部,尽可能的隐藏内部细节,只保留一些对外接口使之与外部发生联系。 使用封装的几点好处 阅读全文
posted @ 2017-04-19 22:12 苌来看看 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 本文主要参考Overview of functionality and components以及Frequently Asked Questions以及结合自己的理解。1 什么是OpenvSwitchOpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。在这种某一台机器的虚拟化的环境中,一个虚拟交换机(vswitch)主要有两个作用:传递虚拟机VM之间的流量,以及实现VM和外界网络的通信。整个OVS代码用C写的。目前有以下功能:Standard 802.1Q VL 阅读全文
posted @ 2013-11-07 10:11 苌来看看 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 本文主要参考Overview of functionality and components以及Frequently Asked Questions以及结合自己的理解。1 什么是OpenvSwitchOpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。在这种某一台机器的虚拟化的环境中,一个虚拟交换机(vswitch)主要有两个作用:传递虚拟机VM之间的流量,以及实现VM和外界网络的通信。整个OVS代码用C写的。目前有以下功能:Standard 802.1Q VL 阅读全文
posted @ 2013-11-07 10:08 苌来看看 阅读(3674) 评论(0) 推荐(0) 编辑
摘要: 在openstack中,只有admin用户才可以创建用户,租客,并且分配用户给租客,所以如果要添加注册功能的话,就要创建一个keystoneclient,使其拥有admin的身份。一个完整的创建用户的流程应该是这样的,创建租客 —— 创建用户 —— 分配用户给租客,所以我们的注册用户的时候也应该仿照这样的流程去创建用户。首先,参看keystone的源码,可以伪造一个admin的keystoneclien,代码如下 from keystoneclient.v2_0 import client as keystone_client token = keystone_client.Clie... 阅读全文
posted @ 2013-10-18 15:46 苌来看看 阅读(711) 评论(0) 推荐(0) 编辑
摘要: python中的encode和decode:首先,在python中字符串的表示是 用unicode编码。所以在做编码转换时,通常要以unicode作为中间编码。decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串判断一个字符串中是否含有中文字符:好了,有了以上知识,就可以很容易的解决这 阅读全文
posted @ 2013-10-18 15:27 苌来看看 阅读(33001) 评论(0) 推荐(2) 编辑
摘要: 什么是Linux? 也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。 既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/Linux ,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNU?GNU代表GNU’s Not Unix。可以说是一个操作系统又可以说是一种规范。比如,众所周知的PHP,原名为Pe... 阅读全文
posted @ 2013-07-26 09:54 苌来看看 阅读(739) 评论(0) 推荐(0) 编辑
摘要: 刚刚接触openstack,发现部署openstack是个很麻烦的过程,无意中发现了RDO,可以很方便的部署openstack,就写下来记录下。1. 准备一台没有安装过openstack的机器,如果安装过的话,会有冲突的2. sudo yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly.rpmsudo yum install -y openstack-packstackpackstack --allinone --os-quantum-install=n(这一步的时 阅读全文
posted @ 2013-07-19 17:51 苌来看看 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 这是我总结的C语言的编译过程,为了不忘记,就记录下来吧。以test.c 为例。第一步:预处理。gcc -E test.c -o test.i 第二步:编译。gcc -S test.i -o test.s(汇编文件) 第三步:汇编。gcc -C test.s -o test.o 第四部:连接。gcc -test.o -o test下面是参数的说明: -o 指定输出文件, -s表示在编译期间生成汇编代码后停止, -fPIC表示编译为位置独立的代码(位置无关是指可以在进程的任意内存位置执行的目标码,动态链接库必须使用),不用这个选项的话编译后的代码是位置相关的。 ... 阅读全文
posted @ 2013-06-19 20:41 苌来看看 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 修改vim /etc/httpd/conf/httpd.conf,找到ServerName取消注释即可,或者修改成ServerName localhost:80 阅读全文
posted @ 2013-03-04 16:38 苌来看看 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 交换变量123456789x = 6y = 5x, y = y, x print x >>> 5print y >>> 6if 语句在行内12print "Hello" if True else "World">>> Hello连接下面的最后一种方式在绑定两个不同类型的对象时显得很cool。123456789101112131415nfc = ["Packers", "49ers"] afc = ["Ravens", "Patrio 阅读全文
posted @ 2013-02-27 15:24 苌来看看 阅读(212) 评论(0) 推荐(0) 编辑