Jarod@termainal$ tail * >> blog

A Developer's Notebook

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  24 Posts :: 9 Stories :: 12 Comments :: 0 Trackbacks

#

以前在Linux一直都不能写NTFS分区,能读NTFS分区的东西都已经很满足了。今天无意中发现了一个Linux的NTFS驱动,支持读/写NTFS分区。这个驱动叫做NTFS-3G,官方网站为http://www.ntfs-3g.org/。
我用的Linux发行版为Ubuntu edgy elf,在apt-get源里有现成的2进制版本,安装很方便。如果使用的Linux发行版找不到相应二进制版本,就下载源码按照官网的说明安装也不复杂。
安装好后编辑/etc/fstab文件,在里面添加一行配置,跟挂载fat32差不多,分区类型一栏写"ntfs-3g"就OK了,例如:
/dev/hda1 /mnt/windows ntfs-3g defaults 0 0


10/28/2007:
添加到kubuntuguide.org里了
http://kubuntuguide.org/Feisty#Mounting_NTFS_Partitions.28with_read.2Fwrite_privilege.29
posted @ 2006-11-04 23:38 Jarod 阅读(438) | 评论 (0)编辑 收藏

本来是由于某个问题想用反射来解决,使用前作个小测试(我的应用都是用JDK1.4.2)。然后顺便把1.5的也测了。看到这个数据,不禁想到Hibernate,Spring这类依赖反射的框架是否更加适合运行在JDK1.4平台上。
补:后来在1.6上测了测,性能提高了不少,1.6真的是值得期待

Java 1.5
Reflection | Normal
3685|210
3696|210
4086|211
3685|211
3775|210
3696|210

Java 1.4.2
Reflection | Normal

3295|340
3325|370
3295|340
3315|350
3305|340
3285|330


Java 1.6 beta2
Reflection | Normal
2954|200
2644|581
3005|170
2944|190
2684|170
3014|191

测试代码

posted @ 2006-09-27 08:28 Jarod 阅读(662) | 评论 (0)编辑 收藏

单例是一个很常用的设计模式,以前一直都以为做到double-checked就已经线程安全了。直到无意中看到DeveloperWorks的这篇文章 Double-checked locking and the Singleton pattern才知道还有更多要做的。。。
posted @ 2006-09-26 12:30 Jarod 阅读(241) | 评论 (0)编辑 收藏

最近因项目需求,需要在JS代码中实现IFrame内外页面的互访问。经过一番试验终于找到方法,以下是试验时用的代码(在IE,Firefox中可正常运行):

main.html
 1 <html>
 2 <head>
 3     <title>MAIN</title>
 4     <script type="text/javascript">
 5         // 主页面访问IFrame页面DOM内容
 6         function oinit() {
 7             alert(getIFrameDoc("iframe1").getElementById("idiv").id);
 8         }
 9         function getIFrameDoc(id) {
10             var iframe = document.getElementById(id);
11             var doc = (iframe.contentWindow || iframe.contentDocument);
12             if (doc.document) {
13                 doc = doc.document;
14             }
15             return doc;
16         }
17     </script>
18 </head>
19 <body onload="oinit()">
20     <div id="odiv">
21         <iframe id="iframe1" src="iframe.html"></iframe>
22     </div>
23 </body>
24 </html>

iframe.html
 1 <html>
 2 <head>
 3     <title>IFRAME</title>
 4     <script type="text/javascript">
 5         // IFrame页面访问外层页面DOM内容
 6         function iinit() {
 7             alert(window.parent.document.getElementById("odiv").id);
 8         }
 9     </script>
10 </head>
11 <body onload="iinit()">
12     <div id="idiv">
13 </body>
14 </html>



posted @ 2006-08-25 20:25 Jarod 阅读(491) | 评论 (2)编辑 收藏

JS中对网址进行转义有三个方法,分别是escape(), encodeURI(), encodeURIComponent()
这三个方法都是把网址中的非ASCII字符转为%XX的形式

三个方法的区别是分别有些字符是不做转义的:
escape()              - @*/+
encodeURI()           -
!@#$&*()=:/;?+'
encodeURIComponent()  -
!*()'
posted @ 2006-08-02 21:03 Jarod 阅读(453) | 评论 (0)编辑 收藏

我有个项目是用Maven2管理Jar包的,最近加入了commons-httpclient-alpha1,在pom中加入了httpclient。直到运行时才发现缺少包commons-codec。也就是说maven2没有自动下载httpclient所依赖的包。最后还要自己在pom中加入commons-codec。看来maven2这东西也不太可靠
posted @ 2006-07-27 15:03 Jarod 阅读(226) | 评论 (0)编辑 收藏

  • XmlHttpRequest
    描述:当使用get方法获取内容时,IE会直接从缓存取内容,就算服务器有更新也一样
    解决:1)不管3721一率采用post方法;2)在URL加上随机参数值;3)在HTTP头加上If-Modified-Since,设成过去时间值。


  • table, tr标签的innerHTML只读
    描述:在FF中可写,但在IE中级table,tr的innerHTML赋值会出未知运行时错误
    解决:1)避而不用,嵌套多一层div;2)听说可以为IE的innerHTML扩展setter;


  • JSON构造中的小逗号
    描述:var json = {a:10,b:10,c:10,}在FF中没事,在IE中出错
    解决:。。。


  • select的option
    描述:firefox中可以通过option的disabled属性使选项无效,可恶的IE竟然无视这个属性。
    解决:无


  • img的onload(参考
    在IE要绑定onload到img中,只能在html中做,通过js做绑定是不行的
    只能这样写
    <script> function img_onload() {}</script>
    <img onload="img_onload"/>



posted @ 2006-07-19 22:35 Jarod 阅读(697) | 评论 (4)编辑 收藏

三、安装apache、PHP、phpMyAdmin和resin

apache安装:

apache的安装我选择了源码版,用以下命令安装:
tar xfj httpd-2.0.55.tar.bz2
cd httpd-2.0.55
./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
&& make && make install

  so模块用来提供DSO支持的apachehe核心模块(与PHP集成必须); --enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块
  安装完后进入/usr/local/apache2/bin,运行./apachectl start。在浏览器进入localhost如果能看到apache默认页面就没问题了。



PHP安装:

用以下命令安装:
tar xfj php-5.1.2.tar.bz2
cd php-5.1.2
./configure --prefix=/usr/local/php --enable-mbstring --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs && make && make install

--enable-mbstring是让PHP支持中文字符集,--with-mysql,--with-apxs2分别是PHP与MYSQL,APACHE集成的支持
默认配置文件

如果按照上面的方式编译PHP,在$HTTPD_HOME/conf/httpd.conf中会加入一句
LoadModule php5_module modules/libphp5.so

如果没有的可以把modules/libphp5.so改成指向libphp5.so的文件名


在$HTTPD_HOME/conf/httpd.conf中加入
    AddType application/x-httpd-php .php .phtml
    AddType application/x-httpd-php-source .phps


phpMyAdmin安装:

tar xfj phpMyAdmin-2.8.0.1.tar.bz2
mv phpMyAdmin-2.8.0.1 /usr/local/apache2/htdocs/phpMyAdmin

进入
/usr/local/apache2/htdocs/phpMyAdmin/libraries,
cp config.default.php ../config.inc.php

phpMyAdmin默认的验证模式为config,即数据库的用户名密码写入config.inc.php文件。改为cookie模式就可以在登陆时自己输用户名密码

编辑config.inc.php文件
$cfg['blowfish_secret'] = '随便一个字符串';
$cfg['Servers'][$i]['auth_type']     = 'cookie';

启动apache,在浏览器进入localhost/phpMyAdmin/index.php测试


resin
安装

通过以下命令安装:
tar xfz resin-3.0.18.tar.gz
mv resin-3.0.18 /usr/local
ln -s resin-3.0.18 resin
cd resin
./configure --with-apache=/usr/local/apache2/ && make && make install

启动apache, 通过bin/httpd.sh运行resin。在浏览器进入http://localhost/resin-doc/测试
posted @ 2006-03-11 13:16 Jarod 阅读(404) | 评论 (0)编辑 收藏

  在Linux下配置Java的开发环境以前也有好几次了,但时间一长,总有不少细节会忘了,到重新要配置时又要花不少时间去解决这些再次遇到的小问题。这次就写下来吧,做个笔记,以后再要配置时就省时了。
  以下是这次要配置的环境:
Linux:FC4
JDK:1.4.2
服务器:apache-2.0.55 + resin-3.0.18
数据库:mysql-4.1.18 + phpMyAdmin-2.8



一、安装、配置JDK

安装:
  官网上有两种版本的JDK下载。我下载回来的JDK文件名为:j2sdk-1_4_2_11-linux-i586.bin_File_j2sdk-1_4_2_11-linux-i586.bin。这个在官网上称为自解压版,这个版本我还是第一次下。以前用的都是RPM版。两者的区别就在于,自解压版运行后就在当前目录产生个JDK的目录。RPM版则直接安装到指定的目录。通常为/usr/java/jdk-version目录。
  在安装目录上我有个建议,就是都装到/usr/java的子目录下,然后做个链接成/usr/java/jdk。如,我这里看装后的路径为/usr/java/j2sdk1.4.2_11。可以通过以下命令建立一个软链接。
ln -s /usr/java/j2sdk1.4.2_11 /usr/java/jdk
  这样做的好处就是当有几个JDK并存时,要改变默认JDK的版本只要改变这个软链接就OK了。而且跟JDK相关的各种环境变量也不用变来变去,就把JAVA_HOME指向/usr/java/jdk就行了。
  至于CLASSPATH的配置我就不用说了,因为我一向都是用IDE或者是ANT的,配CLASSPATH对我来说没意义。


中文支持的配置:
  这个步骤好像不是必须的,因为听网上的一些朋友说有些Linux发行版在装好JDK后直接就支持中文。在配置前可以先运行一下$JAVA_HOME/jre/bin/ControlPanel和其它中文程序看是否可以正确显示中文(Linux的locale要设成中文ControlPanel才是中文的)。
  进入$JAVA_HOME/jre/lib目录。拷贝一份font.properties.zh_CN.Redhat覆盖原来的font.properties文件。然后把font.properties以外的font.properties_***文件都删了。打开font.properties在最后一行会有类似下面的代码:

filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1 =/usr/share/fonts/zh_CN/TrueType/zysong.ttf

把后面的/usr/share/fonts/zh_CN/TrueType/zysong.ttf改成自己的中文字体所在位置,如simsun或VeraSansYuanTi。simsun可以在windows的font目录里找到,VeraSansYuanTi可以在Linux公社下载。

如果用JDK5.0的可以参考这篇文章:http://addone.blogchina.com/blog/187527.html




二、MYSQL

  在MySQL的下载页上有很多版本可供下载。由于我装MySQL只是作为开发用途,并不是作服务器,因此可以选择最简单的版本来下载。如:标准二进制版或对应Linux发行版的RPM包等。 我下载的是标准二进制版,文件名为:mysql-standard-4.1.18-pc-linux-gnu-i686.tar.gz。解压后就是一个已经编译,初始化好的文件夹。解压好后把文件夹移到某个目录,我这里为/usr/local/database/mysql41。然后建立软链接:
ln -s /usr/local/database/mysql41 /usr/local/mysql

  由于mysql里很多默认设置都是指向/usr/local/mysql目录的,链到这里就省了不少事。我这里不直接把数据库放到/usr/local/mysql,而是通过链接,也是为了可以多版本共存。因为4.0, 4.1, 5.0这几多版本都比较多用,而且差别又比较大,所以共存的必要还是有的。
  把$MYSQL_HOME/support-files/my-small.cnf拷贝到$MYSQL_HOME/data/my.cnf,建立一个软链接:
ln -s /usr/local/mysql/data/my.cnf /etc/my.cnf

  编辑my.cnf文件,分别在以下区加入下面的行,这里的编码都用UTF-8

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
default-storage-engine=INNODB

其中字符集的设置只有在4.1以后的版本才支持。这样设置了,建立数据库时默认就使用UTF-8编码,而且只要connector/j的版本号大于3.1,建立数据库链接时会自动使用数据库的编码。
  在MYSQL>4.1 && connector/j > 3.1时,JDBC链接URL为:
jdbc:mysql://
<host>/<database>?useServerPrepStmts=false
  否则要在链接上指定连接编码:
jdbc:mysql://<host>/<database>?useUnicode=true&characterEncoding=utf-8

至于default-storage-engine=INNODB,则在当你的程序需要用到事务时可以方便点,就算没用到也没所谓,反正只是个开发环境,方便就OK。

再为启动MYSQLD进程添加用户,执行以下命令:

添加用户组
groupadd mysql
添加用户
useradd -g mysql mysql
设置MYSQL目录的拥有者
chown -R root  .
设置数据文件目录拥有者
chown -R mysql data
设置目录所属组
chgrp -R mysql .
安装初始数据库
scripts/mysql_install_db --user=mysql
启动进程
bin/mysqld_safe --user=mysql &

如果没有显示mysqld end之类的字眼,通常都是正常启动了。


如果需要MYSQL开机时自动启动的:拷贝$MYSQL_HOME/support-files/mysql-server到/etc/rc.d/init.d/mysqld
再执行chkconfig --add mysqld即可

因为我试过4, 5版的MYSQL启动脚本是可以通用的,所以这里就不用再搞链接了。。。

posted @ 2006-03-05 10:13 Jarod 阅读(504) | 评论 (0)编辑 收藏

仅列出标题
共2页: 上一页 1 2