- 博客(22)
- 收藏
- 关注
原创 Python 2.x嵌套作用域的限制
Python的作用域规则并不像C那么简单明了,PEP 227中详细说明了具体规则。复杂规则的制定,也带来了一些看上去违背直觉的限制。
2016-10-16 01:42:27
2415
1
原创 警惕Python中重复运算符(*)的坑
Python中对一个序列执行乘法,试图倍增序列的长度,但是初学者可能会不小心陷入一个难以察觉的bug中。
2014-11-27 19:32:40
2478
原创 Python IDLE reload(sys)后无法正常执行命令的原因
通常大多数人执行reload(sys)这条语句其实仅仅是为了能够修改Python的默认字符集,也就是能够调用sys.setdefaultencoding()。但是如果在IDLE中执行reload(sys),就会导致接下来无法正常执行任何命令。 起初遇到这个问题也是束手无策,后来无意间在stackoverflow上看到有人说到了这个问题。原来是因为IDLE作为一个GUI Shell环境,在启...
2014-11-23 20:20:21
4841
1
原创 探寻Python中如何同时迭代多个iterable对象
一步步探寻如何在Python中用最简洁的代码实现同时迭代多个iterable对象,比如同时从两个文件里面读取每一行进行对比。
2014-11-23 00:01:29
10164
5
原创 log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析
log4j-over-slf4j和slf4j-log4j12是跟java日志系统相关的两个jar包,当它们同时出现在classpath下时,就可能会引起堆栈溢出异常。先大致梳理了一下现有Java日志体系接口,然后仔细分析了这种异常出现的原因,最后重现异常并展示了详细的调用过程。
2014-08-17 12:08:06
37774
16
原创 MySQL的字符编码体系(二)——数据传输编码
MySQL的字符编码结构比较细,它大方向分为两个部分:数据存储编码和数据传输编码。上一篇讨论了数据存储编码部分,本篇讨论数据传输编码中讨论。
2014-07-12 11:34:12
4536
3
原创 非常精简的Linux线程池实现(二)——使用信号量和自旋锁进一步简化程序
我在博客Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
2014-06-17 11:00:17
2410
原创 非常精简的Linux线程池实现(一)——使用互斥锁和条件变量
其实线程池的原理非常简单,它就是一个非常典型的生产者消费者同步问题。如果不知道我说的这个XXX问题也不要紧,我下面就解释。
2014-06-17 10:18:06
11225
7
原创 Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
在linux平台中编写复杂的多线程程序,没有互斥锁是肯定不行的,而仅有互斥锁没有条件变量也是万万不行的。关于互斥锁需要注意的问题不多,而且现有资料也很多。但是条件变量的正确使用却不是一件简单的事,有很多需要注意的地方。
2014-06-17 02:15:02
10176
原创 bloom filter的纯C实现
/** *bloom_filter.h * *bloom filter算法的API定义和说明。 *这套API没有考虑错误处理,不包含特定hash函数的实现。 */#ifndef BLOOM_FILTER_H_INCLUDED#define BLOOM_FILTER_H_INCLUDED/** *bloom filter算法核心类型 * *核心类型用于定义b
2014-05-18 16:39:22
2483
原创 64位Win7中使用64位库开发程序遇到的Undefined Reference问题
在64位Win7中利用一些64位库的开发程序有时会出现Undefined Reference(未定义的引用)这类的问题。比如系统中安装了64位版本的MySQL,然后按照网上教程一步步配置C/C++的数据库程序开发环境,到最后编译链接通常都会出现Undefined Reference问题。另一个例子是使用64位的OpenNI2库来开发Kinect应用程序,通常也会遇到Undefined Refe
2014-05-15 21:09:27
1615
原创 ubuntu下signal()函数的行为
写此文的目的是最近遇到了与signal()函数相关的问题。虽然早知道signal()是一个机制不完善、语意混乱,已经不被推荐使用的函数,但我遇到的问题出乎了我的意料,所以上网搜了搜,结果基本都是一个口径:signal()安装的信号处理函数会被自动重置。对于这样的结果我非常不满意,所以只好自己去查阅了man,再在ubuntu13.04上动手试验才弄清楚。先来摘录一段man里的表述(有点长
2014-04-04 19:57:11
3543
原创 C语言真的不能面向对象吗?
一直以来,有关于C++、Java、C#等语言的书总喜欢在开篇介绍中拿C语言来比较一番。在承认C语言无可争议的运行效率的同时,也总爱拿C语言不具备面向对象血统的短板说事。当年在看这些的书的时候,我还觉得深以为然。但经过这些年的学习和见闻,我却越来越强烈地感到这种说法有失偏颇:C语言真的不具备面向对象的能力吗?考虑这个问题之前,首先要明确一点,什么是面向对象,或者说什么是对象?可以认为,对象=属性
2014-03-16 23:35:32
13978
11
原创 vs2013设置winpcap开发环境
WinPcap 4.0.1在线中文手册:http://www.ferrisxu.com/WinPcap/html/index.html 本文以Visual Studio 2013和WinPcap 4.1.3作为示例,对32位和64位Win7通用 1、下载并安装WinPcap运行库http://www.winpcap.org/install/default.htm 2、下载W
2014-02-28 12:52:15
13871
原创 CodeBlocks 13.12设置winpcap开发环境
WinPcap 4.0.1在线中文手册:http://www.ferrisxu.com/WinPcap/html/index.html 本文以CodeBlocks 13.12和WinPcap 4.1.3作为示例,对32位和64位Win7通用 1、下载并安装WinPcap运行库http://www.winpcap.org/install/default.htm 2、下载Win
2014-02-28 09:00:31
4534
原创 CodeBlocks设置程序UAC执行级别
在vs里设置UAC执行级别是很容易的,但是CodeBlocks并不原生支持UAC的设置。实际上,Windows是通过在程序中嵌入带UAC选项的manifest清单文件来实现程序的UAC支持的。所以,我们可以设法在CodeBlocks的C/C++项目中添加清单文件,让生成的程序带有安全盾,双击运行时自动请求管理员权限,如下所示:具体的嵌入方法很简单,把下面两段内容分别保存为res
2014-02-28 08:20:34
3837
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人