自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(249)
  • 收藏
  • 关注

原创 PEP 289: Generator表达式

生成器的作用是节约内存,防止程序内存膨胀,在访问速度上和sequance应该是类似的。For instance, the following summation code will build a full list of squares in memory, iterate over those values, and, when the reference is no longer

2014-12-31 17:28:01 782

原创 PEP: Iterator

Classes can define how they are iterated over by defining an __iter__() method; this should take no additional arguments and return a valid iterator object. A class that wants to be an it

2014-12-31 16:34:07 664

原创 PEP: List表达式

这是官网PEP阅读的读书笔记,关于List其实没有那么复杂的原理,所以主要是记录一下文章中所使用的例子,供以后参考所用:Examples >>> print [i for i in range(10)] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print [i for i in range(20) if i%2 == 0]

2014-12-31 16:19:32 741

原创 python yield解读

对于这个话题的探索,最初是从range和xrange这两个函数的区别引发的,很早就从一些python书籍中了解到它们两者之间的用法是一模一样的,但是xrange的效率会比range的效率高,脑海中只是觉得这些概念,但是具体原因并没有去深入研究。range和xrange的区别首先我们写一句简单的python脚本看看: 清单一 range和xrange的python对象normal_r

2014-12-14 11:23:22 772

原创 一种工厂模式的实现:python

一、基本工厂模式  工厂模式最简单的实现是这样的:  python代码实现:class Operation: def GetResult(self): passclass OperationAdd(Operation): def GetResult(self): return self.op1 + self.op2c

2014-11-26 11:21:35 1081

转载 ZMQ

★ZMQ是啥玩意儿?  通俗地说,ZMQ是一个开源的、跨语言的、非常简洁的、非常高性能、非常灵活的网络通讯库。  它的官方网站在"这里",维基百科的介绍在"这里"(暂时没有中文的维基词条)。  这玩意儿推出的时间不长,貌似09年下半年才推出1.0.1版本。俺去年开始接触它,感觉实在不错,今年就已经用于公司的产品中。最近一段时间,对 ZMQ 的好评日渐增多,所以俺也来赶赶潮流,在俺博客里

2013-11-13 14:20:15 1473

原创 Proxy and State in Python

Proxy:class Implementation(object): def __init__(self): pass def f(self): print "In implementation function F." def g(self): print "In implementation function

2013-10-25 17:17:22 808

转载 Python中的切片

Python中的切片容易混淆,这里总结一下自己的看法切片的语法1 a = [1,2,3,4]2 x = a[1:2]    #实际上执行的是 a.__getitem__(slice(1,2,None))1 slice([start], stop[, step]2  3 step的符号表示一种方向的含义4 +:从左向右看,start默认是0,stop默认是

2013-09-29 15:36:58 1834

转载 shell快捷键管理

在shell命令终端中,Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键。 在命令终端中通过它们或者方向键可以实现对历史命令的快速查找。这也是快速输入命令的技巧。 在命令终端中可以通过Ctrl+r 实现快速检索使用过的历史命令。Ctrl+r中r是retrieve中r。 Ctrl+a:光标回到命令行首。 (a:ahead)

2013-08-30 11:04:45 665

转载 python_loggin_module

Configuring LoggingProgrammers can configure logging either by creating loggers, handlers, and formatters explicitly in a main module with the configuration methods listed above (using Python code

2013-06-29 17:15:13 615

转载 python loggin模块

Configuring LoggingProgrammers can configure logging either by creating loggers, handlers, and formatters explicitly in a main module with the configuration methods listed above (using Python code

2013-06-29 17:14:21 1162

转载 随便看看,随便记记

1.如果你想要领先这个世界上的绝大多数人,就必须要学会观察;2.学会聆听——不要随意卖弄你的见识,如果你光说不听,那你什么也学不到;3.突破固有的思维,即使它已经根深蒂固;4.认真对待你的同事,让他们喜欢你,他们将是你最好的资源;5.尽一切可能帮助你的老板,提升他/她的状态;6.为每一个分配给你的任务制定一份商业计划书,分配好你的时间和资源;7.你现

2013-05-10 16:02:55 630

原创 问题完满解决是个伪命题

并不是所有的问题都能得到优雅完满的解决,往往现实中很多情况是折衷和妥协。  这种折衷和妥协并不是锻炼人的技术能力,而是完善一个人看问题的角度和处理棘手问题的耐心。  但只要用心做完了,结果你会姑且满意的!

2013-05-07 14:37:11 715

转载 The Biggest Changes in C++11 (and Why You Should Care)

It’s been 13 years since the first iteration of the C++ language. Danny Kalev, a former member of the C++ standards committee, explains how the programming language has been improved and how it can

2013-04-26 09:36:18 758

原创 《effective C++》 目录

改变旧有的c习惯(shifting from c to c++) 013条款1:尽量以 const 和 inline 取代 #define 013prefer const and inline to #define.条款2:尽量以 [iostream] 取代 [stdio.h] 017prefer [iostream] to [stdio.h].条款3:尽量以 new 和 de

2013-04-25 18:59:02 850

原创 临时变量的属性均为const

在重温《effective C++》的时候,pick up的一个知识。#include using namespace std;class retional {public: retional(int num=0, int den=1):num(num),den(den){} int numerator() const; int denminator() co

2013-04-25 15:52:06 765

转载 HTTP请求头和响应头

请求头:Accept:浏览器可接受的MIME类型Accept-Charset:浏览器可接受的字符集Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzipAccept-Language:浏览器所希望的语言种类Authorization:授权信息Connection: 表示是否需要持久连接Content-Length:表示请求消息正文的长度C

2013-03-13 17:33:27 760

转载 函数调用过程探究

引言如何定义函数、调用函数,是每个程序员学习编程的入门课。调用函数(caller)向被调函数(callee)传入参数,被调函数返回结果,看似简单的过程,其实CPU和系统内核在背后做了很多工作。下面我们通过反汇编工具,来看函数调用的底层实现。 基础知识我们先来看几个概念,这有助于理解后面反汇编的输出结果。栈(stack)栈,相信大家都十分熟悉,push

2013-02-01 11:35:05 519

原创 Linux设置系统时间

1. 显示和设置时间date命令,详情date --help2. 修改时区2.1 命令修改时区  tzselect  如果是redhat linux或者centos可以使用timeconfig命令。我在自己的centos6.3机器上试了一下,不可用。2.2 手工修改时区  先删除当前时区文件: rm /etc/localtime  将需要使用的时区软连接到该文件,比

2013-01-31 14:17:08 680

原创 Xshell颜色主题Color Schemes

12345678910111213141516171819202122232425#http://www.onovps.com[Solarized Dark]text(bold)=839496magenta(bold)=6c71c4text=839496white(bold)=fdf6e3green=859900red(

2013-01-30 15:59:01 5666

转载 linux下vim命令详解

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,

2013-01-30 09:54:33 459

转载 Linux git入门教程

1. github是一个git项目托管网站注册地址:https://github.com/signup/free2. 安装git程序,执行下面操作$ cd ~/.ssh //检查计算机ssh密钥如果没有提示:No such file or directory 说明你不是第一次使用git,执行下面的操作,清理原有ssh密钥 $ ls confi

2013-01-28 16:55:06 648

转载 linux下IPTABLES配置详解

如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source                 destinat

2013-01-09 10:35:18 434

转载 kdump之kdump分析

说Kexec是基于kexec机制工作的,但关于Kdump到底是怎么实现的,比如将第二个内核怎么加载到具体的保留位置,第一个内核crash后怎么传需要的elfcorehdr和memmap参数给第二个内核,另外第二个内核是怎么调用makdedumpfile来过滤压缩页的,网上一些资料给的都太概括了,还没找到相关分析的,看了下代码,有了个大概,可能部分理解有误,欢迎拍砖和探讨.先看一张图,这

2013-01-06 14:28:22 2920

转载 用netfilter_queue 在用户态修改网络数据包的例子程序

libnetfilter_queue缺乏文档,看着libnetfilter_queue自带的例子弄的。现在写不出有头有尾的文章了,就贴贴代码(还没注释),提几个我记得的几个注意点就不写了,见谅。程序功能, 将输出端目的地为 220.181.37.55 的包,都改为目的地为 64.233.189.104,输入段反之,达到DNAT的一小半功能,完整的NAT要做状态记录的。注意点 :

2013-01-01 19:10:02 1263

转载 TCP连接建立与关闭

TCP 是一个面向连接的协议,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本节将详细讨论一个TCP 连接是如何建立的以及通信结束后是如何终止的。建立一个 TCP 连接  TCP使用三次握手 ( three-way handshake ) 协议来建立连接,图 3-10 描述了三次握手的报文序列。这三次握手为:请求端(通常称为客户)发送一个 SYN

2012-12-30 16:05:41 467

转载 /etc/rc.d/init.d和/etc/init.d 联系区别

$ ls -ld /etc/rc.ddrwxr-xr-x 10 root root 352 2月 13 13:38 /etc/rc.d/$ ls -ld /etc/init.dlrwxrwxrwx 1 root root 11 2月 13 13:38 /etc/init.d -> rc.d/init.d/一个是另外一个的软链接吧etc/rc.d/init.d里面包含了一些脚本,这

2012-12-30 15:32:08 762

原创 ping的返回分析

1.request time out说明主机可以找到路由,但是远端机器没有应答。原因有很多,可能是把禁掉了ping或者网卡不通,关机之类的。2.destination host unreachable说明主机找不到远端主机的路由。可以进一步看看的路由信息,从而进行排查。

2012-12-30 15:14:07 584

转载 鳥哥的 Linux 私房菜

第九章、防火牆與 NAT 伺服器切換解析度為 800x600最近更新日期:2011/07/22從第七章的圖 7.1-1 我們可以發現防火牆是整個封包要進入主機前的第一道關卡,但,什麼是防火牆?Linux 的防火牆有哪些機制? 防火牆可以達到與無法達到的功能有哪些?防火牆能不能作為區域防火牆而不是僅針對單一主機而已呢?其實,Linux 的防火牆主要是透過 Ne

2012-12-30 15:00:01 1121

原创 添加设备驱动到initrd.img-PXE环境建设

硬件环境:DELL OPTIPLEX 780台式机软件环境:红帽RHEL5.1建设一个基于红帽RHEL5.1的教学环境,环境中需要一台PXE服务器(附带文件共享服务),由于机器硬件比较新,红帽RHEL5.1系统自带驱动不能识别INTEL GM45芯片组硬件,显卡、网卡只能手动安装驱动。安装网卡驱动并不麻烦,下载INTEL e1000e-1.1.2源码安装包yum groupin

2012-12-28 11:18:57 3572

原创 在centos6.3上编译netfilter_queue的configure问题及其解决方法

1.问题描述  最新的版本是1.0.2,编译最新的netfilter_queue需要安装libmnl和libnfnetlink.  安装这两个库,./configure, make和make install  ./configure的过程中注意 ./configure --prefix=/usr/  这两个库安装完成之后,在编译netfilter_queue,这个时候问题来了。

2012-12-25 12:17:24 2956 1

原创 在ubuntu上做netfilter_queue开发

1.环境搭建1.1 注意:netfilter_queue的依赖是libnfnetlink和libmnl,所以先安装这两个依赖库1.2 源码下载地址:http://www.netfilter.org/projects/1.3 编译  configure, make ,make install (注意make install的时候需要sudo)1.4 检查  在安装完所有库之后

2012-12-24 18:33:54 10165 2

转载 用netfilter_queue在用户态实现NAT

偶尔在网上看到了>这篇文章,并结合libnetfilter_queue-0.0.17.tar.bz2中的例子,然后修改了一下tcp计算checksum部分,在linux2.6.24上用netfilter_queue在用户态实现NAT程序功能: 将输出端目的地为 220.181.37.55 的包,都改为目的地为 202.118.236.130,输入段反之,达到DNAT的一小半功能,完

2012-12-22 17:23:25 5811

原创 在centos上安装vsphere cli 5.1

1.下载  在vmware官网上搜索下载 VMware-vSphere-CLI-5.1.0-780721.x86_64.gz2.解压缩  tar xzvf VMware-vSphere-CLI-5.1.0-780721.x86_64.gz3.安装  在解压缩的文件中找到文件vmware-install.pl  sudo ./vmware-install.pl  在安装的

2012-12-18 17:18:26 1667

转载 esxi 虚拟机硬盘在线扩容

现在很多Linux操作系统在部署时无法确认硬盘大小,为了更好的部署有扩展性的Linux以下是我在VMware Esxi 在线增加硬盘而且不需要重新启动系统的一点小经验:Step # 1:在虚拟机状态下增加一块硬盘 Step # 2:让Linux操作系统识别新增加的硬盘增加/dev/sdb硬盘,查看/var/log/messages日志查看当前

2012-12-10 20:03:01 8667

原创 Ubuntu安装和使用minicom

minicom是linux下的串口通信软件,他使用完全使用键盘操作。它虽然没有windows下的超级终端好用,但是它也是一种串口通信的方法。一、minicom安装在超级终端中输入:sally@sally-desktop:~$ sudo apt-get install minicom注意:在ubuntu 8.0之前没有将minicom依赖文件集成在安装中,需要自己手动安装依赖

2012-12-04 10:52:14 787

原创 图解iptables:chains and tables

2012-11-12 10:54:32 1059

原创 Traffic Server编译安装

一、下载源代码    sudo make install 下载源代码:http://trafficserver.apache.org/downloads  笔者下载的时候3.2.0是最新稳定版。二、configure  下载到本地后,解压缩tar包。 tar xvf target.tar.bz2  在configure之前,先安装所有编译所需的依赖,我在ubuntu

2012-11-08 15:17:23 2707

转载 nDPI——Open and Extensible GPLv3 Deep Packet Inspection Library.

nDPI is a ntop-maintained superset of the popular OpenDPI library. Released under the GPL license, its goal is to extend the original library by adding new protocols that are otherwise available onl

2012-11-02 11:11:47 3919

原创 openWrt软件开发教程1(交叉编译和ipk包生成)

一、交叉编译1.      建立交叉编译环境在使用buildroot对openwrt进行编译之后,在buildroot目录下会有一个名叫staging_dir的目录,针对当前平台的toolchain都在这个目录下。1.1增加toolchain的目录到PATH目录中Vim ~/.bash_profile添加代码:# add openWrt cross-compile path

2012-11-01 17:17:51 39432 11

空空如也

空空如也

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

TA关注的人

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