摘要: 当前linux发行版python版本默认基本上都是2.7的,如果系统中有了python3.0以后的,或者自己安装了python3.3,但是用pip或者easy_install安装python3的module并不很方面,使用virtualenv就方便多了,安装pypy环境较好的办法也是用virtu... 阅读全文
posted @ 2014-06-25 01:02 除e尘 阅读(1769) 评论(0) 推荐(0) 编辑
摘要: puppet主要使用于自动化运维方面,对于拥有众多服务器需要管理的管理员来说,puppet是个不错的选择,使其管理更加轻松,容易。其设计的是c/s建构,可以一个master和多个client。通过master可管理配置客户端的文件、用户、cron任务、软件包、系统服务等。客户端默认半小时向master请求一次以使其与master配置同步,从而使管理员在master上设置配置就可以实现对于众多客户端机器的管理。安装:由于此软件提供了包管理器的安装方式,所以通过apt-get或者yum安装既可以了,本人使用的linux mint,所以使用的前者。当然源码包安装也行啦,puppet用ruby开发.. 阅读全文
posted @ 2014-01-12 17:17 除e尘 阅读(1552) 评论(5) 推荐(0) 编辑
摘要: 上个月就打算开发个还算好玩的项目,但是一直没时间。这篇是此项目用到的一部分,处理好此部分基本还差通信等方面的了。首先模拟鼠标键盘按下释放的动作,本人利用X11这个库,所以要了解X11编程;其次,本身用c或者c++就可以实现了,但是由于本人是py粉,所以总想把代码搬进python,所以本人就要实现python模块,本篇用的ctypes,以后会把python的c扩展模块附上来的。 1.X11编程 首先简单的介绍一下X11吧,网上有介绍,本人就不重复了。我们知道X是以server与client的方式提供服务的,我们想要使用其功能,我们就需要与server通信。使用Display *XOpen... 阅读全文
posted @ 2013-12-29 15:45 除e尘 阅读(3774) 评论(4) 推荐(1) 编辑
摘要: 先看一段代码A:1 x=122 def foo():3 #print x4 x=x+15 print x6 7 foo()执行上面的代码会输出什么呢?本人写python代码是还真心没注意过,一般也是把x作为foo()的参数。如果你执行上面的代码会报错:UnboundLocalError: local variable 'x' referenced before assignment不明白的话,看起来确实如此诡异!c语言可不会出现这种情况。如果没有第4行就会正常输出12。所以问题也就在第4行上。根据报错,大体原因应该知道了,那么我们改写一下上面的代码,代码B:1 ... 阅读全文
posted @ 2013-12-27 17:20 除e尘 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 介绍ipython notebook¶1.简单介绍ipython notebook的安装和使用,在ubuntu上: sudo apt-get install ipython 但是并不是所有的版本都支持notebook功能,本人的系统安装的是0.13的版本有 notebook,但是有个重要的功能没有,什么功能等会再说,所以本人手动安装的 ipython 1.1.0版本,你可以“ipython -V”查看版本号。 http://ipython.org/ 此网址可以下载最新的ipython版本¶2.使用python的你也许对ipython有所耳闻或者使用过,简单的介绍ipytho 阅读全文
posted @ 2013-12-10 00:14 除e尘 阅读(6144) 评论(0) 推荐(2) 编辑
摘要: 通过了解socket(int domain, int type, int protocol)接口,我们知道利用socket的AF_PACKET或者PF_PACKET域,和类型SOCK_RAW再加上协议就可以监听获得指定协议的以太帧。 1.获得各个协议的头部 以太协议类型有很多,仅贴上一部分,如下图: 图一更多以太类型见:http://en.wikipedia.org/wiki/EtherType 本文仅介绍0x0800(IPV4)的监听与拆分。现在我们就可以利用:s=socket.socket(socket.PF_PACKET,sock... 阅读全文
posted @ 2013-11-30 22:09 除e尘 阅读(3420) 评论(0) 推荐(0) 编辑
摘要: 很多软件都有配置文件,今天介绍并记录一下ConfigParser模块,解析配置文件。测试配置文件test.conf内容如下: [first]w = 2v: 3c =11-3[second]sw=4test: hello测试配置文件中有两个区域,first和second,另外故意添加一些空格、换行。下面解析:>>> import ConfigParser>>> conf=ConfigParser.ConfigParser()>>> conf.read('test.conf')['test.conf']>& 阅读全文
posted @ 2013-11-26 22:21 除e尘 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 上篇“python之简析restful”描述了restful框架,但是代码部分的例子不能算是一个框架,很混乱,也仅仅作为演示。 今天介绍本人重新构思后的restful框架。如果你了解restful就应该知道,restful架构的软件提供的api并不是确定的,比如: /wm/[a]?p&v=3,这里表示a可以选择不同的值,具体选择什么值需要看提供的手册,“?”后的属性也不确定(v=3仅是举例,p也并不是必须加的)。作为开发者设计这些url并要求使用者使用这样的规则得到想要的资源。对于真实的用户的请求就要根据设计的api解析出所要的值做后续的处理并得到用户所要的资源。 本人实现的get.. 阅读全文
posted @ 2013-11-24 17:33 除e尘 阅读(10629) 评论(0) 推荐(0) 编辑
摘要: RESTful架构,目前是比较流行的一种互联网软件架构。REST,即Representational State Transfer的缩写。说白点就是网站即软件,再白点就是一个服务软件支持http的四种方法: GET用来获取资源,POST用来新建资源、更新资源,PUT用来更新资源,DELETE用来删除资源。 并对外提供一个或多个URI,每个URI对应一个资源;客户端通过URI配合上面的方法就可以和服务段的软件交互。客户端主要是浏览器,使用restful框架的软件对http的支持也为了web应用带来方便。 REST这个词,是Roy Thomas Fielding在他2000年的博士论文中... 阅读全文
posted @ 2013-11-20 09:41 除e尘 阅读(7182) 评论(0) 推荐(0) 编辑
摘要: 平时本人的android手机上看都不错的视频,想在电脑上看,如果用的windows好多了,QQ上有“我的设备”直接把链接发送过去就好了,但是对于linux用户,android上也有一些软件可以,但是本人没用过,而且不需要多强大的功能,就写了个小工具。 对于android开发本人并不熟,写个简单的小程序,还是可以的,图形化编程都有通性。用到的android知识并不多,通信就是udp的广播,pc端的server监听8082接受信息; 1、客户端默认是广播把信息传递出去的,但是本人办公的地方广播接收不到信息,也许路由设置了或者别的原因在别的环境就可以。 如下图: 1.如果广播能收到图中的“... 阅读全文
posted @ 2013-11-19 14:54 除e尘 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 使用某某代理时免费版的限制连接数,除此就要购买......实现个简单的代理服务程序,一探究竟,当然复杂的也是这些原理。代理服务原理很简单,就拿浏览器与web服务器来说。无非是A浏览器发request给B代理,B代理再把request把送给C web服务,然后C的reponse->B->A。 要写web代理服务就要先了解下http协议,当然并不要多深入,除非要实现强大的功能:修改XX信息、负载均衡等。http请求由三部分组成:请求行、消息报头、请求正文;详细的网上有,想了解可以看看。下面是一个正常的GET请求头(Cookie部分本人没截屏,使用的系统w7):可以看到首行:GET是请求 阅读全文
posted @ 2013-11-15 10:49 除e尘 阅读(2724) 评论(0) 推荐(2) 编辑
摘要: ubuntu的软件源,下载安装速度实在......在此记录一下,163和sohu的软件源。 1 deb http://mirrors.163.com/ubuntu/ raring main universe restricted multiverse 2 deb-src http://mirrors.163.com/ubuntu/ raring main universe restricted multiverse 3 deb http://mirrors.163.com/ubuntu/ raring-security universe main multiverse restricted . 阅读全文
posted @ 2013-11-08 23:02 除e尘 阅读(264) 评论(0) 推荐(1) 编辑
摘要: 由于上篇的是在命令行中获取翻译的,方便性肯定一般啦。最多算个好玩些罢了。周末没事,就把上篇的代码搬进基于pyqt4中的图形软件中了。 上篇代码当作模块使用不方便,做了更改,另外,两点注意:1.qt支持html的标签对于字符串的修饰。比如:string 显示的是红色的string。2.存储在数据库中存储翻译时使用的'\n'换行符如果使用标签修饰就会失效,只能在存储时换成来分割不同的翻译,当然如果你不用这种方法显示字符串就不需要考虑了,下图字符串是用标签修饰后的效果。本人自己的电脑装的是linux mint,默认窗体就是这个样子,透明度是0.9。OK按钮翻译输入框的单词(快捷键回车 阅读全文
posted @ 2013-11-03 16:17 除e尘 阅读(1721) 评论(0) 推荐(1) 编辑
摘要: 上篇每次翻译一个单词都要联网抓取,重复翻译也要抓取,感觉不太好。晚上突然想到了一个不错的办法,说白了就是查询数据库如果有这个单词就拿出来,没有就联网抓取显示出来并保存进数据库。时间长了几乎就不用联网了,也就是离线了! 本人使用的数据库是sqlite,小巧简单。当然用其他的也可以了。还是看代码吧。代码增加的不多,有些可以优化先不管啦。用BeautifulSoup解析html更容易写,可以看上篇文章。dict.py: python-2.7.5 1 #!/usr/bin/python 2 import urllib2,sys,sqlite3 3 from HTMLParser import ... 阅读全文
posted @ 2013-10-30 00:42 除e尘 阅读(1865) 评论(2) 推荐(1) 编辑
摘要: linux的字典本人实在用起来不舒服(stardict挺不错的,但是界面好看些,功能简单易用就好了),在线翻译又得打开庞大的浏览器....就打算自己写个,但是时间有限,为了简单,还是用python抓取网页来的快些。本人用的必应字典。http://cn.bing.com/dict/?mkt=zh-CN&setlang=ZH获取某个单词解释url是:http://cn.bing.com/dict/search?q=word&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH其中的红色word即是要翻译“word”单词。代码如 阅读全文
posted @ 2013-10-29 13:25 除e尘 阅读(1728) 评论(8) 推荐(0) 编辑