<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>Tommy&#039;s Blog</title>
	<link>http://blogs.gaixie.org/tommy</link>
	<description>life, family, technology... whatever.</description>
	<lastBuildDate>Tue, 03 Aug 2010 07:03:54 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	<!-- generator="WordPress/3.0.1" -->

	<item>
		<title>在处理 JavaBean 时，boolean 和 Boolean 的不同</title>
		<description><![CDATA[昨天在写一个 JavaBean 相关的程序时，发现不能正常的通过 getReadMethod().invoke(...) 读取 一个 Boolean 的属性值，最后总算找到了原因，真相总是如此简单! 首先这个属性在Bean中的定义如下： ...... private boolean married = false; private Boolean hasChildren; &#160; ...... &#160; public void setMarried&#40;boolean married&#41; &#123; this.married = married; &#125; public boolean isMarried&#40;&#41; &#123; return married; &#125; &#160; public void setHasChildren&#40;Boolean hasChildren&#41; &#123; this.hasChildren = hasChildren; &#125; public Boolean isHasChildren&#40;&#41; &#123; return hasChildren; &#125; &#160; [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=65</link>
			</item>
	<item>
		<title>将Extjs放入Maven中心库</title>
		<description><![CDATA[总算比较完美的解决了extjs在maven下的依赖问题，过程如下： 首先将extjs作为一个单独的maven项目，通过maven-assembly-plugin插件做成一个zip包。 然后通过sonatype同步的maven中心库，这步最复杂 + 首先要向sonatype申请，主要是说明一下你的项目，例如它的描述，项目主页，代码库的位置等。 + 如果批准，你就可以通过maven-deploy-plugin插件将的包deploy到sonatype的一个零时库。 + 进入零时库后，你要通过一个管理界面将包放到sonatype的正式库，这步需要检验你的包是否规范，什么license, gpg签名，scm等信息一样都不能少。 + 如果进入sonatype的正式库，再向sonatype提出申请，要求激活与maven中心库的同步。 + 如果激活，过几个小时，就能看到你的包了。看看我的！ 以后有新版本，就不用再申请，只要保证你的包格式规范就行了。 全部过程最多也就2天时间，如果没有时差，估计更快。 大家以后再也不用在自己的代码库中保存extjs那一大堆文件了，直接通过maven导入extjs，如果有新版本的需要，请email给我。 ... &#60;dependency&#62; &#60;groupId&#62;org.gaixie.extjs-wrapped&#60;/groupId&#62; &#60;artifactId&#62;extjs-wrapped&#60;/artifactId&#62; &#60;version&#62;3.2.1&#60;/version&#62; &#60;type&#62;zip&#60;/type&#62; &#60;/dependency&#62; ... 然后通过 maven-war-plugin 插件的 overlay 把它解压到你的web项目目录中，配一下jetty，就可以很方便的调试了。可以参考我写的pom。 我是参考这几篇文章操作的： [1] http://www.jroller.com/holy/entry/releasing_a_project_to_maven [1] https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=57</link>
			</item>
	<item>
		<title>PostgreSQL 与 Slony-I 的安装配置</title>
		<description><![CDATA[公司主要使用的是 PostgreSQL 数据库，最近人员变动，我需要尽快掌握数据库实时备份的相关知识，一旦 master 数据库服务器出现故障，可以迅速的切换到 slave 数据库。本文档的测试环境，如下表： Master 192.168.0.194 Slave 192.168.0.199 操作系统 Fedora 12 Ubuntu 9.10 PostgreSQL 8.4.3 8.4.2 SlonyI 1.2.20 1.2.20 文档结构主要分为下面几个部分： 安装相关的软件包 配置 master 和 slave 数据库 SlonyI 的同步测试 数据库切换 Schema 改动 常见问题 参考文档 安装相关的软件包 ~~~~~~~~~~~~~ + Fedora sudo yum install postgresql-server PostgreSQL 装好后会自动创建一个名为 postgres 的数据库管理员用户，此用户没有密码，可用 root su 过去。 $ su -l postgres [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=55</link>
			</item>
	<item>
		<title>Fedora 12 下配置Huawei EC1260 3G无线网卡</title>
		<description><![CDATA[Huawei EC1260 是一款中国电信的3G无线网卡，在Ubuntu 9.10上无须任何配置就可以运行，在Fedora 12上，却始终无法正常工作。试了很多方法，最后总算找到了解决方案。 kernel version: 2.6.32.9-70 usb_modeswitch version: 1.0.5 安装配置usb_modeswitch ~~~~~~~~~~~~~~~~~~~~~ 初次插入EC1260时，系统能自动识别Usb设备。 $ lsusb ... ID 12d1:1446 Huawei Technologies Co., Ltd.... 表示此usb 设备的 vendor = 0x12d1 , product = 0&#215;1446，但0&#215;1446这个设备并不是modem，而是zeroCD，它是一个存贮设备，里面有一些厂商提供的驱动(可以认为此模式下EC1260就是一个优盘)。所以，要把EC1260中第二个设备驱起来(也就是关键的3G Modem)，就需要安装一个usb_modeswitch的软件包，它的作用是切换网卡的工作模式，例如从zeroCD切换到modem。 $ sudo yum install usb_modeswitch 编辑usb_modeswitch的配置文件 $ sudo vi /etc/usb_modeswitch.conf 找找有没有 EC1260的配置项，有的话就打开注释，没有就添加下面内容 ######################################################## # Huawei EC1260 # DefaultVendor= 0x12d1 DefaultProduct= 0x1446 MessageEndPoint= [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=51</link>
			</item>
	<item>
		<title>在Fedora 12上安装配置WordPress</title>
		<description><![CDATA[WordPress安装很简单，网上相关文档也很多，写此文档的目的是下次在Fedora上配置WordPress时，可以不用动脑子的 Ctrl+c, Ctrl+v。 安装Apache, MySQL, PHP ~~~~~~~~~~~~~~~~~~~~~ 如果在安装Fedora 12的时候选择了安装Web Server，那么Apache 和PHP引擎都会被默认安装。 执行下面命令进行MySQL安装时，会安装一个依赖包：perl-DBD-MySQL $ sudo yum install mysql mysql-server 设置boot时运行级别2,3,5启动mysqld，运行级别的说明见 /etc/inittab 注释，如果要关闭，把on改为off $ sudo chkconfig --levels 235 mysqld on 先手动把mysql启动起来 $ sudo /etc/init.d/mysqld start 为MySQL的root设置密码 $ sudo mysqladmin -u root password "xxxx" 安装WordPress ~~~~~~~~~~~~ 下载相应的版本：http://wordpress.org/download/release-archive/ 。 Fedora的Apache默认的DocumentRoot是/var/www/html，所以WordPress应该安装到此目录下，然后通过http://localhost/tommy来访问 $ wget http://wordpress.org/wordpress-2.8.6.tar.gz $ tar xzvf wordpress-2.8.6.tar.gz $ sudo [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=48</link>
			</item>
	<item>
		<title>Eclipse默认的Java编译器</title>
		<description><![CDATA[开发编译器门槛很高，Java 的编译器数的上的也就下面几种： 1. javac : 不用介绍了，也是最常见的。 2. GCJ (Compiler for Java) : GNU 项目比较常用，绝大多数 Linux 发行版的默认 Java 编译器。 3. ECJ (Eclipse Compiler for Java) : 大名鼎鼎的 eclipse 内置的编译器。 如果你不想在 eclipse 中使用 ECJ，想使用 javac 或者是 GCJ，就需要使用 Ant，在build.xml中指定编译器，全局替换掉 eclipse 默认的 ECJ 好像比较困难。关于这个问题的讨论见： http://dev.eclipse.org/newslists/news.eclipse.tools/msg17370.html 正是因为有了 ECJ ，所以即使你只安装了 JRE，也可以在 eclipse 中进行编译，它基本上算是为 eclipse 量身定做，所以效率不错。 网上没找到有关它们性能权威的分析，只有几个不太权威的测试： http://blog.mikiobraun.de/2008/08/benchmarking-javac-vs-ecj-on-array.html http://www.jroller.com/andyl/entry/sun_javac_vs_eclipse_ecj 对我来说，上面任何一种编译器都是值得尊敬的杰作，足够满足我日常的开发需要。]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=46</link>
			</item>
	<item>
		<title>Understanding Java Virtual Machine(JVM) memory usage</title>
		<description><![CDATA[Concept ~~~~~~~~~~~ 最近写程序需要了解一些JVM内存使用的知识，网上搜了一大圈，真是说什么的都有，还是老老实实在JVM规范和SUN的论坛找答案吧。JVM使用的内存分为： Stack Memory (栈内存) : 虚拟机的每一个线程都有一个私有的栈，当一个方法被调用时，下面内容被作为一个Frame (帧)被创建并且被压入栈中： + 局部变量：包括基本数据类型，对象的引用和返回值地址。 + 一个自己的操作栈：帧内局部变量进行运算时使用，也用于传递方法的参数和接受方法的返回值。 + 一个当前方法所在类的Runtime constant pool (常量池)的引用。 方法调用完成时，帧出栈，并销毁，无论方法是正常结束还是有未捕获的异常。 Heap Memory(堆内存) : 虚拟机的堆内存保存的是对象，类变量以及实例变量，它被所有线程共享，常说的垃圾回收就是对堆内存的回收。 +-----------------------+ &#124; &#160; &#160;Stack Memory &#160; &#160; &#160; &#124; ----------> 线程私有 +-----------------------+ &#124; &#160; &#160; &#160; &#160; ^ &#160; &#160; &#160; &#160; &#160; &#160; &#124; -------+ +---------&#124;-------------+ &#160; &#160; &#160; &#160;&#124; &#124; [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=43</link>
			</item>
	<item>
		<title>Input chinese characters with emacs and scim</title>
		<description><![CDATA[不知是那儿配置有问题，在emacs下使用scim输入中文有时会出现乱码，下面是我摸索出来的规律： 环境：debian lenny , en_US.UTF-8 + 默认创建一份新文档(UTF-8)，能正常调出scim，但输入后显式为乱码。 + 如果文档本来就是UTF-8格式，并且包含汉字，则scim输入正常。 + 如果在.emacs中增加 (set-language-environment 'Chinese-GB)，则可以正常输入中文并显示，但是保存的文档格式为GBK，在其他编辑工具(如gedit)中打开会有乱码(默认是UTF-8，需要指定为GBK格式)。 + 如果在 .emacs 配置中加一行中文注释，如：;; 中文， 也能正常输入并显示，并且文件格式也是UTF-8。 + 如果用emacs中的内置输入法(setq default-input-method 'chinese-py-punct)， 一旦用 C+\ 激活了中文输入(甚至不用输入任何汉字)，紧接着 Ctrl+Space 调出scim，也可以正常输入。]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=41</link>
			</item>
	<item>
		<title>Install pptp-linux 1.7.2 on debian lenny</title>
		<description><![CDATA[同事给了我一个新的VPN帐号，windows能正常连接公司的VPN Server，可在linux中报下面错误： CHAP authentication failed: Authentication failed. CHAP authentication failed 查了半天，pptp-linux官方文档中的一句话点醒梦中人： if the passwords contain any special characters, quote them. 因为新帐号的密码含有特殊字符，只要将密码用双引号括起来就OK了。pptp-linux是个很好用的工具，感觉比Cisco官方的client（公司用的是Cisco设备）还要稳定。下面说说如何安装和配置pptp-linux： 安装 sudo aptitude install pptp-linux PPTP options $ sudo vi /etc/ppp/options.pptp options.pptp记录多个vpn连接的公用配置项，下面是我的配置： # Lock the port lock # Authentication # We don't need the tunnel server to authenticate itself noauth # We won't do [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=31</link>
			</item>
	<item>
		<title>Configuring Fetchmail, Exim4 and Mutt</title>
		<description><![CDATA[MailConcept ~~~~~~~~~~~~~ 配置Mutt比想象的要复杂，因为在此之前我基本上对邮件服务是一窍不通，所以还是先了解邮件的基本原理，它主要包括下面几个部分： MTA (Mail Transfer Agent): 邮件传输代理，主要负责将邮件转发到目的服务器的MTA，MTA之间的通讯采用SMTP (Simple Mail Transfer Protocol)协议。流行的软件有： + http://www.sendmail.org + http://www.exim.org + http://www.postfix.org MDA (Mail Delivery Agent): 邮件投递代理，当邮件到达目的主机，不用再继续转发的时候，MTA会将邮件交给MDA，由它来投递到相应用户。本文用到的http://www.procmail.org/就是一款流行的MDA。 MRA (Mail Retrieval Agent): 邮件获取代理，负责以POP或者IMAP协议将远程邮件服务器的邮件取到本机。fetchmail就是一款典型的MRA。 MUA (Mail User Agent) 邮件用户代理，也就是经常使用的邮件客户端，主要功能是让用户管理和读取存贮在用户目录上的邮件。包括对邮件内容的加密和解密。典型的MUA有Mutt, Outlook, Foxmail, kmail, evolution等。 Mutt于其他客户端不同的是，它没有内置smtp的访问，也就是说它不能直接发送邮件，官方对此的解释是 &#8220;one task per tool&#8221; 符合Unix哲学。不过Mutt内置了一些MRA的基本功能，为什么这么做，可以参考：http://wiki.mutt.org/?MailConcept。本文仍然使用一个独立的MRA。 下图会有助于你理解上面的概念： +----------------------------------+ &#124;domain A &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
		<link>http://blogs.gaixie.org/tommy/?p=25</link>
			</item>
</channel>
</rss>
