Kubuntu12.04中python的一点变化

Kubuntu12.04中python的一点变化

最新的12.04版本中,默认携带的python版本是2.7版本,并且在Ubuntu的库中不再提供2.6版本,因此如果使用了python2.6的开发库的程序,在新版本中必须要进行相应的调整。

比较简单的办法是做符号链接,例如:

sudo ln -s /usr/include/python2.7 /usr/include/python2.6
sudo ln -s /usr/lib/libpython2.7.a /usr/lib/libpython2.6.a
sudo ln -s /usr/lib/libpython2.7.so /usr/lib/libpython2.6.so

Linux中共享库的实现方式,虽然采用版本号能解决windows系统常见的DLL冲突问题,但是也不完美,遇到版本库升级,应用程序都必须要改动:要么改动配置文件或者源码,要么改动符号链接等。

对于python而言,由于可以分目录安装,并且共享库也带版本号区分,完全可以2.6和2.7共存,不知道ubuntu是出于什么考虑,去掉了对2.6的支持。

sqlite3记录的唯一标识

sqlite3记录的唯一标识

与Oracle类似,sqlite3提供了内置的ROWID项用于返回每条记录的ID。例如,下面的sql语句可以返回数据项及对应的ROWID:

select ROWID, groupID, description from tbl_hunting_group;

关于ROWID的细节信息,可以参考官方的说明文档:

http://www.sqlite.org/autoinc.html

呼死你,没办法解决吗?

呼死你,没办法解决吗?

在SINA上看到一篇新闻,大意是运营商认为没办法解决“呼死你”问题。原文链接如下:

http://tech.sina.com.cn/t/2012-03-11/14416824164.shtml

作为一名曾经的行业人士,我认为运营商的说法基本是睁眼说瞎话。国内任何一个C5局,都有黑白名单、呼叫过滤等功能,如果是华为的CC08交换机,更具有大容量呼叫过滤功能,掐掉这样的“呼死你”电话根本不存在任何技术问题,更不可能解决不了。

如果担心误杀,接到用户投诉时,查一下该用户的话单或者话务统计即可知道真相。

国内运营商的运维、管理水平、服务水平仍然非常低下,遇到一点问题,直接就回答“解决不了”,反映出这么多年来始终没有真正的服务客户意识,只是靠着垄断坐享其成。

网易开源镜像服务

网易开源镜像服务

我很少访问网易的web网站以及网易的相关服务,但是网易提供的开源镜像服务确实值得称道,其前身就是著名的cn99镜像。网站地址为:

http://mirrors.163.com

该镜像基本上对一些主流的linux发布版本都提供了镜像,国内访问的速度非常不错。并且它提供了一些在线帮助指导,在安装linux版本时,有很好的参考意义。这个地址十分诡异,居然是.help(在根目录下整了个.help文件? 为什么不直接是help呢??)

http://mirrors.163.com/.help

 

QT程序与gprof

QT程序与gprof

gprof能分析出函数的调用关系以及占用时间,对分析程序性能瓶颈很有帮助。

在采用QT开发时,如果程序分成若干个库,那么仅仅在编译时加入-pg选项是不能产生gmon.out文件,还必须在链接选项中也加入-pg才可以。在pro文件中做如下设置即可:

QMAKE_CXXFLAGS += -pg
QMAKE_LFLAGS += -pg

让人比较郁闷的是,gprof不支持动态链接库和Multi-Thread程序。这实在是非常大的局限。

坑爹的-O2

坑爹的-O2

最近在Linux系统开发程序,一直被一个问题困扰:

在单步调试程序时,程序总是莫名其妙地跳转,没走几步又跳回函数入口;或者干脆跳到一个莫名其妙的、不怎么相干的地方去。

这导致基本上没办法进行单步跟踪调试。一直以为是Linux开发环境太烂了,或者可能是多线程程序调试困难,因此不得不通过加入打印的方式进行调试,费时费力,很不爽。

今天看到一篇文章,讨论了gcc/g++的编译开关-O2,即著名的编译优化开关,传说中能改进程序速度的开关。引起我注意的是,这个开关会“优化”掉代码行的关系,会对代码组织方面进行优化。联想到我遇到的调试问题,不正是无法定位正确的代码行吗?因此检查配置文件,删除了所有的-O2开关,重新编译所有文件。

世界果然清净了!单步跟踪完全没问题,老老实实一步一步地运行!

关闭开关后编译的程序,比打开开关的程序没慢多少。从这个角度将,打开-O2开关实在有些得不偿失。整个程序的优化,还是应当依靠代码设计和实现的优化,通过编译器来优化,结果难以预料,而且优化效果也不明显。

2012-02-24 updated: qmake在debug版本中缺省不加-O2选项,而在release版本中会缺省加上-O2选项。

MySQL诡异的问题

MySQL诡异的问题

一直在本机(kubuntu)上调试和运行MySQL数据库,工作状况良好。某次重启后,再用mysql客户端连接server时,居然出现以下信息:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

检查了一下/var/run/mysqld目录,没有发现任何文件。使用命令ps -A | grep mysql,居然没有发现mysqld进程! mysql居然没有启动!

重新启动mysql服务器(sudo service mysql start)失败,检查/var/log/mysql/error.log,发现mysql启动时crash,不明所以。

后来google了N个帖子后,按照某个帖子的建议,修改/etc/mysql/my.cnf文件,注释掉其中的bind_address行,重启mysql居然就成功了。

可是以前一直工作得很好,没有做过任何改动,诡异啊。

部分香港人,你让人说你啥好

部分香港人,你让人说你啥好

是英国报先骂的“全是笼狗”,还是孔庆东先骂的“很多走狗”?
答:英国报先骂的。

是香港人先骂大陆人“全是蝗虫”,还是孔庆东先骂香港人“部分是狗”?
答:香港人先骂的。

是英国大人先在香港地铁里吃东西,还是大陆小孩先在香港地铁里吃东西?
答:英国大人。

是外国猛男强奸香港女人是殖民,还是大陆妈妈在香港产子是殖民?
答:强奸。

是英国先衰落的,还是香港先衰落的?
答:英国。

美国总统和香港人,谁更瞧得起大陆人?
答:美国总统

以上文字转载自天涯。

警方击毙劫匪,政府奖励20万

警方击毙劫匪,政府奖励20万

新闻是广东某地。让我困惑的是,维持治安不是警察的职责么?破不了案的警察难道不可耻吗?干点本职工作,政府就可以奖励20万?那这些警察平时的“本职工作”是什么?

据说当地个体户还募捐了另外20万奖励警方。。。这算什么?