Browsed by
Author: YI

kubuntu系统中iBUS输入的问题

kubuntu系统中iBUS输入的问题

缺省安装的iBUS,没有包含ibus-gtk,因此在某些GTK程序中,无法输入汉字,例如Firefox。

解决方法也很简单,安装ibus-gtk即可。

2011.4.15

2011.4.15

今天据说是博鳌论坛开幕的日子,其实我并不关心。

今天是M公司正式启动的日子。

今天是我离开U公司的日子。

今天是告别过去,面向未来的日子。

我的心情很忐忑,对未来充满期许,内心非常彷徨。

QT与KDE的版本对应关系

QT与KDE的版本对应关系

两者貌似基本是对应的。例如QT3.x出来后,KDE也升级为3.x;QT4.x出来后,KDE紧随其后也升级为4.x。

照这个比对,QT下个版本应该是QT5.x,然后KDE也升级为KDE5.x。。。

然而,现在Nokia将QT魔幻般地变回QT SDK 1.0!

KDE是不是该抓狂了?:-)

一个签名档

一个签名档

在网路上看到一个签名档,太搞笑了,摘录如下:

$ sudo apt-get install girlfriend
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
下列软件包有不能满足的依赖关系:
girlfriend: 依赖: house 但是它将不会被安装
girlfriend: 依赖: car 但是它将不会被安装
house,car: 依赖: money 但是它将不会被安装
Error: girlfriend无法被安装

KDE,我喜欢!

KDE,我喜欢!

在尝试了Ubuntu、Xubuntu、Kubuntu、Debina、Mint等诸多发行版本后,今天还是忍不住切回到Kubuntu,使用KDE4.6。

我想我还是非常享受KDE相对比较华丽的界面,内存和CPU目前不是问题,即使是以前比较老旧的配置,运行KDE4.6还是比较流畅,况且我也不做太多占CPU和内存的工作,大部分时间都是通过Putty登陆命令行界面进行操作。

目前主流厂商中,还没有全力支持KDE的发行版本。OpenSUSE虽然缺省支持KDE,但是换了东家后,让人始终感觉不放心。其他只剩下一些小众版本,例如Arch、PCLinuxOS等,这些小众版本作为linux爱好者玩一玩当然没什么问题,对于企业应用来说,确保产品能长期有效地得到支援是最重要的,从这个方面看,KDE不太乐观。

孤独的孩子

孤独的孩子

下午带孩子去隔壁小区玩“挖沙”。小孩的乐趣实在是非常简单,一个小小的沙坑就能让他们玩得不亦乐乎,流连忘返。

毛豆在沙堆了挖了几个坑,扬了几把沙,心情很兴奋。他看到几个小朋友在另一边玩沙,兴冲冲地跑过去,想一起玩,可惜孩子们都拒绝了,抱着自己的小铲子、小车子跑一边去了。

这实在是让人看不下去。现在的小孩各方面物质条件无意已经非常好了,可是在精神方面的培养呢?孩子们的身影都显得比较孤独啊。

定位DLL导致crash的问题(BCB适用)

定位DLL导致crash的问题(BCB适用)

4.1日的消息果然是个joke,现在各大网站恢复以前的主页了。

回到这篇的主题。在定位crash问题时,首先要在编译版本时生成map文件。程序崩溃时,windows提示的offset地址,与VC生成的map文件描述比较一致,而BCB生成的map文件描述方式与VC的描述方式不太一样,有些地方需要注意。

例如,我们有个demo.exe程序,调用了demo.dll,程序崩溃,windows提示:在demo.dll中崩溃,offset地址为0x00002C90。

定位时,我们需要减去0x00001000,然后在map文件中寻找比0x00001C90小,但是最接近这个值所对应的函数描述。在BCB生成的demo.map文件中,我们可以找到以下代码段描述:

0001:00001C78  Cdemo::GetDemoInfo(Cdemo_info *)

因此基本判断是在函数Cdemo::GetDemoInfo中出错,需要对该函数进行review和测试。

是愚人节笑话吗?

是愚人节笑话吗?

在网上看到一个相当让人震惊的消息:

据说Debian / Arch / Gentoo / OpenSUSE / Grml五大发行版本计划合并为一个发行版本,这个新发行版本叫Canterbury。如果这不是笑话的话,对Linux社区来讲会是件非常重大的事情,意义可能非常深远。现在Linux的发行版本确实太多了,分散了社区的开发力量。

但是为什么取名Canterbury呢?听上去像是个地名。

MySQL与幻象读

MySQL与幻象读

最近在部署系统的过程中,发现MySQL的一点问题,进行简单总结。

实际上就是关于事务隔离级别以及幻象读的问题。

我们的程序分成两个部分:UI层以及Service处理层。UI层使用MySQL的C库接口创建连接;Service层采用Python的MySQLdb您(底层仍然是MySQL的C接口)创建连接。

因此,实际上会与MySQL创建两个连接。

在windows环境中,如果我们通过UI修改了MySQL的数据,我们发现在service层查询时,还是以前的数据,而不是commit之后的数据。

采用Ubuntu系统下的MySQL时,没有这个问题。UI修改了MySQL数据后,Service能立刻查询到最新的结果。

我们发现,Ubuntu下的MySQL(5.1.49-1ubuntu8.1 (Ubuntu))版本较旧,采用MyISAM引擎。而Windows环境下的MySQL(5.1.53-community MySQL Community Server (GPL))较新,采用InnoDB引擎。将Windows环境下的MySQL强制指定为MyISAM时,问题也能解决,不再出现幻象读。

使用下述命令查询了Ubuntu和Windows的配置,都是REPEATABLE-READ:

SELECT @@tx_isolation;

SELECT @@global.tx_isolation;

判断,InnoDB的事务处理级别REPEATABLE-READ还是会出现幻象读。在程序中强行将session级的处理修改为READ-COMMITTED后,问题也解决,不再出现幻象读。

set session transaction isolation level read committed;

这个似乎与网上的资料有些不一致,据说REPEATABLE-READ不会出现幻象读,而READ-COMMITTED级别才会出现。实际结果是相反的。

另外,就我们的应用来说,select操作多于insert/update操作,而且数据量不大,因此MyISAM比InnoDB更适合我们的应用,可惜高版本的MySQL将缺省引擎给换成InnoDB了。

普拉哈拉德

普拉哈拉德

看到一个与传统不太一样的说法:为了更好地认识未来,我们有必要忘掉过去。这个观点来自普拉哈拉德,一位很伟大的管理大师,影响了N多CEO。

我们传统的观点中,非常强调对过去经验的学习,甚至有说法:忘记过去,就意味着背叛。

而现在的我,确实需要忘掉过去,重新出发。以此文纪念我在U公司的悠长岁月。