自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(72)
  • 收藏
  • 关注

原创 python封装新浪api时遇到的一些问题

虽然网上有python的sdk,但怎么看怎么不舒服。算了,自己动手,丰衣食足。    封装的时候,出现source parameter appkey missing. 按网上说的做,无法解决。用抓包工具仔细分析,仍然没有发现问题。同样的低层通信代码提交到QQ微博的时候没有任何问题。仔细阅读oauth协议,将oauth_参数放到http headers的authoriation,错误变成了签名不

2011-10-25 00:11:36 3049

原创 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 3209

原创 Notepad++插件NppProject发布

源文地址:http://darkbull.net/opensource/bcj/NppProject/如果运行时报错,请查检一下notepad++的安装目录是否在 "系统盘\program files\",如果是,把notepad++放到其他目录下试试。(感谢@tczzjin同学)        最近几天写了一个Notepad++的项目管理插件,暂时把它叫做NppProject。因

2011-10-01 22:40:07 8969 4

原创 发布一个Notepad++插件: NppProject

NppProject是Notepad++的一个项目管理插件,主要功能有:项目管理类视图浏览及定位支持书签智能提示(自动完成)

2011-09-30 21:09:18 817

原创 iocp的python封装(续)

原文地址:darkbull.net/python/bca/pyiocp/

2011-07-22 21:34:56 3645 2

原创 评书下载机器人

源文地址:http://blog.darkbull.net/python/bbb/pingshu_download_robot/     源码下载  本文内容仅供学习之用。       晚上睡觉的时候,我喜欢听评书,在听书中进入梦乡。我经常上的评书网站是:www.5ips.net,这里的评书不用注册就可以下载,非常方便。昨天突发奇想,为什么不写个机器人,将我喜欢的评书统统下载下来,

2011-06-13 00:06:00 3219

原创 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 3978 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 2846

转载 在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 2491

原创 HTTP请求截取器

写了一个Http请求截取器,写Web时偶尔会用到。需要wxPython环境。点击下载

2010-12-10 16:28:00 4296 3

原创 Python模块学习 ---- fileinput

<br />    这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@IP“,这样的日志文件第天生成一个。所以,我们只要编历这些日志文件,将所有的登陆信息提取出来,并重新组织数据格式就可以了。用python写一个分析工具非常简单,你会说,用glob获取所有的日志文件,然后对每个日志文件都open(logfile),再一行一行的读取;或者用os.walk,也很简单。其实,标准库提供了另一个辅助模块,我们

2010-11-03 14:10:00 6924 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 8325

原创 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 4170 2

原创 跨语言使用对称加密

<br />     这两天在写GM工具,使用wxPython开发,GM工具需要与Web服务器进行简单的交互,Web服务器是用.NET写成。一些关键的数据在传输的过程中进行了加密。.NET有非常完整的加密库,使用也很方便,翻箱倒柜从以前的代码中整了一些对称加密算法出来。而Python标准模块只提供一些hash加密算法,没有提供私钥加密与共钥加密算法,但是借助于开源社区强大的威力,可以很方便的找到加密库。从网上找了一pyDes模块,它实现了DES与TripleDES算法,经过简单的测试,用.NET加密,用

2010-09-16 17:27:00 3319

原创 boost::shared_ptr的性能

    在最近的项目中,使用了大量的boost::shared_ptr。在游戏服务器中,有时候同一数据块要发送给不同的连接(例如A玩家的一个行走消息包要发给所有附近的玩家),如果为每个连接都拷贝一份数据,显的代价比较大且难以维护,想想发送完数据之后还要释放这些数据块,极易出错,而且性能也不佳。使用智能指针,只需要一份数据块的拷贝,并且不需要去管理内存的释放。但这几天,我又在想,boost::shared_ptr号称是线程安全的,那么在低层维护对象的引用计数时,必定有加琐/解琐。如果频繁的对智能指针进行

2010-08-16 00:10:00 3617 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 2961

翻译 MySQL Connector/C++入门教程(上)

使用C++操作台MySQL。MySQL connector/C++ Driver比ADO好用。

2010-06-10 14:54:00 23122 18

原创 像定义“函数”一样定义宏

宏可以成为程序中最厉害的杀手锏,也可以成为阴沟里翻船的罪魁祸首。

2010-06-06 23:40:00 2946

原创 C语言复杂声明

    《C专家编程》第三章介绍了如何分析复杂的声明,讲的非常不错。对于作者介绍的分析复杂声明的方法,我没有完全掌握,不过,我有我自己的一套方法来解析复杂的声明,正所谓条条大道通罗马,只要结果一样,必须在乎过程呢。今天在网上找了几个复杂的声明,练练手(声明的例子全部来自网络,原谅出处未详)。记下此文,作个标记,待日后回味。 int (*func)(int *p)     这个

2010-05-23 21:31:00 3607 1

原创 Python模块学习 ---- atexit

    atexit模块很简单,只定义了一个register函数用于注册程序退出时的回调函数,我们可以在这个回调函数中做一些资源清理的操作。     注:如果程序是非正常crash,或者通过os._exit()退出,注册的回调函数将不会被调用。     我们也可以通过sys.exitfunc来注册回调,但通过它只能注册一个回调,而且还不支持参数。所以建议大家使用atexit来

2010-04-19 21:47:00 7449

原创 Python模块学习 --- urllib

    urllib模块提供的上层接口,使我们可以像读取本地文件一样读取www和ftp上的数据。每当使用这个模块的时候,老是会想起公司产品的客户端,同事用C++下载Web上的图片,那种“痛苦”的表情。我以前翻译过libcurl教程,这是在C/C++环境下比较方便实用的网络操作库,相比起libcurl,Python的urllib模块的使用门槛则低多了。可能有些人又会用效率来批评Python,其

2010-04-16 15:13:00 47603 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 7057 6

原创 Python模块学习 ---- filecmp 文件比较

    filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单。python标准库还提供了difflib模块用于比较文件的内容。关于difflib模块,且听下回分解。     filecmp定义了两个函数,用于方便地比较文件与文件夹: filecmp.cmp(f1, f2[, shallow]):     比较两个文件的内容是否匹配。参数f1

2010-04-08 10:53:00 7362 2

原创 Python模块学习 ---- datetime

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。今天就来讲讲datetime模块。     datetime模块定义了两个常量:datetime.MINYEAR和datetime

2010-04-07 11:02:00 60437 2

原创 python模块学习 ---- Cookie

    最近在用GAE开发自己的博客程序。虽然GAE的API没有显式的提供操作Cookie的方法,但他现有的架构,使我们有足够的自由来操作Cookie。   Cookie模块,顾名思义,就是用来操作Cookie的模块。Cookie这块小蛋糕,玩过Web的人都知道,它是Server与Client保持会话时用到的信息切片。Http协议本身是无状态的,也就是说,同一个客户端发送的两次

2010-04-02 23:18:00 5662

原创 简洁,简单,再简化...

    最近在对服务器代码进行了重构,去除了一些被动的因素,改起来,思想上好受多了。    Python崇尚简单,不要复杂。在写配置文件的时候,并不一定要写到xml中,直接写在python中就可以了。写到xml中,即使使用最简单的dom来解析,也要写许多代码,直接写在python中,简单明了,又不出错,哦yeah...

2010-03-24 00:11:00 1120

原创 IE6对Dhtml支持

    IE6.0下调试WEB真的很痛苦.特别是在web2.0时代。但是遗憾的是,IE6对DHTML的支持极差。有时候出现的莫名其妙。昨天调试的时候,差点被这个问题给气死:对动态生成的html元素,进行关联操作。比方说,我先用脚本生成一个select, 并设定它的值,而后用脚本生成另一个select,并根据前一个select的值,设定它的值。在FF下一切正常,在IE下,时而正确,时而错误。我调试了

2010-03-23 00:27:00 744

原创 NppAStyle发布

    NppAStyle是一个NotePad++的插件,用于格式化Notepad中编辑的c、c++、C#、java代码。NppAStyle在内部使用Astyle来格式化代码,是一个很简单,但很实用的Notepad++插件。可以在这里下载该插件。    下面是插件的一些截图:(1)(二)(三)(四)         注:notepad++是一个功能强

2010-02-17 12:12:00 7079 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 34391 17

原创 再次封装IOCP的收获

    以前写过一篇用python封装IOCP的文章,这几天因朋友需要,再一次封装了iocp接口。这一次我并不是简单的把原有代码拿过来简单的修修改改,基本上是推到重来。改正第一次封装时的许多缺点,同时修正了许多bug,再回首看以前的代码,感觉自己在进步。这次封装iocp,收获了以下几点知识: 1. 数据的重复投递。一般情况下,一个Socket句柄在同一时刻最多只能有一次WSASend与SWARe

2010-01-17 23:19:00 4598 27

原创 根据报文格式来理解TCP协议

    TCP协议规定了在不同主机间进行可靠数据流传输的通用方法,如 连接建立与释放、报文编号、收到数据报后的确认、流量控制、发送超时等等。靠死记硬背来学习这些东西,没过几天就又忘记了。我发现根据TCP报文格式来了解掌握这些知识,效果还是不错的。看到下面这张图(此图来源于网络),就能回忆起关于TCP协议的大部分东西: (该图来源于网络) Source Port,Destination P

2009-12-06 23:43:00 2858

转载 C++大师Stan Lippman:我对中国程序员的忠告

      前天,我和以前公司的几个同事在一起聚餐。其中一位同事在对自己未来的打算时,说可能会回到杭州继续写代码。我听了之后,说:如果对技术不感兴趣,还是趁早离开这个行业。写代码的辛苦程度不是一般人能承受的。      下文 转自天极网   C++语言的创立者,斯坦.利普曼(Stan Lippman) 9月17日参加了在北京召开的微软技术大会Tech.Ed2004并做了"T

2009-11-21 13:03:00 2104 3

原创 这些天的一些事

    上周,一个同事试用期没通过,被劝退离职。公司主要征求了我的意见,我认为考察一个人主要从三方面来考虑:1、技术水平;2、学习能力(包括对新环境的适应能力);3、对待事物的态度。在职场上混的这几年,对于公司来说,能招到一个对技术有浓厚兴趣的职工非常不容易,大部分人只是把技术当作自己的工作,而非兴趣。日复一日,年复一年,他都在做同样的工作,写同样的代码,永远都在原地踏步。     上周六参加了

2009-11-17 19:02:00 1112 1

原创 我使用的FireFox插件

    背景:大三之前,我一直使用IE6。记得那时在我们寝室里,只有YP.Secoder使用Firefox。当时在我的hp ze2205上用ie6打开淘宝网页时,经常会有假死的情况,要经过N长时间才会反应过来。我一直以为是机器性能比较差的缘故。直到有一天,我用javascript写了一颗树并在IE与FF上测试其兼容性,我惊奇地发现:FF执行脚本的效率比IE高多了。从那时起,我就使用FF了。从此,用

2009-11-13 00:35:00 1486 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 69807 38

原创 直观语法

    今天工作过程中,一位同事对我说,MFC里怎么没有类似这样的语法: int a;a =+ 4;    我不以为然,付之一笑,有这种语法吗?你搞错了吧,应该是: int a = 20;a += 4;    谁错了?我不禁感到惭愧,向他道歉。

2009-11-05 21:50:00 1117

原创 被疏忽的一段Python语法

    python提供了有序(sequence)类型(字符串,元组,列表都是有序类型),并且提供了特殊的语法来方便对这些类型进行操作,最常用的有切片操作。同一有序类型的对象之间支持”+”操作符,用来连成一个新的有序对象,有序对象也可以与一个整数进行相乘,得到一个新的有序对象。在调试的时候,我经常使用这样的语句来打印一个分割行:print ‘-‘ * 50。在对有序类型进行“*” 或者 “+”操作

2009-11-03 20:10:00 1585 1

原创 Python模块学习 ---- tempfile 临时文件(夹)操作

    应用程序经常要保存一些临时的信息,这些信息不是特别重要,没有必要写在配置文件里,但又不能没有,这时候就可以把这些信息写到临时文件里。其实很多程序在运行的时候,都会产生一大堆临时文件,有些用于保存日志,有些用于保存一些临时数据,还有一些保存一些无关紧要的设置。在windows操作系统中,临时文件一般被保存在这个文件夹下:C:/Documents and Settings/User/Local

2009-10-28 19:51:00 11569

原创 Python封装IOCP

    2011-07-22:源码下载:http://blog.csdn.net/jgood/article/details/6626872    Python是一门简洁而优雅的语言,她的高生产率使我们能用最少的人力、物力、时间、财力代价解决眼前的问题。但是当解决了眼前的问题,一些更长远的问题就不得不考虑。    利用Python自带的socket模块写网络服务器程序,很难能够承受上千个连接。我曾

2009-10-21 23:02:00 4823 11

原创 Sqlite c/c++ api 学习

    Sqlite是我最喜欢使用的文件数据库,它小巧、方便、速度快、支持大部分标准sql语句、开源、免费 .. .. .. 优点太多了。自从认识了她之后,我就将Access打入了冷宫,发誓以后再也不用Access了。我们可以到Sqlite的官方网站下载Sqlite的源代码,编译后的结果只有200多K,太小巧,太卡哇依了。如果嫌自己手动编译麻烦,也可以直接从官网下载二进制的可执行文件或者动态链接库

2009-10-07 22:49:00 17170 10

空空如也

空空如也

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

TA关注的人

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