bart的自由天空's profilebart的自由天空PhotosBlogListsMore Tools Help

chen bart

bart的自由天空

I'm on my own way
Photo 1 of 3
May 06

Mark

I am still alive :)
May 20

武汉的最后一卷卫生纸

那天去超市买卫生纸,心想买几卷装的呢?突然发现,只需要买一卷了,而且是最后一卷了,拿着那卷心相印,心里徒然伤感起来
(isn't it digusting)

硕士论文致谢

致谢

首先诚挚地感谢导师张鹏林副教授及郑顺义副教授,两位老师悉心的教导使我得以一窥网络地理信息系统领域的深奥,不时地讨论并指点我正确的方向,使我在这些年中获益匪浅。老师对学问的严谨更是我辈学习的典范。

本论文的完成另外亦得感谢素未谋面的java JOGL社区的Ken Russel 先生大力协助。因为有你不厌其烦地通过网络为我的实验平台出谋划策,使得本论文的研究内容能够顺利保质地完成。

   两年里的日子,实验室里共同生活的点滴,学术上的讨论、生活中的扶持都让我难忘和不舍。感谢众位学长姐、同学、学弟妹的共同砥砺,你们的陪伴让两年的研究生活变得绚丽多彩。

感谢刘永亮、支晓栋、谭宁生同学不厌其烦地指出我研究中的缺失,且总能在我迷惘时为我解惑。也感谢赵文娜、郑红晓、阮柏林同学的一如既往地帮忙,以及同寝的张毅、郭鹏飞、武功成同学的陪伴,一同走过这人生中宝贵的两年。实验室的牛金玲学妹、邓德彦学弟们当然也不能忘记,你们的帮助我铭感在心。

  最后,谨以此文献给我挚爱的双亲。

May 10

在Web上使用基于JOGL技术的Applet

如何将在单机上调试好的applet使用在Web页面中呢?由于用到了JOGL技术,因此使用起来与一般的applet不同。在此,需要用到JOGL Applet的启动器(Launcher)。说是启动器,其实就是一个java-- JOGLAppletLauncherLilian Chamontin和其他JOGL社区的开发者合作开发了这个安装工具。JOGLAppletLauncher继承类Applet,它已经作为一个com.sun.opengl.util工具类被打包进jogl.jar进行发布。它需要开发者的主机有经过本地签名的jogl.jar 和所有的jogl-natives jar,并且所有jar中的证书必须一致。
   
开发这类applet的步骤很简单。首先,appelt中的标签“archive”参数必须包含
jogl.jargluegen-rt.jar以及和该applet相关的jar文件。
   
第二,服务器端用于包含applet中各种包的codebase路径下必须放入jogl.jargluegen-rt.jar和所有的jogl-natives-*.jargluegen-rt-natives-*.jar文件(这两者来自JOGL release builds提供的jogl-[version]-webstart.zip GlueGen runtime release builds提供的gluegen-rt-[version]-webstart.zip)。同时,该codebase路径中还要放入JOGL的本地库jogl.dllgluegen-rt.dlljogl_awt.dlljogl_cg.dll
   
根据以上的方法,作者所开发的三维地形显示applet—myApplet.jarWeb页面上的调用如下:

<applet code="com.sun.opengl.util.JOGLAppletLauncher"

     width=600

     height=400

     codebase="http://192.168.100.226:8080/myWork/lib"

     archive="jogl.jar,gluegen-rt.jar,myApplet.jar">

  <param name="subapplet.classname" VALUE="terrainApplet.AppletEntry">

  <param name="subapplet.displayname" VALUE="terrainApplet">

  <param name="subapplet.urlString" VALUE="http://192.168.100.226:8080/myWork/data">

  <param name="progressbar" value="true">

  <param name="cache_archive" VALUE="jogl.jar,gluegen-rt.jar,myApplet.jar">

  <param name="cache_archive_ex" VALUE="jogl.jar;preload,gluegen-rt.jar;preload,myApplet.jar;preload">

</applet>
    
其中标签参数subapplet.classname所指的是applet的入口类;
    
标签参数subapplet.displayname所指的是applet用来进行显示的类包(package);
    
标签参数subapplet.urlString是自设定的、applet读取服务器端数据的URL路径。

    JOGL的本地库和相关的包会自动下载到客户端的user's home路径下的.jogl_ext文件夹中。


   
另一个重要的问题是,由于applet在浏览器中运行时的权限是受限的,不能对本地文件进行读写,但是如果applet所在的jar文件如果是经过数字签名,并且用户信任该签名,那此applet则可对本地文件进行读写,相关内容已经在之前有所介绍,在这里主要论述本系统如何采用“数字签名”的方法实现applet下载到本地并进行读取。
   
首先,生成数字证书。在DOS环境中使用一下语句:

keytool -genkey -alias mykey -keystore mystore

运行此命令后,会提示填写相关信息。填写完毕之后,生成了一个名为mystorekeystore文件,该文件中保存有别名为mykey的数字证书。
   
第二,使用下面的语句对已经打好的、包含appletjar文件—myApplet.jar进行数字签名,当然需要注意证书和包的路径问题:

jarsigner -keystore mystore myApplet.jar mykey

同样地,对“archive”参数中包含的其他包-- jogl.jargluegen-rt.jar等也要做同样的操作。

至此,已经将“数字签名”的工作完成,这些jar文件就可以在Web页面中发挥作用了。

April 15

别,千万别

歌曲:别千万别
歌手:朴树 专辑:我去2000年

别,千万别
词曲:朴树

别做梦你已二十四岁了
生活已经严厉得象传达室李老伯
快别迷恋远方
看看你家的米缸
生活不在风花月
而是碗里酱醋盐
去面对那些生存的硝烟
你可知人情冷暖
你可知世事艰险
天真是一种罪
在你成人的世界
生活不在风花月
而是你辛辛苦苦从别人手里赚来的钱
让不成熟的都快成长吧
让不成熟的都快快地成长
让成熟了的都快开放吧
让成熟了的都通通的开放
这世界太快了
从不等待让我们很尴尬
它从不等待让我们很尴尬
它从不宽容让我们很尴尬
你去手忙脚步乱吧
快去手忙脚步乱吧
你去勾心斗角吧
快去勾心斗角吧
那面无表情的人就是你的未来
可别像隔壁老张整日哀叹表春已荒
可又让我怎么能
不做那些梦
那些梦......