人格分裂

人格分裂

今天在天涯無意中看到一個影評的帖子,看標題就很感興趣,於是點進去看了。花了大約1個半小時。。。

主題本身其實沒有特別的地方,沒有留下太深的印象。讓人瞠目結舌的是這個帖子的各種回帖,華麗啊。人身攻擊有之、謾駡有之、玩深沉有之、玩高雅有之、還有玩儅老師的,詞鋒或犀利、或婉轉、或橫眉、或威脅,實在是太精彩了。最精彩的是,到了最後兩派人互相揭馬甲,人肉搜索。我以為我看了一個半小時的戲劇,結果發現最後其實是雙口相聲,搞不好還是單口相聲!

我被這種人格分裂的現場震撼了,我現在才明白原來駡人、回帖可以如此的詭異、惡毒,難道是我已經out了?天涯真是個鬼魅般的存在。

MySQL查询结果中去掉重复的值

MySQL查询结果中去掉重复的值

一个简单的应用,查询数据库中的用户名,同时去掉其他重名的用户。测试数据库如下:

mysql> select name from demo;
+———+
| name    |
+———+
| yxh     |
| yxh     |
| default |
+———+

查询时,只要限定关键词‘distinct’即可,例如:

mysql> select distinct name from demo where name != ‘default’;
+——+
| name |
+——+
| yxh  |
+——+
1 row in set (0.02 sec)

Ubuntu 10.10发布了

Ubuntu 10.10发布了

刚才在cnbeta中看到了这个消息,感觉有点兴奋,很想知道10.10会是什么样的一个版本?是不是会带来更多的惊喜?我对ubuntu还是比较期待的,虽然同时我也比较纠结Fedora。

在ubuntu中,点击“update manager”开始check,居然没有提示升级到10.10,只是提示了几个小软件的升级。这是怎么回事?

点击”update manager”的setting按钮,检查各项配置。将release upgrade修改为”normal release”后,再进行check,提示可以升级到10.10版本了。

这就带来疑问:10.10不是LTS版本?10.04才是LTS版本,下一个LTS版本应该是11.04。

如果是这样的话,就没有太大必要着急升级到10.10。当然,潮流人士可以升级试试。

X-lite 4慢了很多

X-lite 4慢了很多

今天从xten网站上下载了最新的Xlite4,安装后感觉界面确实华丽了很多。

可是启动速度、运行速度相应也慢了很多!进到xlite的安装目录看了看,感觉xten用.net重写了xlite。.net固然很方便开发,可是我仍然觉得采用.net开发SIP客户端是个败笔,对系统要求太高了,体验不太好。

linux下的定时备份

linux下的定时备份

这个问题实际包含两个部分:

(1)创建定时任务

(2)备份数据

备份数据的命令为:rsync 例如,rsync -a /var/svn_db/ /home/backup/svn_db/

创建定时任务的命令为:crontab,例如:crontab -u root -e 编辑root用户的定时任务。此时会自动打开一个vi进行编辑, vi文件的格式为:M H D m d cmd

其中:
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0 表示星期天)

其中:M: 分钟(0-59)。 H:小时(0-23)。 D:天(1-31)。 m: 月(1-12)。 d: 一星期内的天(0~6,0 表示星期天)除了数字还有几个个特殊的符号就是”*”、”/”和”-“、”,”,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字。

我们的目标是创建一个定时任务,每天晚上23点开始备份数据,因此输入信息:

* 23 * * * rsync -a /var/SVN_DB/ /home/backup/svn_db/

vi保存退出后,系统会在/var/spool/cron目录下创建一个与用户名同名的文件。定时备份任务就启动了。

Fedora13特殊的网络安装方式

Fedora13特殊的网络安装方式

在一种特殊环境下安装Fedora13:

(1)无法连入internet,不能使用公网的Fedora源
(2)无DVD光驱,只有CD光驱。因此无法刻录DVD盘进行安装,只能刻录CD盘进行安装。
(3)希望在公司内部网内,通过Ftp服务器进行网络方式安装。

在网络上搜索了一下,网络安装方式通常都需要先安装windows或者dos操作系统。下面提供另外一种方式进行安装。

1. Fedora13提供了网络安装盘的iso文件(Fedora-13-i386-netinst.iso),因此我们先下载该isp文件并刻录CD启动盘。

同时,Fedora13也提供了DVD的iso文件(Fedora-13-i386-DVD.iso),同样,我们也下载该iso文件,不过不需要刻录成光盘。

2. 建立FTP server(例如,使用FileZilla server),并一定要允许匿名访问。

3. 通过7-Zip软件,将DVD iso文件中的文件全部解药到该FTP server的某个目录,例如:ftp://192.168.1.100/os/Fedora/13

下面这一步比较特殊,在GG搜索中没有搜索到结果,不得不在VirtualBox进行虚拟安装才得到的结论(其他安装方式也不需要这么特殊处理)。

4. 解压完成后,进入解压目录下的repodata目录,复制以下文件并进行改名:

将9d81a…文件复制为9d81a…-primary.sqlite.bz2
将69fe7…文件复制为69fe7…-primary.sqlite.bz2
将86ab0…文件复制为86ab0…-primary.sqlite.bz2
将37735…文件复制为37735…-primary.sqlite.bz2
将d8178…文件复制为d8178…-primary.sqlite.bz2
将27241…文件复制为27241…-filelists.sqlite.bz2
将e1153…文件复制为e1153…-Fedora-13-comps.xml.gz
将fce31…文件复制为fce31…-Fedora-13-comps.xml

5. 启动CD盘进行安装。安装过程中会提示失败,无法获取源(如果此时能访问internet,会直接寻找internet上的公告源),弹出告警对话框。此时,选择“Edit”进行编辑:

(1)设置URL为:ftp://192.168.1.100/os/Fedora/13
(2)由于该源是私有源,不在镜像列表中,因此一定要取消“URL is a mirror list”选项

点击“OK”后,系统开始安装,后面的过程与其他安装方式就没什么不同了。

如果在局域网内部已经架设了www服务器,也可以通过http方式进行安装,基本步骤应该与上述相同。

Linux下常用的几个命令

Linux下常用的几个命令

文件查找: find / -name demo.h 从根目录开始,查找文件名为”demo.h”的文件。
grep “myvoipapp” * -r 从当前目录开始搜索所有包含有字符串myvoipapp的文件, -r是指也需要搜索子目录。
查询网卡信息:ifconfig (需要root权限)
查询本机网络连接信息: netstat -a
查询CPU占用率 top
查询是否安装了mysql包: rpm -qa | grep mysql
Python中面向对象的一点概念

Python中面向对象的一点概念

Python的面向对象和C++颇有一些差异,主要体现在父类和子类的关系、函数重载、虚函数等方面。基本上可以说,在Python的内心,闪烁着C的光芒。

这样说可能太文绉绉了些,看下面这段代码,就能了解到一些基本的概念了:

子类的实例需要调用父类定义的函数时,必须在子类中重定义父类函数。
class A(object):
def __init__(self):
print “a::__init__”
def func1(self):
print “a::func1”
self.func2()   #注意:func2在A中没有定义!
class B(A):
def __init__(self):
super(B,self).__init__() #子类不会自动调用父类的构造函数,需要显示定义
print “b::__init__”
def func1(self):
print “b::func1”
super(B,self).func1()
def func2(self):
print “b::func2”
bObj = B()
bObj.func1()
用Python扩展C/C++程序的小技巧

用Python扩展C/C++程序的小技巧

通常都是用C/C++来扩展Python应用。而在我们程序中是反过来的,核心是C/C++程序,嵌入Python来提供扩展脚本,满足业务开发的需要。

这种模式下,很难应用现有的一些IDE工具来查错和调试。通常我们总是通过输出打印信息来检查python脚本逻辑是否出错。但是对一些语法错误,由于没有IDE工具辅助,反而不易排查,经常阻碍开发进度。后来发现可以应用traceback模块来迅速定位出错的地方,这可真是个很不错的模块。具体实现如下:

def TraceError(self):

exc_type, exc_value, exc_traceback = sys.exc_info()
exc_list = traceback.format_exception(exc_type, exc_value,exc_traceback)
exc_len = len(exc_list)
index = 0

while exc_len > 0:
self.Trace(exc_list[index])  # 自定义输出函数
index += 1
exc_len -= 1
return
如何以root身份登录Fedora13

如何以root身份登录Fedora13

这又是个纠结的问题。在老版本中,以root身份登录根本就不是个问题。我不太明白为什么最新的Ubuntu和Fedora都玩起了拒绝root登录的方式。

从技术上讲,屏蔽root登录方式似乎不能解决多少安全性问题。这两个发行版本的开发人员是怎么考虑的?

话说回来,以root身份登录Fedora的做法,要比Ubuntu复杂一些。采用以下方式即可:

以root身份修改以下文件:

修改文件/etc/pam.d/gdm,注释掉auth required pam_succeed_if.so user != root quiet。

修改文件/etc/pam.d/gdm-password,注释掉auth required pam_succeed_if.so user != root quiet。

然后重启系统就可以了。