• 2007-11-01

    江苏男人(转) - [其它]

    Tag:
        古云欲明德于天下者,先治其国,欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知,致知在格物。

        格物,致知,诚意,正心,乃修身也.江苏历来重视教育的传统加之全国最多的高校数,使江苏人相比其它各地受到更良好的教育.江苏男子多知书达理,有所学识,古时二十史中所载名人,有三分之一出自江苏;今天出生于江苏的两院院士,中国作协会员,中国美协会员等等都在全国最多.

        天堂胜景,世外桃源,鱼米乡,灵性地,三秋桂子,十里荷花,遍地绮罗,盈耳丝竹。灵山秀水蕴育了吴汉文化,吴汉文化又培养了江苏人的理性与一种平和的心态,江苏地域让人有一种安全感,除非有非常难以预测的天灾人祸,自身最平常的付出都会有回报...
  • 2007-10-14

    Linux Weekend - [生活]

    Tag:Linux
    昨天去清华参加了AKA Linux内核大会,大会整体很好,从下午1点半一直开到6点半。人很多,我去的迟了坐在后面。一共有6个人做主题演讲,没听清楚两个老外说的什么,一个是ACPI,一个是video driver,很想找他们的ppt看一下。

    终于见到ustc传说中的牛人吴师兄了,最新发布的Linux内核2.6.23中采用了他的预读readahead改进算法。他主要讲了新旧两种预读算法,可惜太专业了我没听明白新算法是怎么实现的,觉得看了他的代码之后再听才有效果。

    陈莉君老师的 走入Linux内核 很适合内核初学者和打算进入Linux内核的人,讲的很辞恳,并且一再强调学习内核要有有毅力和培养信心,一些细节搞不明白就跳过,不要走进死胡同。

    伍鹏讲了Linux内核社区的规则,举了他们公司blackfin怎样提交patch的例子,对那些想进...
  • 2007-10-09

    Linux下读写速度测试 - [编程]

    Tag:C Linux
    一. 文件一次读入速度

    linux下读文件这东西最后都是要通过系统调用sys_read(fd,buf,count)来实现的,所以如果要提高速度,就是最简单地调用sys_read的封装,比如直接用read()或fread()。下面是我在linux下的几个测试。

    首先创建一个130M数据文件 dd if=/dev/zero of=data bs=1024k count=130
    分别用fread,read和fgets一次读入全部大小文件所消耗时间对比,...
  • 2007-10-07

    国庆过完了 - [生活]

    Tag:
    国庆七天过完了。

    来北京两个多月,可能这七天是最自由的,想什么时候睡觉就什么时候睡觉,想干什么就干什么。 除了去八大处公园和去天安门看过一次夜景之外,就不想再出去了。各个地方的人很拥挤,我在想这样长假来刺激旅游的方式是不是该取缔了,反正让我觉得很无聊。

    所以大多数时间都是在宿舍和实验室度过。这几天看完了越狱2和越狱3的前面3集,总的来说感觉越狱2比越狱1精彩,各个人物都刻画得很充分。印象较深的是T-bag除了像越狱1那样变态残暴之外,内心深处还有几分别人难以想象的柔情,智商也不在ms之下,走起路来一拽一拽的样子很是可爱。另外下载了一部赵宝刚新拍的电视剧奋斗...
  • 1. 让命令行中文显示和输入
     编辑文件/home/zhang/.inputrc,找到下面几行去掉前面注释.
    #set meta-flag on
    #set convert-meta off
    #set input-meta on
    #set output-meta on

    2. 让ls和less命令支持中文显示
    编辑文件/home/zhang/.bashrc中,添加下面两行
    alias ls='ls -hF --show-control-chars --color=tty'
    export LESSCHARSET=latin1

    3. sqlite3安装
    cygwin已经安转了400M+ , 能装的都给装上,下面安装sqlite3。
    从下面网址下载...
  • 2007-09-16

    gcc 扩展typeof - [编程]

    Tag:C

    (FROM :  )
    Another way to refer to the type of an expression is with typeof. The syntax of using of this keyword looks like sizeof, but the construct acts semantically like a type name defined with typedef.

    There are two ways of writing the argument to typeof: with an expression or with a type. Here is an example with an expression:

         typeof (x[0](1))

  • ubuntu有内置的pppoe拨号软件, 手动添加PPPOE的方法如下:首先打开终端,输入命令:sudo pppoeconf  
    然后看到类似这样的配置窗口,一路进行下去就行了,中途有个地方提示您需要输入adsl用户名和密码。
    以后,要手工拨号上网,打开终端,输入命令:sudo pon dsl-provider
     
    一般情况下,一次拨通后以后登陆ubuntu都会自动拨通上网的了,不用每次都输入命令拨号。
     
    如果没有自动连接,可能是您刚才的配置文件没有正确保存,那我们可以这样做:
    打开/etc/ppp/peers/dsl-provider后,手工加了一行password ****的记录后,下次就自动连接了。  
    手工断线的命...
  • 新笔记本dell 630 装 ubuntu比较郁闷,主要问题出现在显卡驱动(NVidia quadro nvs 135m)上,让我折腾了很久。昨天看到了loudmouth网友用Live CD 7.04的安装方法,试了一下果然安装好了,现在用起来很爽.
    摘录如下:

    -------------------
    文章来源:  http://www.51nb.com/?uid-3604-action-viewspace-itemid-9595

    第一步准备CD。
    因为在老台式机上面装过,所以有一张可以安装的Ubuntu Desktop的live CD,7.04版自己burn的。另外还有一张6.10版的dvd,也是自己burn的。分区这边就不怎么说了。我分了一个200M左右的primary...
  • 2007-08-27

    grep使用指南 - [软件与系统]

    Tag:
    http://hi.baidu.com/ybsolar/blog/item/717d517a3a9090ef2e73b3ea.html
    1. grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包 括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的...
  • 有意思的文章。贾宝玉见到林妹妹的似曾相识不觉得神秘,一见钟情时说的似曾相识也不是假的,如果这样的感觉可以制造出来,就没有什么浪漫而言了。看这篇文章:

    http://www.csonline.com.cn/cshotnews/2/200706/09/t20070609_706042.htm

        大多数人曾有过“似曾相识”的经历。美国研究人员已经确定导致这一感觉发生的大脑区域,并认为这一发现有助于治疗与记忆力相关的疾病。

        据路透社8...
  • WinXP 下Code::blocks1.0rc2 + WxWidgets2.8.4环境设置 
    1. 安装Code::Blocks, 稳定版本codeblocks-1.0rc2_mingw
       http://www.codeblocks.org/downloads.shtml
       选择下载Code::Blocks IDE (Windows binaries)条目下的"Code::Blocks IDE, with MINGW compiler"安装.

    2.安装WxWidgets 目前版本wxMSW-2.8.4
      htt...
  • 2007-07-11

    内存管理 - [编程]

    Tag:
     最近看了Programming from Ground Up的第九章内存管理主题。

    在Linux中每一个进程都可以访问0-4G的虚拟线性内存地址,而其中0-3G(0xc0000000)为用户空间,用户进程可以访问其中任何一个地址。这个最大值(0xc0000000)在Linux中通常被定义为TASK_SIZE,这个值也就是用户空间所能访问的极限。从3G-4G的虚拟内存地址空间为内核态地址空间,其中存放的数据由所有进程共享但只能由内核访问,用户进程不能访问。用户进程可以通过中断或者系统调用使操作系统的用户态切换到内核态来访问内核态数据。
     
    每个程序都认为自己被装载到0x0804800开始内存,并且其栈从0xbfffffff向下增长的.当装载一个程序时,先从内存在中找一段未用的内存,告诉处理器我要以虚拟地址0x0804800 来...
  • 今天看了Programming from Ground Up的第八章Sharing Functions with Code Libraries,主要讲的是共享库.

    有两种方法使用lib库
        static library 连接时连接器将产生一个独立的object文件(这些object文件保存着程序所要引用的函数和数据)的copy。
        shared library 用这样连接出来的程序仅在可执行程序中存储着共享库的名字和一些程序引用到的标号。在运行时,动态连接器(在ELF中也叫做程序解释器)将把共享库映象到进程的虚拟地址空间里去,通过名字解析在共享库中的标号。该处理过程也称为动态连接(dynamic linking)

    一个简单的汇编使用libc链接库的例子如下:
    ...
  • 2007-07-08

    汇编语言函数调用过程 - [编程]

    Tag:
    今天看了Programming from the Ground Up的函数(Page 53)调用一章,对汇编语言函数调用有了一些了解。在汇编语言中需要调用函数时要call这个函数名,函数的执行过程如下:

    准备执行

      在主程序中每次调用函数时,先依次把各参数以相反的顺序入栈;
      然后call func_name, 这里call要做两件事: 一是把函数的返回地址入栈,二是让指令执行指针%eip指向函数开始处。


    开始执行

       现在函数要开始执行了,但它还有一点小事要做,首先把原来的基地址寄存器%ebp值入栈,因为在程序执行中%ebp要另作它用,接着堆栈指针%esp的值复制给%ebp, 此后在函数 执行中%ebp一直保持...
  • 2007-07-05

    这一年看过的书 - [生活]

    Tag:
    前两天整理一下,发现从2006年8月到2007年6月这一年看了不少书。其中读超过3/4内容的 list 如下

    所谓教授
    Linux标准教程
    Red Hat Linux 9应用基础教程(机械工业出版社)
    UNIX环境高级编程(W.Richard Stevens & Stephen A.Rago)
    梁实秋散文集
    王小波全集:红佛夜奔/黄金时代/革命时期的爱情
    Unix入门经典(Paul Love著)
    Qt程序设计(清华出版社)
    24学时学通qt编程
    Linux 网络编程 (清华出版社)
    Internet协议概念与实践 (施威铭研究室) 
    现代天文学十五讲 (北京大学出版社)
    C++ Pri...
  • 2007-06-19

    粽子节 - [生活]

    Tag:
        今天农历五月初五端午节。

        现在我对节日的概念已经淡化,没有什么感觉了。 端午节是中华民族伟大的传统节日,可以联系起纪念屈原、包粽子、赛龙舟、挂艾草等等。 可是现在我们生活的周围相关的节日风俗已经退化,缺少传统文化的继承,端午节这一天好像也只保留吃粽子这个习俗。

        回想起自己小的时候在家,每年的端午节家家户户都是要很隆重准备的。粽子自然是少不了,家里有现成的糯米,家周围的池塘也可以采到新鲜硕大的芦叶。每一支粽子里面夹着一个枣子或者几个葡萄干,就是无比的美味。我也跟着父母学着包几个的,惭愧总是扎不紧露出米来。在煮粽子的时候,锅里就渐渐地飘出了那种棕叶诱人的清香味道。

        端午节那天早晨, 每家每户都把艾草插在...
  • 安装

    查看软件xxx安装内容:
    dpkg -L python
    查找软件:
    apt-cache search 正则表达式
    查找文件属于哪个包:
    dpkg -S filename
    如果想看某包是否已经安装:
     dpkg -s gedit
    查询软件xxx依赖哪些包:
    apt-cache depends xxx
    查询软件xxx被哪些包依赖:
    apt-cache rdepends xxx
    系统升级:
    sudo apt-get upgrade
    sudo apt-get dist-upgrade


    系统

    查看内核
    uname -a
    查看Ubuntu版本
    cat /etc/is...
  • 2007-06-07

    awk编程 - [软件与系统]

    Tag:Linux
    这两天看了 linux 的awk编程,教程来源于下面网址
    http://www.ibm.com/developerworks/cn/linux/shell/awk/awk-1/
    总结一下:

    1. FS 字段分隔符变量, FS=":"表示字段以:分割,FS=":+"表示以一个或多个:分割
       RS 记录分隔符变量,设RS=""表示记录以空行分隔
       OFS 字段分隔符,如设置OFS=":",那么print多个变量时候用:连接。默认空格
     &nb...
  • 2007-06-01

    为什么会陷入死循环 - [编程]

    Tag:C
     看似简单的一段程序如下:
     int main()
    {
       int i,j[8];
       for(i=0;i<=8;i++)
        j[i]=0;
       return 0;

        gcc编译运行会陷入死循环.  
     
        因为变量 i 和数组 j[8]是保存在栈中,默认是由高地址向低地址方向存储. 输出变量地址可以发现: i 存储位置在0xbfd90dec, j[0]、j[1]...j[7]在内存的地址分别是0xbfdab0...
  • 2007-05-27

    CAO~CZO是什么意思? - [其它]

    Tag:
    CAO: Art 艺术总监
    CBO: Business 商务总监
    CCO: Content 内容总监
    CDO: Development 开发总监
    CEO: Executive 首席执行官
    CFO: Finance 财务总监
    CGO: Gonverment 政府关系
    CHO: Human resource 人事总监
    CIO: Information 技术总监
    CJO: Jet 把营运指标都加一个或多个零使公司市值像火箭般上升的人
    CKO: Knowledge 知识总监...
  • 2007-05-24

    Linux汇编 - [软件与系统]

    Tag:Linux
    Linux下汇编采用AT&T语法,与INTEL汇编有所不同。相关语法和两者之间的区别见附后链接的两篇文章.下面是我尝试使用汇编程序的helloworld例子和汇编与C内联例子.

    1.编译汇编(AT&T)代码
    hello.s
    ============================================
    #hello.s
    .data # 数据段声明
    msg : .string "Hello, world!\\n" # 要输出的字符串
    len = . - msg # 字串长度
    .text # 代码段声明
    .global _start # 指定入口函数
    _start: # 在屏幕上显示一个字符串
    movl $len, %edx # 参数三:字符串长度
    movl $msg, %ecx # 参...
  • 2007-05-20

    Linux系统相关信息 - [编程]

    Tag:Linux
    终端shell命令 uname -a 输出系统的相关信息
    #uname -a
      Linux chaos 2.6.9-42.0.2.EL.1.cernsmp #1 SMP Fri Sep 8 15:19:18 CEST 2006 x86_64

    程序实现:
    #include <sys/utsname.h>
    #include <stdio.h>
    int main()
    {
        struct utsname buf;
        if(uname(&buf) < 0)
            return -1;
    ...
  • 2007-05-17

    二维数组 - [编程]

    Tag:C
    已知二维数组: int a[10][10],下面每一列等价
    a      
    a[i],*(a+i),*a 
    a+1,&a[1]
    a[1],*(a+1)
    a[1]+2,*(a+1)+2,&a[1][2]
    *(a[1]+2),*(*(a+1)+2),a[1][2]

    1. int a[10][10]
       int *p,i;
       p=a[3]; //使p指向a[3]这个数组(大小为10)的首地址,sizeof(p)=10*sizeof(int)
       i=*p[2]; //*p[2]表示a[3][2]
       下...
  • 新光盘安装了ubuntu 7.04, 选择了中文环境后发现还是不能输入中文。
    先安装
    #sudo apt-get install scim scim-chinese  scim-gtk2-immodule scim-tables-zh
    没什么效果。后来从网上找到一个成功的方法.

    解决方案如下:

    在 系统->系统管理->语言支持 里选择 Chinese 并且把默认的选项也选为Chinese 。

    如果还是不能通过Ctrl+Space 唤出Scim,那么就在命令行下输入 scim -d 就可以唤出它了。
    说明:scim -d 的意思是把scim作为daemon启动。
    或者直接在 /home/<yourname>/.co...
  • 2007-05-08

    C语言中的格式符 - [编程]

    Tag:C
    格式符即在printf()中的%x
     
     d/i 以大符号的十进制形式输出整数(整数不输出符号)
     o 以八进制无符号形式输出整数(不输出前导符)
     x,X 以十六进制无符号形式输出整数(大小写)
     u 用于输出unsigned类型数据
     f 实数格式输出,6位小数
     e 以指数形式输出实数,输出13位,其中:1位整数,1位小数点,6位小数,5位指数(含字符e和指数的符号)
     g 根据数值大小,自动选择f或e格式输出。
     c 以字符形式输出,只输出一个字符
     s 输出字符串

    另: printf("%#x\n",20);
     输出...
  • 在安装目录下找到 _vimrc文件,打开再最末尾添加:
    colorscheme darkblue     "设置深蓝色界面
    set tabstop=4     "设置tab宽度为4个空格大小
    set shiftwidth=4   "设置缩进4个空格


  • 由编译器自动分配释放管理。局部变量及每次函数调用时返回地址、以及调用者的环境信息(例如某些机器寄存器)都存放在栈中。新被调用的函数在栈上为其自动和临时变量分配存储空间。通过以这种方式使用栈,
  • 2007-05-01

    五一快乐节 - [生活]

    Tag:Linux C
    终于在今天晚上,赶在"五一"节间夕把我的程序基本完成,目前主要功能全部实现,还剩下一点
    小事就是在程序几个关键部位添加log.file纪录,以及测试。

    这并不是一个很大的程序,所有手写代码加起来大约才1000+行,用到C/C++、sqlite3数据库C接口sql查询、Qt3作界面、系统相关的线程管理和同步等等。从拿到文档到现在一共半个多月里,我在写程序的过程中,确实是学到了很多东西。

    对于C/C++我比较熟悉,用于实现基本数据处理算法和Qt程序类继承实现。这期间阅读了primer c++的标准库,并且在我的程序里面尝试使用了vector,相比于数组和链表实在是太方便了,vector的最大好处是可以动态生成数组,自由插入元素。对于缓冲区溢出也有所接触。以前并没有太在意缓冲区溢出问题,觉得溢出就溢出了,这次确让我...
  • 最近我正在Linux平台写一个软件,需要用到一个简单的数据库。mysql做数据库固然很好,但其数据是存放在服务器的。我想要的基本功能也就是使用C程序创建一个数据库本地文件,然后可以对这个数据库文件执行基本的sql操作. 就像在Windows平台基于VC6.0的DAO数据库编程一样(创建一个本地文件.mdb).

    从网上找到了一个开源免费的数据库开发工具--sqlite, 网上的关于sqlite的介绍有很多,详细见官方网站:
  • 2007-04-23

    C函数提取文件名编号 - [编程]

    Tag:C
    现在在做一个软件,遇到这样一个小问题:从目录字符串 "/home/foxman/source_data/234.bin" 中提取出文件数字编号234。C/C++处理字符串的能力并不是很强,所以想到下面的实现代码:
    #include "stdio.h"
    #include "string.h"
    #include "stdlib.h"

    int main()
    {
     char *filename="/home/foxman/source_data/234.bin";
     char *p=rindex(filename,'...