- 博客(72)
- 收藏
- 关注
原创 python封装新浪api时遇到的一些问题
虽然网上有python的sdk,但怎么看怎么不舒服。算了,自己动手,丰衣食足。 封装的时候,出现source parameter appkey missing. 按网上说的做,无法解决。用抓包工具仔细分析,仍然没有发现问题。同样的低层通信代码提交到QQ微博的时候没有任何问题。仔细阅读oauth协议,将oauth_参数放到http headers的authoriation,错误变成了签名不
2011-10-25 00:11:36 3101
原创 QQ微博开放平台的python封装
原文地址:http://darkbull.net/opensource/bdb/python_qq_weibo_sdk/ 玩应用开发,就用python写了一个QQ微博开放平台的封装,就一个文件,包括了文档中所描述的所有接口,非常简单。可以在这里下载:http://code.google.com/p/python-qweibo。简单的调用例子:import webbrowser
2011-10-23 18:09:58 3276
原创 Notepad++插件NppProject发布
源文地址:http://darkbull.net/opensource/bcj/NppProject/如果运行时报错,请查检一下notepad++的安装目录是否在 "系统盘\program files\",如果是,把notepad++放到其他目录下试试。(感谢@tczzjin同学) 最近几天写了一个Notepad++的项目管理插件,暂时把它叫做NppProject。因
2011-10-01 22:40:07 9048 4
原创 发布一个Notepad++插件: NppProject
NppProject是Notepad++的一个项目管理插件,主要功能有:项目管理类视图浏览及定位支持书签智能提示(自动完成)
2011-09-30 21:09:18 883
原创 评书下载机器人
源文地址:http://blog.darkbull.net/python/bbb/pingshu_download_robot/ 源码下载 本文内容仅供学习之用。 晚上睡觉的时候,我喜欢听评书,在听书中进入梦乡。我经常上的评书网站是:www.5ips.net,这里的评书不用注册就可以下载,非常方便。昨天突发奇想,为什么不写个机器人,将我喜欢的评书统统下载下来,
2011-06-13 00:06:00 3277
原创 python访问纯真IP数据库
<br /> 项目中有这样的需求,通过IP地址判断客户端是网通的还是电信的。从同事那拿了个纯文本的IP纯真数据库,用Python写了一个小程序,感觉挺好的。点击这里查看例子。<br />源码下载<br />#!/usr/bin/env python# -*- coding: utf-8 -*-from bisect import bisect_LIST1, _LIST2 = [], []_INIT = Falseip2int = lambda ip_str:
2011-03-28 23:11:00 4059 1
原创 将阿拉伯数字转换成中文
源文出版:http://darkbull.net/99/%E5%B0%86%E9%98%BF%E6%8B%89%E4%BC%AF%E6%95%B0%E5%AD%97%E8%BD%AC%E6%8D%A2%E6%88%90%E4%B8%AD%E6%96%87 周末在家,写了个小程序,用于将阿拉伯数字转换化大写中文。程序没经过任何优化,出没经过详细的测试,挂到网上,方便将来有需要的时候直接拿来用。源码测试代码#!/usr/bin/python#-*- encoding: utf-8 -*-imp
2011-03-21 12:48:00 2898
转载 在CentOS中设置TrackPoint
The Ultranav Trackpoint on Thinkpads has a great middle button scrolling ability. Some distros [read: Ubuntu, openSUSE] have little to no problem configuring it because, unlike Fedora and CentOS, they have decided to keep the /dev/psaux device inste
2011-02-28 17:25:00 2550
原创 Python模块学习 ---- fileinput
<br /> 这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@IP“,这样的日志文件第天生成一个。所以,我们只要编历这些日志文件,将所有的登陆信息提取出来,并重新组织数据格式就可以了。用python写一个分析工具非常简单,你会说,用glob获取所有的日志文件,然后对每个日志文件都open(logfile),再一行一行的读取;或者用os.walk,也很简单。其实,标准库提供了另一个辅助模块,我们
2010-11-03 14:10:00 7029 1
原创 python模块学习 ---- anydbm, shelve
<br /> 好久没写这系列的文章了,我越来越喜欢用python了,它在我的工作中占据的比例越来越大。废话少说,直接进入主题。 anydbm允许我们将一个磁盘上的文件与一个“dict-like”对象关联起来,操作这个“dict-like”对象,就像操作dict对象一样,最后可以将“dict-like”的数据持久化到文件。对这个"dict-like"对象进行操作的时候,key和value的类型必须是字符串。下面是使用anydbm的例子: #coding=utf-8import
2010-10-29 15:09:00 8395
原创 python写的进程守护者
<br /> 用Python写的一个守护者,核心的代码不到10行。这个方法是由同事想到的,我把核心的代码提出来,真是太cool了:import os, subprocessdef Run(): while True: taskList = os.popen('tasklist').read() for path, exe in [os.path.split(line.strip()) for line in open('config')
2010-10-23 16:33:00 4221 2
原创 跨语言使用对称加密
<br /> 这两天在写GM工具,使用wxPython开发,GM工具需要与Web服务器进行简单的交互,Web服务器是用.NET写成。一些关键的数据在传输的过程中进行了加密。.NET有非常完整的加密库,使用也很方便,翻箱倒柜从以前的代码中整了一些对称加密算法出来。而Python标准模块只提供一些hash加密算法,没有提供私钥加密与共钥加密算法,但是借助于开源社区强大的威力,可以很方便的找到加密库。从网上找了一pyDes模块,它实现了DES与TripleDES算法,经过简单的测试,用.NET加密,用
2010-09-16 17:27:00 3540
原创 boost::shared_ptr的性能
在最近的项目中,使用了大量的boost::shared_ptr。在游戏服务器中,有时候同一数据块要发送给不同的连接(例如A玩家的一个行走消息包要发给所有附近的玩家),如果为每个连接都拷贝一份数据,显的代价比较大且难以维护,想想发送完数据之后还要释放这些数据块,极易出错,而且性能也不佳。使用智能指针,只需要一份数据块的拷贝,并且不需要去管理内存的释放。但这几天,我又在想,boost::shared_ptr号称是线程安全的,那么在低层维护对象的引用计数时,必定有加琐/解琐。如果频繁的对智能指针进行
2010-08-16 00:10:00 3688 2
原创 python版本问题导致Boost.Python无法正常使用
<br /> (www.darkbull.net)<br /> 今天打算将Python集成到项目中作为脚本语言,主要用于处理字符串与网络交互(如发送邮件,提交http请求等)。Boost.Python组件提供了非常方便的接口,使Python集成到C/C++项目中变得十分容易。今天在运行以前写的例子时,发现无法运行,不管是在Python中调用C++扩展库还是在C++中调用Python。在Python中调用C++扩展模块,提示的错误是:Dll load failed: 找不到指定的模块。而在C++中
2010-08-08 22:29:00 3040
翻译 MySQL Connector/C++入门教程(上)
使用C++操作台MySQL。MySQL connector/C++ Driver比ADO好用。
2010-06-10 14:54:00 23280 18
原创 C语言复杂声明
《C专家编程》第三章介绍了如何分析复杂的声明,讲的非常不错。对于作者介绍的分析复杂声明的方法,我没有完全掌握,不过,我有我自己的一套方法来解析复杂的声明,正所谓条条大道通罗马,只要结果一样,必须在乎过程呢。今天在网上找了几个复杂的声明,练练手(声明的例子全部来自网络,原谅出处未详)。记下此文,作个标记,待日后回味。 int (*func)(int *p) 这个
2010-05-23 21:31:00 3708 1
原创 Python模块学习 ---- atexit
atexit模块很简单,只定义了一个register函数用于注册程序退出时的回调函数,我们可以在这个回调函数中做一些资源清理的操作。 注:如果程序是非正常crash,或者通过os._exit()退出,注册的回调函数将不会被调用。 我们也可以通过sys.exitfunc来注册回调,但通过它只能注册一个回调,而且还不支持参数。所以建议大家使用atexit来
2010-04-19 21:47:00 7534
原创 Python模块学习 --- urllib
urllib模块提供的上层接口,使我们可以像读取本地文件一样读取www和ftp上的数据。每当使用这个模块的时候,老是会想起公司产品的客户端,同事用C++下载Web上的图片,那种“痛苦”的表情。我以前翻译过libcurl教程,这是在C/C++环境下比较方便实用的网络操作库,相比起libcurl,Python的urllib模块的使用门槛则低多了。可能有些人又会用效率来批评Python,其
2010-04-16 15:13:00 47747 7
原创 用Python写的图片蜘蛛人
原文地址:http://www.darkbull.net/python/bd/%E5%86%99%E4%B8%AA%E5%9B%BE%E7%89%87%E8%9C%98%E8%9B%9B%E7%8E%A9%E7%8E%A9/ 写了个图片蜘蛛人玩玩,抓了几个网页试试,感觉不不错。核心的代码可能20行也不到,简洁明了,嘻嘻。废话少说,翠花,上代码~~#coding=utf-8im
2010-04-10 23:32:00 7150 6
原创 Python模块学习 ---- filecmp 文件比较
filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单。python标准库还提供了difflib模块用于比较文件的内容。关于difflib模块,且听下回分解。 filecmp定义了两个函数,用于方便地比较文件与文件夹: filecmp.cmp(f1, f2[, shallow]): 比较两个文件的内容是否匹配。参数f1
2010-04-08 10:53:00 7419 2
原创 Python模块学习 ---- datetime
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。今天就来讲讲datetime模块。 datetime模块定义了两个常量:datetime.MINYEAR和datetime
2010-04-07 11:02:00 60651 2
原创 python模块学习 ---- Cookie
最近在用GAE开发自己的博客程序。虽然GAE的API没有显式的提供操作Cookie的方法,但他现有的架构,使我们有足够的自由来操作Cookie。 Cookie模块,顾名思义,就是用来操作Cookie的模块。Cookie这块小蛋糕,玩过Web的人都知道,它是Server与Client保持会话时用到的信息切片。Http协议本身是无状态的,也就是说,同一个客户端发送的两次
2010-04-02 23:18:00 5733
原创 简洁,简单,再简化...
最近在对服务器代码进行了重构,去除了一些被动的因素,改起来,思想上好受多了。 Python崇尚简单,不要复杂。在写配置文件的时候,并不一定要写到xml中,直接写在python中就可以了。写到xml中,即使使用最简单的dom来解析,也要写许多代码,直接写在python中,简单明了,又不出错,哦yeah...
2010-03-24 00:11:00 1173
原创 IE6对Dhtml支持
IE6.0下调试WEB真的很痛苦.特别是在web2.0时代。但是遗憾的是,IE6对DHTML的支持极差。有时候出现的莫名其妙。昨天调试的时候,差点被这个问题给气死:对动态生成的html元素,进行关联操作。比方说,我先用脚本生成一个select, 并设定它的值,而后用脚本生成另一个select,并根据前一个select的值,设定它的值。在FF下一切正常,在IE下,时而正确,时而错误。我调试了
2010-03-23 00:27:00 807
原创 NppAStyle发布
NppAStyle是一个NotePad++的插件,用于格式化Notepad中编辑的c、c++、C#、java代码。NppAStyle在内部使用Astyle来格式化代码,是一个很简单,但很实用的Notepad++插件。可以在这里下载该插件。 下面是插件的一些截图:(1)(二)(三)(四) 注:notepad++是一个功能强
2010-02-17 12:12:00 7191 3
翻译 译: Code::Blocks手册 使用篇
原手册下载:http://www.codeblocks.org/docs/manual_en.pdf 译者:JGood(http://blog.csdn.net/Jgood) 译者言:工欲善其事,必先利其器。一个好的工具能事半功倍。写程序时,特别是写C++程序,大部分人脑子里想到的第一个工具就是VisualStudio。不可否认,VS很好很强大,用户体
2010-01-25 00:05:00 34774 17
原创 再次封装IOCP的收获
以前写过一篇用python封装IOCP的文章,这几天因朋友需要,再一次封装了iocp接口。这一次我并不是简单的把原有代码拿过来简单的修修改改,基本上是推到重来。改正第一次封装时的许多缺点,同时修正了许多bug,再回首看以前的代码,感觉自己在进步。这次封装iocp,收获了以下几点知识: 1. 数据的重复投递。一般情况下,一个Socket句柄在同一时刻最多只能有一次WSASend与SWARe
2010-01-17 23:19:00 4684 27
原创 根据报文格式来理解TCP协议
TCP协议规定了在不同主机间进行可靠数据流传输的通用方法,如 连接建立与释放、报文编号、收到数据报后的确认、流量控制、发送超时等等。靠死记硬背来学习这些东西,没过几天就又忘记了。我发现根据TCP报文格式来了解掌握这些知识,效果还是不错的。看到下面这张图(此图来源于网络),就能回忆起关于TCP协议的大部分东西: (该图来源于网络) Source Port,Destination P
2009-12-06 23:43:00 2963
转载 C++大师Stan Lippman:我对中国程序员的忠告
前天,我和以前公司的几个同事在一起聚餐。其中一位同事在对自己未来的打算时,说可能会回到杭州继续写代码。我听了之后,说:如果对技术不感兴趣,还是趁早离开这个行业。写代码的辛苦程度不是一般人能承受的。 下文 转自天极网 C++语言的创立者,斯坦.利普曼(Stan Lippman) 9月17日参加了在北京召开的微软技术大会Tech.Ed2004并做了"T
2009-11-21 13:03:00 2152 3
原创 这些天的一些事
上周,一个同事试用期没通过,被劝退离职。公司主要征求了我的意见,我认为考察一个人主要从三方面来考虑:1、技术水平;2、学习能力(包括对新环境的适应能力);3、对待事物的态度。在职场上混的这几年,对于公司来说,能招到一个对技术有浓厚兴趣的职工非常不容易,大部分人只是把技术当作自己的工作,而非兴趣。日复一日,年复一年,他都在做同样的工作,写同样的代码,永远都在原地踏步。 上周六参加了
2009-11-17 19:02:00 1154 1
原创 我使用的FireFox插件
背景:大三之前,我一直使用IE6。记得那时在我们寝室里,只有YP.Secoder使用Firefox。当时在我的hp ze2205上用ie6打开淘宝网页时,经常会有假死的情况,要经过N长时间才会反应过来。我一直以为是机器性能比较差的缘故。直到有一天,我用javascript写了一颗树并在IE与FF上测试其兼容性,我惊奇地发现:FF执行脚本的效率比IE高多了。从那时起,我就使用FF了。从此,用
2009-11-13 00:35:00 1541 2
原创 libcurl教程
原文地址:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html 译者:JGood(http://blog.csdn.net/JGood ) 译者注:这是一篇介绍如何使用libcurl的入门教程。文档不是逐字逐句按原文翻译,而是根据笔者对libcurl的理解,参考原文写成。文中用到的一些例子,可能不是出自原文,而是笔者
2009-11-08 22:56:00 70233 38
原创 直观语法
今天工作过程中,一位同事对我说,MFC里怎么没有类似这样的语法: int a;a =+ 4; 我不以为然,付之一笑,有这种语法吗?你搞错了吧,应该是: int a = 20;a += 4; 谁错了?我不禁感到惭愧,向他道歉。
2009-11-05 21:50:00 1164
原创 被疏忽的一段Python语法
python提供了有序(sequence)类型(字符串,元组,列表都是有序类型),并且提供了特殊的语法来方便对这些类型进行操作,最常用的有切片操作。同一有序类型的对象之间支持”+”操作符,用来连成一个新的有序对象,有序对象也可以与一个整数进行相乘,得到一个新的有序对象。在调试的时候,我经常使用这样的语句来打印一个分割行:print ‘-‘ * 50。在对有序类型进行“*” 或者 “+”操作
2009-11-03 20:10:00 1637 1
原创 Python模块学习 ---- tempfile 临时文件(夹)操作
应用程序经常要保存一些临时的信息,这些信息不是特别重要,没有必要写在配置文件里,但又不能没有,这时候就可以把这些信息写到临时文件里。其实很多程序在运行的时候,都会产生一大堆临时文件,有些用于保存日志,有些用于保存一些临时数据,还有一些保存一些无关紧要的设置。在windows操作系统中,临时文件一般被保存在这个文件夹下:C:/Documents and Settings/User/Local
2009-10-28 19:51:00 11612
原创 Python封装IOCP
2011-07-22:源码下载:http://blog.csdn.net/jgood/article/details/6626872 Python是一门简洁而优雅的语言,她的高生产率使我们能用最少的人力、物力、时间、财力代价解决眼前的问题。但是当解决了眼前的问题,一些更长远的问题就不得不考虑。 利用Python自带的socket模块写网络服务器程序,很难能够承受上千个连接。我曾
2009-10-21 23:02:00 4884 11
原创 Sqlite c/c++ api 学习
Sqlite是我最喜欢使用的文件数据库,它小巧、方便、速度快、支持大部分标准sql语句、开源、免费 .. .. .. 优点太多了。自从认识了她之后,我就将Access打入了冷宫,发誓以后再也不用Access了。我们可以到Sqlite的官方网站下载Sqlite的源代码,编译后的结果只有200多K,太小巧,太卡哇依了。如果嫌自己手动编译麻烦,也可以直接从官网下载二进制的可执行文件或者动态链接库
2009-10-07 22:49:00 17256 10
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人