2007年4月23日

.Net under unix-like systems: mono

MS看着Java凭借着可移植性占领了广大的市场,自然不甘心,于是搞出了.Net——MS版Java。实话说,.Net和Java很多地方差不多的……

由于.Net需要可移植性,因此.Net程序里面其实并不是机器码——实际上是MS的一种中间代码,也就是经过了一半编译过程的代码。既然是独立于系统的,.Net也就很容易被移植到MS没有兴趣/不想移植的系统上。由此,mono便诞生了——可以在Linux/BSD/unix-like上跑.Net程序。

貌似mono自己写了.Net的一大堆类库(当然很多还没有写出来…… 但可以混混了~)。

从前装好mono,运行的时候,报告gdiplus.dll找不到。我把Windows下面那个搬到了很多地方,都没有用。今天再试,突然想到可能需要原生的gdiplus,一看,果然发现有libgdiplus这个port,装好之后出现了gdiplus.so等。再运行,就没有原先的问题了。

但是,mono的不完整的实现还是限制了使用…… 我用它运行从前写的ReadAsBmp程序(能够把一个文件的任何部分当作Bmp处理等),基本上可以用,但是PictureBox的Load() mono 没有实现,载入外部图像的时候就挂掉了。而另一个 NewLines 程序 (其实功能和常见的WinLinez差不多,五个珠子连起来就消掉的小游戏,为了解决自动缩放/存盘/跨平台等功能而自己写的,给我妈玩……)由于Form.set_MainMenuStrip() mono  没有实现,窗口都没出来就挂掉了,看来目前还不能使用菜单部分啊~

总的来说,mono 已经不错了,只要能够完善类库,比起Java还是很有竞争力的。

2007年4月21日

近日事件小记

更正:高三程序设计竞赛->高三数学竞赛 上周再上周,高考体检。难得我们班这么多人能够聚在一起,大家有说有笑地参加了体检。希望大家都没什么问题。 聂田和朱大先后从集训队回来了,他们开创了我们学校物理竞赛的历史记录!~ 不过来了没多久又去参加亚洲赛训练了。祝他们在亚洲赛取得好成绩。 祝贺ZhouHai同学拿到Offer,至少有了一层保障。我们班还剩三个裸考的…… 祝好运。 本周三,拍集体照。又一次,我们班全班到齐,连XH同学也一起过来混~ 还请来了各科的任课老师,多日不见啊…… 大家开开心心地拍了集体照,随后还一起打了篮球~ 这两天运动量的确比从前大了不少,常常有篮球运动。但是由于很难凑齐很多人,足球踢不起来(其实更重要的问题是场地又封掉了,学校这个破场地,三天两头要养草…… 我们初中的水泥地也没这样……)。 高三数学竞赛的成绩出来了,Roy勇拔头筹,拉开第二名十几分~ 本来他们不用参加的,挤占他人的加分名额~ 不过为了学校团体分数还是参加了~ 根据分数来看,假如Roy不参加,第一、第二、第三各相差一分,结果现在…… 差距明显啊~

近日事件小记————技术相关

家里的机器比较破,Beryl跑的速度太慢,而且还全是白的…… 去网上问,结果官方论坛有个人说Beryl不支持ATI显卡…… 汗…… 等以后有了好机再说吧…… 现在用的Xorg是7.2,貌似比较稳定么~ 没看见怎么崩溃过,只是有时候没有响应,只能关电源再重开解决(电源键总是有响应的~)。 现在在FreeBSD/KDE下面一般开半透明+阴影效果,看上去已经非常漂亮了,标题栏有磨砂玻璃的效果,窗口之间还有立体感,任务栏等也成了半透明的,只是速度慢了些…… 现在在窗口系统下的命令行打字都有延迟…… 貌似窗口整个透明没什么实际价值,虽然好看了一些,但是不利于使用,还导致性能严重下降!... 2002年那个时候的低档显卡到现在看来什么也不是了…… 平时都以为,只有打游戏、做视频编辑才需要好显卡,现在看来,没有稍微好些的显卡,连赏心悦目都不行………… FreeBSD下面的FP更新了,ports里面有2.0.4,IDE非常稳定,只是………… 没有调试功能…… 汗…… 锻炼直接使用gdb的能力啊?…… 简直就不用叫IDE了么…… 近期先是听说CDS同学在研究 OpenCV,后来某次又发现 Hearson 也在研究,还准备搞 Facool Plus ,怎么大家一会儿都对图像处理这种感兴趣了?……

2007年4月10日

无锡之旅

上周六,我们一行八人参加了由Tuonela同学组织的无锡一日游~ 去的时候,因为预先只买了四张票,需要补票,我第一次体验了补票这件事情~ 到了之后,先去了Tuonela同学推荐的王兴记,享受有名的无锡小笼。这个就权当是中饭了。 然后就拉车前往鼋头渚(原来这个字不念zhe啊……),利用充分多的学生证,我们成功地买到了半价票~ 据Tuonela同学说,她来过一百多次了…… 真感谢她还这么有兴致地帮我们讲解、领路。 鼋头渚的自然风光很是秀丽,只是我没有DC,大家可浏览Roy和风之谷那边的照片~ 恩,玩得还是很开心的。但是想到有些人以后会有很长时间不能见到,有点…… 后半程和Tunoela、JohnLee同学聊了不少,觉得命运(或者说RP)这种东西有时候是很捉弄人的…… 我们的“信念”这种东西是不是很牢靠呢?…… 回来的时候,原来打算在车上补票,谁知用来补票的票子也卖完了(可见补票的人之多以及票子的稀缺……),需要下车补。我们在车上忐忑不安,怀疑补票要罚款,还要补全程的(回来的车是南京到上海的),这样大概要一百…… 下车后,我们看见一个通往一号线的出口,于是向那边检票的人询问补票事宜。那个人摆摆手,“过去,过去。”。我们就这样混出去了…… 就是进出地铁站还花了三元(原来同站进出是要收最低票价的……)。 希望以后还有机会大家一起出去~ 说不定还能多组一些人呢~

2007年4月4日

参加创新大赛之后的感想

参加了创新大赛,混了个两等奖,没混到专项奖。我们那个项目,要说创新,其实也没什么…… 所以本来就是去娱乐的…… 不过我们那个肯定能获得“最佳观众参与度奖”(如果有的话……) 创新大赛的这么多项目,我主要注意计算机的,别的也看了一下。没看见比较有创新性的,多半是一些小的改进,或者干脆就是应用,或者说,就是“没有核心竞争力”。 就我们做的项目来说,我们是以实用为主题的,一切以实用考虑。其实这个也不错,但是就像我前面某一篇写的,光会使用技术,毕竟比不上开发新技术的(虽然商业上等等可能不是这样……)。不能总是只考虑使用技术。 在比赛的时候,我听见有老师议论,“或许中学生也就能够做到这样了”。像前两年一样的那位朱**同学(名字记不起来了……)那样的很牛的自己研发的项目毕竟少,能够做到这样的人也少(毕竟高考、中考在那里么)。我们三个本来不想参加创新大赛的,SSKZ那个项目是为了实用考虑的,我自己的改善食堂的那个项目也是为了实用考虑的。假如给我们从很早就想搞的话,也许有希望搞个自行研发多一些的项目。 也许创新大赛也就是为了鼓励这种项目吧…… 但是我觉得这个目的基本上没什么希望…… 再加上现在传言的创新大赛的****…… 没什么好说的了……

22届创新大赛的计算机项目……

一等: 个性化网络消息发布监视器研究与实现:初中 实际上就是定期去抓网页,然后看上面有没有预先指定的文字…… 不过毕竟是初中么。 CoolerSE中文站点搜索引擎:高中 做了个搜索引擎,没问出来比Google/Baidu这种有什么好的。 二等: 特殊符号输入与管理系统:初中 我们在SSKZ做项目的时候,这位同学有时候也在。也就是一个应用吧,用来输入特殊符号。 移动存储设备快速运行及维护系统:高中 基本上就是一个备份软件么。 利用可移动驱动器序列号验证身份:高中 首先,这个东西已经有了。其次,这种东西的序列号是可以改的。另:这个东西的服务器是用Python写的,作者是搜索引擎那个项目的选手。搞Python的也是好同学~ 网络语音实时传输及音量电平计的研究:高中 这位同学说起话来很强,和我说“这个很难的”…… 我问他,QQ、MSN早就有这个了,你这个有什么好。他的理由是:QQ/MSN需要到服务器转发,比较慢,他这个是通过局域网直接传输过去的。他怎么知道QQ/MSN就不会直接传输…… 而且直接传输的技术成本一定低于服务器转发,所以他这个有什么好嚣张的呢…… 而且还不压缩,号称使用了“**缓冲队列”,就是环形队列么…… 基于网络硬盘创建小型网络服务器的实践:高中 网络硬盘原来有个小的ROM,里面有个Linux Kernel和一小部分应用,从而提供网络服务器功能。这位同学改了一下,让那个Kernel能够挂上硬盘后从硬盘继续启动(原来就是网络硬盘服务器,估计原来就能挂)。毕竟是摆弄Linux的好同学么~ 盲人寻物智能语音提示器:高中 就是你吼一声“钥匙”,钥匙那边会有反应。不清楚怎么做语音识别的,毕竟是个单片机么…… 要么是靠某种采样机制,不清楚精确度如何。 三等: 车队管理信息系统开发:高中 也是个应用。 基于文件系统的超级计算模块:初中 我怀疑这位同学不知道虚拟内存这种东西。 计算机局域网抓屏监视系统:高中 定期抓个屏,发出去。我还见过动态传输的…… 还记得去年还是前年的“Google泄漏网络摄像头”事件吧。 乘车刷卡手机:小学 把交通卡的核心剪下来,加个壳插在手机里…… 小学生做这个也不错。 智能自学五子棋下棋算法研究:高中 不清楚怎么会是三等的,按照展板,他用的是极大极小算法,这个是常见的博弈类问题算法,但是他用神经网络进行自主学习,虽然我对他在这样的情况下如何保持效率表示不解,但假如是真的话,怎么说也比那边搞语音传输的强吧…… 一种自动并行处理模型的建立及优化:高中 我不了解这个东西,有几人和我说这个东西是错的,而且据说有个教授到他们展台前面大批了一通。不作评论。 没看见什么实质上的创新,大概学生也只能这样了吧…… 本文仅代表个人观点,不得转载。

2007年4月3日

Beryl / Compiz / XGL / AIGLX: 新进展

鉴于Xgl的编译困难——没有能够和Mesa共同编译的发布版本,我全面转向AIGLX。新版本的Xorg(7.2)自带了AIGLX,并且默认状态就是激活的。 我原先用git抓下来编译的Xorg,竟然是7.1.99.2,竟然比发布版旧…… 跑起来之后,Xorg会在某个不确定的时刻死掉…… 而且,这个版本就是死活不肯编译 GLX Extension! 就算我 configure 的时候指定 --enable-glx 也没有用。 后来想,既然决定用新的Xorg,干脆用ModularXorg的ports算了。原先是觉得这样弄会很烦,但是也没有别的更简单的办法。 于是就照着FreeBSD wiki里的ModularXorg的方法,先备份ports目录,然后用git抓下新的(大概耗时半小时左右),接着就到ports里的各处安装ModularXorg的各个组成部分,比如xorg-proto,xorg-server,libGL*,libglut,dri,libdrm,xf86-input-mouse,xf86-input-keyboard,xf86-video-ati,还有各个小工具,比如xdpyinfo,iceauth,... 一切OK后,重新配了一下X,顺利进去了。这个X相对git下来那个稳定多了,也有了GLX Extension和Direct Rendering(虽然现在的ports里面的dri不编译glxinfo,glxgears等等,但是可以用git抓下新的Mesa的源代码,然后去progs/xdemos里面编译)。但是这个X没有6.9稳定,比如我切换到命令行再切换回来很容易出问题,而且每次退出基本上都不能正常,总是有"X in free():..."的错误。但无论如何,可以用了。 然后安装了beryl和compiz,原来想着差不多了,但是启动beryl之后…… 就出来那个"white screen of death"了。其实也不是全白,可以转动桌面立方体,弹性窗口效果等等都有,桌面还是蓝颜色的,就是所有的窗口都是白的(还有半透明效果……),没有内容。如果用--use-copy选项启动beryl,能显示内容,但稍有变化就会乱掉,而且速度奇慢(其实不用--use-copy也很慢,但是至少能动),总之就是行不通。 compiz这边,启动的时候显示"no GLXFBConfig for default depth, this isn't work"的错误,而beryl对应的是"no GLXFBConfig for default depth, falling back to visinfo",看来beryl针对这个问题进行了patch。总之就是不能正常使用…… 据说这个是glproto从1.4.7升到1.4.8之后导致的一个问题,看来要等更新了…… 现在打算去看看beryl的代码,哪里出的问题…… 注:beryl是从compiz分离出来的项目,基于compiz的代码,进行了许多改进/创造,目前两个项目正在考虑整合问题。

2007年4月1日

尚未完成: Compiz / Beryl / XGL / AIGLX on FreeBSD

和 Beryl / Xgl / AIGLX 等东西折腾了三天了,还没搞定…… 其实说起来很简单:装好各种基础,再装Mesa,然后是Xgl,接着compiz,就可以了。但是Xgl的源代码的编译严重依赖于Mesa的源代码,每次 Mesa有文件上的变化Xgl也要变。但是…… 计划没有变化快…… 最新通过git抓下来的Xgl和Mesa的源代码不能一起编译…… 我常试了各个版本,尚未找到办法…… 在网上看见很多安装指南,看来成功编译的不是正好Mesa和Xgl可以共同编译,就是自己做了些小的修正,但是现在的版本差别实在太大…… 后来发现新的用git抓下来的Xorg可以和Mesa一起编译,貌似采用了一种更先进的依赖方法…… 于是我试着把它和现在的Xgl整合,但是…… 没有效果…… 最后,我终于知道新的Xorg带了一个叫AIGLX的东西,按照www.freedesktop.org上的说法,这个是“Xgl的一个流行的替代品“。目前编译Xorg中…… Compiz倒是很容易编译,就是一直跑不起来,看来一定要跑在Xgl/AIGLX上面…… 另一个搞不清楚的是,我编译安装了最新的Mesa(6.5.3 by git),卸掉了ports里的dri和libdrm,也编译安装了新的libdrm,但为什么就是没有direct rendering... 附: 各个版本的Mesa和Xgl的各个不同点 Mesa: 6.5 6.5.1 6.5.2 git cvs Xgl: git cvs 6.5.3 6.5.2 main: bitset.h No Yes Yes Yes Yes Yes Yes arrayobj.h No Yes Yes Yes Yes Yes No mipmap.h No No Yes Yes Yes Yes No mesa: array_cache Yes Yes Yes No Yes No Yes vbo No No No Yes No Yes No swrast: s_arbshader Yes Yes Yes No Yes Yes Yes shader/slang/library: slang_version.. Yes No No Yes No No Yes