2005年7月28日
#
关于MinGW中的glut库
Mark Kilgard提供的glut库解压后包含一个.h,一个.def,一个.lib和一个.dll文件。将.h拷贝到MinGW的include目录下,.dll拷贝到windows的系统目录下(windows\system32),.def和.lib文件在eclipse下面不太好使,可以使用reimp工具将.lib文件转换成.a文件。命令如下:
reimp glut32.lib
这样,就会在同一目录下生成一个glut32.def和一个libglut32.a文件,将libglut32.a拷贝到MinGW的lib目录下。同时记得要删除原来的glut库,否则link时可能会出错。
glut主程序框架
#include <GL/glut.h> //头文件。
int main(int argc, char** argv) {
//初始化glut并建立窗口
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SIGNLE | GLUT_RGB);
glutInitWindowPosition(100, 100);
glutInitWindowSize(200, 200);
glutCreateWindow(windowTitle);
//注册glut的callback函数
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutIdleFunc(idle);
glutKeyboardFunc(keyboard);
//启用光线、深度测试等
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
//进入glut主循环
glutMainLoop();
return 0;
}
安装开发平台
为了保持开发平台的一致性,采用GCC+eclipse作为开发平台。
在Debian Linux下安装GCC和make就可以了。安装了X环境后,系统中就已经包含了OpenGL的头文件和库文件,但是要使用GLUT的话,还需要安装GLUT的包。我使用的是freeglut3。
$sudo
apt
-
get install gcc make freeglut3
-
dev
在Windows下,GCC的解决方案有很多,我使用的是MinGW,可以下载DevCpp,它包括MinGW和一个C/C++的IDE,因为我使用eclipse作为IDE,所以,我使用MinGW的官方开发工具。到MinGW的官方网站上下载以下包:
binutils
gcc-core
gcc-g++
mingw32-make
mingw-runtime
mingw-utils
w32api
最后再下载调试器gdb。
为了能使用Mark Kilgard提供的glut库(http://www.xmission.com/~nate/glut.html),尽量下载最新的官方版本,该glut库要求binutils版本至少是2.16.91。
http://www.mingw.org/MinGWiki/index.php/Glut页面解释了在MinGW下使用Mark Kilgard的GLUT库会出现的问题及解决的办法。
至于Eclipse和CDT的安装很简单,在Linux下和Windows下也没什么区别。需要注意的是:为了让Eclipse能是别到GCC,需要吧GCC的bin目录加入系统路径PATH中,eclipse会自动查找make.exe,而MinGW的Make程序名叫mingw32-make.exe,所以,要么把mingw32-make.exe更名为make.exe,要么指定eclipse使用mingw32-make.exe进行make。
最近发现国内的debian安装源服务器很不稳定,想换一个速度快的,结果apt-get update运行失败后,把安装源换回来再重新安装其他包时都会报包依赖错,apt-get update好像起不了作用。研究后发现,删除/var/cache/apt/下的两个bin文件,再apt-get update就可以了。
知道java5.0中中文显示的解决办法是在jre/lib/fonts/目录下建立一个fallback目录,然后把中文字体连接进去就可以了,但我找乐半天都没找到这个目录,最后发现用update-alternative --config java指令便可以得到这个目录的信息。
要让qemu虚拟机和宿主机位于同一个网络中被该网络的其他机器访问,就需要使用TUN/TAP的网络方式来启动qemu虚拟机。具体的启动指令是:
qemu -m 192 -hda disk.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup
如果是在WindowsXP下面,就不需要script=/etc/qemu-ifup这个启动脚本了,直接将tap0换成网桥的名字即可。
第一步,建立一个虚拟网络接口。
在linux下:
1 # mknod /dev/net/tun c 10 200
在Windows下,有开源的虚拟网卡软件,找一个来装好就行了。
第二步,建立网桥。
在linux下:
修改/etc/network/interface配置文件。此处建立一个名为br0的网桥,先桥接上eth0,在启动qemu时,再桥接上tap0。
1 # /etc/network/interface
2 # This file describes the network interfaces available on your system
3 # and how to activate them. For more information, see interfaces(5).
4
5 # The loopback network interface
6 auto lo
7 iface lo inet loopback
8
9 # The bridge network interface(s)
10 auto br0
11 iface br0 inet static
12 address 192.168.1.2
13 network 192.168.1.0
14 netmask 255.255.255.0
15 broadcast 192.168.1.255
16 gateway 192.168.1.1
17 bridge_ports eth0
18 bridge_fd 9
19 bridge_hello 2
20 bridge_maxage 12
21 bridge_stp off
在windowsXP下,在网络属性窗口中,直接将要桥接的两块网卡选中,然后点击鼠标右键,选择“桥”菜单即完成桥接。
第三步,建立qemu-ifup脚本启动qemu时调用。
在linux下:
建立/etc/qemu-ifup脚本文件(参见qemu指令的-net参数)
1 #!/bin/sh
2
3 sudo /sbin/ifconfig $1 0.0.0.0 promisc up
4 sudo /usr/sbin/brctl addif br0 $1
5 sleep 2
WindowsXP在下不用这个脚本,直接把-net的ifname参数设为网桥的名字即可。
趁这两天有点空,终于把本本重装了。
一切都还顺利,只有在安装Netbeans时需要注意必须先安装bc包才能安装Netbeans。
周末和几个驴友去了趟都江堰,从东光小区出发到达目的地共80公里,行驶时间4小时,感觉不错,美得达的车就是好。
好几天来有个问题一个困惑着我。
在Eclipse里使用WTP插件时,总是不能正确的增加一个Server。当点击“WTP Server Actions”工具图标时,Eclipse响应速度极慢,并且,整个WTP相关的图标都会从工具栏上消失掉。
开始我以为这个问题是由于各个插件使用的WTP版本不一致造成的。由于我主要是想使用Exadel Studio 3.5,所以,我按照Exadel网站上的方法,去掉了其它插件的WTP(主要是JBossIDE和WTP本身),仍然不能解决该问题,于是我准备将错误信息发送给Exadel。
令我吃惊的是,当我使用-debug参数启动Eclipse时,一切都正常!我能通过WTP Server Actions图标创建Web服务器,也能通过其它WTP图标启动、停止和部署应用。当我去掉-debug参数时,问题又回来了!看上去非常的不可思议。当我仔细观察使用与不使用-debug参数时Eclipse的区别时,终于发现当使用-debug参数时,Eclipse没有使用Windows主题!难道会与这个相关?看上去风马牛不相及,不过我还是准备试一下。我把%JAVA_HOME%\bin下的javaw.exe.manifest文件删掉,重新启动,一切OK了!
不可思议!于此我得出的结论是:不能只看重外表!
刚刚在我的Debian Testing下面比较了一下VMware与qemu安装Windows2000Professional的速度。
我的机器配置是Compaq Presario2500,512M内存,其中32M划给显存。P4 2.4G,ATI340显卡。Linux内核版本为2.6.12-1-386。
为了保持可比性,我的虚拟机都使用256M内存,4G硬盘,NAT方式接入网络。
先
在qemu7.0(没有使用kqemu加速器)下安装,使用的是雨薇在线提供的无值守安装方式(安装完成后会打上一些系统补丁),整个过程(开始安装到出
现Windows开始菜单)耗时1小时48分钟。然后在VMWare5.0下安装,第一次安装到检测设备时死机,然后改成使用Bridge方式,整个安装
耗时28分钟,性能真的是不可相提并论啊。
在一些辅助功能上,VMWare好象也明显好用得多,比如,VMWare下能使用我的视频头等USB设备,而qemu我还不知道怎么挂上USB设备。对显
卡的模拟VMWare更是没话说,最关键的时全屏时由于支持“自动匹配客户机”,所以在我的液晶下就不会出现花屏,qemu好象没办法。
看来自由软件要走的路还很长。
1、工作环境全面转向Linux。
2、深入学习设计模式。
3、深入学习Hibernate,并用它做一个实际的项目。
4、深入学习JSF,并用它做一个实际的项目。
5、复习C++,尤其是对泛型加强了解,并与Java泛型对照学习。
6、严格遵守格律写诗,尽量使用平水韵。
7、能流畅的演奏阿宫回忆。
平安夜,我生日的前一天,从长沙回到成都,走进住所,面对空荡荡的房间,感觉就象从一个客栈到了另一个客栈。
最近在幾個Debian版本間(Sarge、Etch、SID和Ubuntu5.10)做了些試驗,感覺Testing還是不太穩定,尤其是GNOME的任務條老是容易死掉,非常郁悶!不過我還是打算用這個版本,只要C++和Java的開發平台能夠穩定下來就沒什麼,至於X窗口,還是用XFCE吧。
Ubuntu的確是個不錯的Linux發行版,感覺應該比RedHat更有前途(其實對它的偏好是因為其基於Debian,愛屋及烏了吧)。以前安裝Ubuntu時,不知道可以使用server參數來只安裝最基本的包。不過Ubuntu到是很穩定,至少不象tesing和sid那樣容易死掉。
有空的話,准備玩玩免免和LFS,不過估計有這閒時間的可能性很小。
在公司裡老板還在要我用Powerbuilder寫程序,因此完全放棄Windows是不可能的,最近試驗了一下qemu,其性能實在不敢恭維,使用VMWare就好得多。
晨起,略有雨氣,忽欲飲,無酒,唯詩爾。大夢隨風去
清歡捲雨來
欲醉三千日
神魂到蓬萊
把jdk1.5.0_06装上了,不需要使用kernel-headers,不知道是记错了还是现在改正了。
尽量在xfce下干活吧,快捷些,感觉上也更象高手。装了个KDE下的浏览器──Konqueror,虽然大,感觉比FireFox要爽多了,基本上想要的功能它都有。而且是集文件游览器和Web浏览器于一身。
IDEA也装上了,今天Liuzy推荐我用这个东东来做Java开发,以前一直用Eclipse,前两天想换换口味,于是下了netbeans5.0 beta2来试试,感觉还可以,至少集成了JSF和struts框架,eclipse下这些框架的免费插件可不太好用。开发Web应用也比Eclipse好用些。不过,IDEA这东东我还没有玩通,感觉除了书写代码很爽外,也没有多少过人之处,最重要的是不免费,用起总是于心不甘。
今天把Debian换成了最的tesing版本,内核为2.6.12-1-686,可是还没有找到有哪个源上有这个版本的headers,我记得以前安装java包时是需要这个包的,不知道现在是否也一样,明天准备装jdk-1.5.0_06试试。
第一次在Linux下用Firefox来书写这个日志,感觉很不错。
今天把Ubuntu下下來看看了,版本是5.10,結果很失望,完全不象Debian那樣自由,安裝根本沒有選擇,一股腦的全都裝上去了,安全花了近一個鍾頭,啟動速度也很慢,算了,還是裝回Debian好了。
十年落拓功名意 一梦方知归未迟
丞相多因直谏死 将军几度陷城池
常思范蠡遁江去 欲效陶潜隐东篱
曾子堂前何所事 菊花把酒对诗词
(2004年6月10日,那时候一直在考虑辞职,公司已经没有前景了,而且也感觉自己在公司里也没有什么发展空间,混到部门经理似乎就到头了,所以也准备另谋出路。心情郁闷之际,遂写此事。)
登翠屏山有感
俗子无知抱石寐 梵音清越向天行
经书难解心头事 只问野趣不问名
(2004年6月14日,背景同前一首)
(一)
落落萧条日 无为登古台
青山临水起 云气向园开
雨带荷花老 风摧竹叶哀
前贤皆已去 当思故人来
(二)
我爱黄山谷 其书意荡然
诗成出居士 行文过米颠
流杯有笔过 摩壁岂无宣
形负沧桑去 名随青史全
(大概是2004年5月中旬吧,那时候诗兴大发,写了不少,可能跟看了书画展有关,也因为公司效益下滑,百无聊赖,寄情于诗了。游园其一我感觉写的还不错,格与境都上了一个台阶。)
(一)
黑白有真味 今人多不识
落落观摩者 几人可相知
(模仿刘禹锡的“泠泠七弦上,静听松风寒,古调虽自爱,今人多不弹”这首诗。2004年五一节,老婆来宜宾,告诉我人民公园有书画展,便一同去看,结果楼下麻将声声,楼上清风雅静,看书画展的人还没有一桌打麻将的人多,遂感叹传统文化的流失。) (二)
真草可清心 章白岂无趣
白丁难成行 鸿儒可同路
一骑单车快 两只飞燕闲
至今思故友 一别五六年
投箸先有泪 举觞亦无言
明日八百里 前路已茫然
(这首诗应该在98或99年我从银行辞职的前夕,到温江找李显俊兄聊了聊,他还是那么温文尔雅,书艺也大有进步。如今到了成都,却没有的他的联系方法,也不知他还在不在化工技校教书。)
一直以为,古琴已经不是一种乐器。
对古琴的仰慕,持续了十多年,并且至今是有增无减。古琴带给我的震撼,不是从声波对我的耳膜的刺激中来的。从初识古琴时听到的“阳关三叠”,到后来百听不厌的“梅花三弄”,以致如今略有所悟得“潇湘水云”,我一直在很用心的体会这个独特乐器所带来的意境。如果说开始听琴时还有些附庸风雅,那现在我已经是真正体会到古琴的妙处了。
初识妻时,给她听了很多古琴的曲子。妻是文人,那时对古琴仰慕的一塌糊涂。后来,有一次,乐器店的老板进了一具古琴,我便带她一同去听,结果,我和她的感受截然相反。
古琴悦己,古筝悦人,我想,把古琴仅仅当作一种乐器的人是弹不好古琴的。
古琴是一种“道器”、“德器”,以致我见到古琴时,真的怕自己一辈子都没有机会有资格拥有它。
点绛唇
几片扁舟,几番天色又飘淼。几人同道,几许听秋草。
月色苍茫,携琴欲远眺。知音少,也是玩笑,莫惹些烦恼。
原词如下:
点绛唇.忆
一树丹枫,一江秋水波微淼。一条长道,一桥连滩草。
黯淡斜晖,无语西楼眺。思年少,尽情欢笑,哪有些烦恼。
今天公司组织职工进行体检,在30所职工医院。结束后才发现,医院抽血好象不是用的一次性针头,大惧!以后再也不到职工医院看病了。
老婆今天回家了,衣来伸手饭来张口的幸福生活就此结束,今天开始又是吃伙食团,幸好我上次检查已经有了乙肝抗体,呵呵。
最近一个月,一直在用Exadel做JSF的练习,发现它的确是一个非常好的Eclipse插件,尤其是对编写JSP页面,几乎没有其它工具比它更好用。
{安装}
安装就不说了,从Exadel的网站上下载,运行Exe或者Jar文件即可。
{配置Exadel}
在“首选项”->“Exadel”->“Running”的“Tomcat”选项卡中配置好Tomcat的路径。ExadelStudio2.5支持Tomcat、JBoss、JRun和J2EESDK。不过,ExadelStudioPro3.0就支持几乎所有的应用服务器了。
在“首选项”->“Exadel”->“JSF”->“Project”选项卡中可以配置你使用的JSF的版本、Servlet的版本以及你的JSF项目模板。还有一个选项是在Tomcat的Server.xml文件中注册你的Web上下文。不过由于Tomcat5.0以后可以使用独立的上下文配置文件,所以我一般不喜欢使用这个选项。
{新建一个JSF项目}
在刚才的配置中,JSF项目模板有两个选项,一个的“JSFBlank”,另一个是“JSFKickStart”。JSFBlank将建立一个空白的JSF项目,Exadel会自动在你的项目路径中产生你需要的文档。
首先,它会把需要的JSF库放到应用的/WEB-INF/lib目录下,在项目中的路径为/WebContent/WEB-INF/lib。
第二,它会自动设置好项目的构建路径,让Eclipse能轻松地使用JSF库。
第三,它会自动产生几个重要的文档:Web.xml、faces-config.xml和build.xml。其中web.xml和faces-config.xml放在/WebContent/WEB-INF/下面,而build.xml放在/ant目录下面。
注意,如果你需要对你的ManagedBean进行的调试的话,请记住将build.xml的compiler任务中javac的debug属性设为“on”。
Exadel还会产生一个JavaSource目录,所有ManagedBean的源码都应该存放在这里。还有build和deploy目录是ant用来执行编译和部署的。deploy里是最终的部署路径,当然,你要是不喜欢的话,尽管在build.xml里把它换成其它的。
如果想一句代码都不写就体会一下JSF的概貌的话,可以将Exadel的JSF项目模板设置为“JSFKickStart”,这时Exadel会为你产生一个比空白JSF项目稍稍多一点功能的项目模板,它有一个欢迎页面和一个ManagedBean。虽然没有多大用处,但可以很清晰地看到JSF项目的书写方法。
到S公司两个月了,这两天,公司搞了个令我郁闷的新员工培训。
说郁闷,有几个原因。当然,最重要的原因是要和那一大堆刚从大学里分配来的小孩子们坐在一起,听年纪比我还小的什么经理呀之类的讲些肤浅的技术。第二,我们公司的副总工,就是我们部门的老大,给我们讲软件开发技术时,带有强烈的个人主观色彩,把Java,尤其是EJB批得一无是处,把WebService奉为放之四海皆准的真理,而且以前也发现他有把自己的主观意见强加给下属的趋向,郁闷。
不过也有好处,总算轻松了两天,没干什么活。
ExadelStudioPro3.0到期了,没办法,只好用免费的ExadelStudio2.5,不过,对我来说,主要用它做JSF,倒是够用了,唯一不爽的就是要换回成Eclipse3.0。
SQLServer的JDBC驱动在SQLExplorer和Exadel的Database Explorer里老有问题,不知道怎么回事,JDBC本身应该没有问题,在Tomcat配连接池的情况下也跑得上好的。
前段时间在做一个JSF练习时,总是不能对类文件进行跟踪调试,Eclipse弹出“cannot install breakpoint”错误对话框。依照该错误对话框的提示,将项目的complier设为使用workspace的,并且在workspace的java->complier选项中选中“add line number attribute to generate class files”,仍然不能解决问题。结果今天才发现,原来,项目的build.xml文件中,javac没有使用debug="on",翻看ant的文档,原来javac默认debug="false"。
南乡子
霜重暮江寒
一叶扁舟影自单
渐行渐远渐无意
催眠
收拾心事向管弦
何必理衣冠
老子偏爱独倚栏
懒问世间沉浮事
何盼
记取蓑翁钓鱼杆
这是1999年步韵一位网友的词,不过原词和当时和的词已经记不清了,只能依稀记得两句。很久没有写词了,故依原词意,重作此词。
受不了CSDN不停地出问题,搬到这里落户来了,希望能让我坚持写Blog。
自嘲一首
我无富贵命,所喜性天然。
壁立三千字,家无半吊钱。
蝉鸣深巷里,人语短屋前。
收拾英雄气,耕作两分田。
自我来盛安,已过两月圆,传闻不实,所憾甚多。奈何机遇已失,良缘未结,故做此诗,以慰心境。
独卧东郊已越年,开窗纳月复无眠。
欲携琴书归何处,可怜世上无桃源。