Archive for 算法-编程

由于Google reader的关闭,这段时间接触rss的东西相对多很多。试过qq的reader,不怎么样,阅读速度没有,是否阅读的标记也没有。其他网站的不想用,又要多注册账户。 找到python的rss处理包feedparser,官方文档很详细。http://pythonhosted.org/feedparser/ >>> import feedparser >>> d = feedparser.parse('http://0x55aa.sinaapp.com/feed') >>> a = d.feed >>> a.title 可以使用keys来查看字典键,可以很清楚的弄懂每一个的意思。官方文档上每一个都有介绍。 >>> d['feed'].keys() rss订阅的文章在d.entries里面是一个列表。 详细使用和高级用法见feedparser官方文档。

Continue

先说说我以前的做法:models.py里单纯的就是几个表,几个字段;forms.py里除了除了form的定义,把form数据的验证也放到这里来;view.py里是剩下的所有东西。 现在的想法(还没做):在models.py里面的类加上一些简单的处理方法,比如获取相关分类表里面的名称。forms.py里面加上save操作。 以前在django群里讨论过这个问题,大牛说逻辑处理最好不要放到views里面。这次写程序,又多瞅了几眼文档,感觉这样的好处确实很多,程序更容易读懂,减少代码行数,提高了代码复用,views.py文件肯定更加清晰。  

Continue

1.下载gtk+. http://ftp.acc.umu.se/pub/gnome/binaries/win32/gtk+/ 2.解压到d盘,添加环境变量D:\gtk\bin 3.测试gtk+。命令行输入:pkg-config --cflags gtk+-2.0或者gtk-demo 4.下载mingw http://sourceforge.net/projects/mingw/files/MinGW/ 5.双击安装,安装环境我选择了C Compiler &amp; C++ Compiler &amp; MSYS Basic System &amp; MinGW Developer ToolKit,这里要用到mysys等工具。下载安装完后添加环境变量:D:\MinGW\bin。 6.测试mingw:可以在命令行下输入 gcc -v。 <pre lang="c">#include int main( int argc, char *argv[] ) { GtkWidget *window;

Continue

正在编写的程序用的很多Windows下的操作,查了很多资料。看到剪切板的操作时,想起以前想要做的一个小程序,当时也没做,现在正好顺手写完。 功能:按printscreen键进行截图的时候,数据保存在剪切板里面,很不方便。比如游戏的时候截一个瞬间的图片,但你不能退出游戏保存图片,不方便多次截图。而我也不喜欢安装各种软件,所以准备写这个工具。 思路:一个是自定义快捷键,截图,保存。考虑到很可能各种冲突,取消。然后还是用按printscreen来截图,然后从剪切板读取图片数据,保存。想法是,先监听键盘按键,当printscreen按键时,读取剪切板内容,最后保存图片到指定位置。 1 监听键盘按键:从网上找到资料,安装pywin32,pyhook。链接:http://sourceforge.net/projects/pyhook/,http://sourceforge.net/projects/pywin32/。教程:http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=PyHook_Tutorial。

Continue

又传到github上了:https://github.com/0x55aa/golang-udp-chat 用golang写的第二个程序,这么久再没学golang,找到《go语言编程》的电子版,现在打算重新再学一遍。翻出这个程序,分享。 没有什么特殊功能,自己边做边添加,主要使用了net包中关于upd的几个函数。还没有实现预期的功能,只是个雏形,传上去好记得还写过这么个小程序,哪天心血来潮再改改。 程序是根据这个程序修改的《<a title="Permanent Link to Network programming with Go" rel="bookmark" href="http://0x55aa.sinaapp.com/%e7%ae%97%e6%b3%95-%e7%bc%96%e7%a8%8b/756.html" target="_blank">Network programming with Go</a>》,下面我想看完电子书开始用go写web程序,路漫漫其修远兮 吾将上下而求索。 截了client的图: <a href="http://0x55

Continue

PyStringObject需要保存字符串长度(ob_size),当产生字符串对象后,将不会改变(不可变对象)。这一特性使得PyStringObject对象可作为dict的键值,同时也使一些字符串操作的效率大大降低了,比如字符串连接操作。 &nbsp; typedef struct { PyObject_VAR_HEAD long ob_shash; int ob_sstate; char ob_sval[1]; } PyStringObject; &nbsp; 同c语言一样,字符串末尾以‘\0’结尾,但是中间可以出现’\0’,ob_sval指向一段长度为ob_size+1个字节的内存,字符串结束需要满足ob_sval[ob_size] == ‘\0’ &nbsp; Ob_hash缓存该对象的hash值,初始值为-1。Ob_sstate在书后面介绍intern机制,对于被intern之后的字符串,在整个python运行期间,系统中都只有唯一一个与该字符串对应的PyStringObject对象。当判断两个PyStringO

Continue

作者写得很容易让人明白,真是好书。 Python创建一个对象时,比如PyIntObject,会分配内存,进行初始化。然后用一个PyObject *变量,而不是通过PyIntObject* 变量来保存和维护这个对象。在python内部各个函数直接传递的都是泛型指针 PyObject *。指针所指的对象是什么类型的我们不知道,只能从指针所指的对象的ob_type域动态判断(PyTypeObject),python正是通过这个域实现了多态 &nbsp; 书上举了Print的例子 void Print(PyObject * object){ object -&gt; ob_type -&gt; tp_print(object) } 如果传给Print的指针是一个PyIntObject *,从PyObject指针找到ob_type指针再调用类型里对应的输出操作。作者在前面对这几个关键对象做了讲解,这里很好理解。 &nbsp; &nbsp; 对象池 &nbsp; 数值比较小的整数在程序中会频繁使用,为解决频繁内存申请和释放,使

Continue

在编写chrome扩展的时候,遇到“即将停止支持清单版本 1。请升级到版本 2。”的警告。 解决方法: 在manifest.json文件中增加: <pre>{ ..., "manifest_version": 2, ... } 官方文档:http://developer.chrome.com/extensions/manifestVersion.html</pre>

Continue

几个比较常用的,翻译了一点官方文档。文档http://docs.python.org/2/library/functions.html#built-in-functions <span style="color: #ff9900;">startswith,endswith</span> str.endswith(suffix[, start[, end]]) <tt>str.</tt><tt>startswith</tt><big>(</big><em>prefix</em>[, <em>start</em>[, <em>end</em>]]<big>)</big> &gt;&gt;&gt; s="python" &gt;&gt;&gt; s.startswith('py') True &gt;&gt;&gt; s.startswith('th',2) True &gt;&gt;&gt; s.startswith(('py','yt')) True &gt;&gt;&gt; s.startswith(('py','yt'),1) True

Continue

以前看过一部分了,现在拿起来重新看。不准备像作者一样一步一步的修改代码测试验证,我只是懂得机理,知道是个什么东西就行,作者叙述的内容已经经过验证不会有什么错误。代码我也是下载的python2.5版本的,对照着看看。 &nbsp; Python中,对象就是c中的结构体在堆上申请的一块内存,一般的,对象是不能被静态初始化的,并且也不能再栈空间上生存。唯一例外就是类型对象,内建类型对象(整数类型对象,字符串类型对象)都是静态初始化的。 &nbsp; PyObject &nbsp; <pre lang="c">typedef struct _object { Py_ssize_t ob_refcnt; struct _typeobject *ob_type } PyObject</pre> &nbsp; Py_ssize_t 作者说当作int看,书上就写的int。整型变量ob_refcnt实现了基于引用计数的垃圾收集机制。对于对象A,有新的PyObject *引用该对象,A的引用计数增加,当删除时,减少。当A的引用计数减少到0时,A从堆

Continue