Velocity Template Language: The unknown story

例示velocity模板语言中的一些陷阱 objects, strings, quotes #set ($var = $list) $var.class, $var   ## java.util.List, list.toString() #set ($var = ‘$list’) $var.class, $var   ## java.lang.String, "$list"  #set ($var = "$list") $var.class, $var   ## java.lang.String, list.toString()     ——————————— public field not treated as property $publicFieldBean.publicField    ##won’t work; velocity doesn’t recognize public fields as properties ——————————— maps are also supported $map.firstKey, …

Velocity Template Language: The unknown story Read More »

让mysql server打印trace日志

mysql server里面内置了一个类于似log4j的日志框架,以输出mysqld执行时产生的trace log. 要让mysql服务器在运行时输出此类trace log,可以这样启动mysql: (for version 5.1) mysqld –debug=d:F:L:n:O,trace.log:t 具体参数见下图:(摘自 ‘Expert MySQL’)

从java视角学习c++的文件组织、函数及对象的写法

从java视角看待c++代码的一些写法,挺有意思 1. 一个文件未必只定义一个类。实际上, 有的函数和变量可以不属于任何类 //playcpp.cpp文件 int main(){ cout << "hello world! "; return 0; } 2. 函数一般先声明,再定义 int doSum(int a, int b); //声明 int main(){ cout << "hello world! " << doSum(3, 5); return 0; } int doSum(int a, int b){ //定义 return a + b; } 3. 类与对象的写法 //声明类,当前文件是Person.h class Person{ private: //注意冒号 int …

从java视角学习c++的文件组织、函数及对象的写法 Read More »

linux下通过代码补丁升级开源软件

你的软件是通过编译开源软件安装好的,如果开源软件出了新版本,你如何更新你安装了的软件到新版本? 最简单的做法是下载新的版本,重新configure, make再install; 但它的缺点有:   1. 下载新版本的所有文件比较耗时   2. 重新configure意味着原有的配置会丢失,所以要预先整理出来,再configure一次;这样做很容易出错 另一种做法就是使用patch法。所谓patch,指的是版本更新中,具体改变了的代码内容(具体到行);把这个内容存为patch文件,再将这个文件以某个命令“打”到你原来的源码文件中,把它变成新的文件。也就是说,只更新需要更新的代码,同时,保留原来的config;等patch打好了,再进行编译和安装。 这里隐含了一个前提,即你上次安装软件时使用的源码在configure之后不会删掉。 总结一下步骤:    1. 安装1.0版的开源软件       a. 下载1.0版: xxx.1.0.tar.gz       b. 解压它到一个正式的目录中,一般是 /usr/local/src/xxx       c. configure       d. make       e. make install    2. 开源软件商放出1.01版,并提供了patch文件 xxx.patch.1.01    3. 升级到 1.01       a. 下载patch文件       b. 进入到 /usr/local/src/xxx, 打上补丁 xxx.patch.1.01       c. make       …

linux下通过代码补丁升级开源软件 Read More »

centos 5.7上编译构建可调试的mysql5.1

步骤: 0.安装g++:  yum install gcc-c++* 1.安装yum install ncurses-devel, 否则在./configure时可能会遇到 No curses/termcap library found错误  2. ./configure –with-debug –enable-mysql-maintainer-mode=no #如果没有后面这个参数,会导致warnings being treated as errors,一些警告就会导致安装失败 3. make 4. sudo make install 参考: http://book.51cto.com/art/201001/180782.htm http://hi.baidu.com/zys1234/blog/item/a9ae56019256541f1d9583d4.html http://bugs.mysql.com/bug.php?id=57989 http://www.blogjava.net/chenlb/archive/2007/03/20/105114.html的最后一个评论,解决redeclaration of C++ built-in type ‘bool’