.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还是很有竞争力的。

Useful Perl

Perl – Practical Extraction and Report Language | Pathologically Eclectic Rubbish Lister,著名的工具语言。它能够通过简短的代码做到很多别的语言需要很长代码才能干到的事情,对于日常事务特别适合。 从学校里借了本《Perl入门》,Randal L. Schwartz & Larry Wall (Perl创始人)写的。看上去很旧,原来学校里也有不少人研究这个东西啊~ 学起来需要一些时间,特别是关于正则表达式的部分…… Perl是先编译后运行的,因此速度还是比较快的。现在基本上每套类Unix系统上都有Perl。 今天发现Winamp保存的播放列表用的是\,而Unix系只认/,于是就想到写个Perl程序练练。写了一会儿,又调了一会儿,改了一会儿,达到预定目标~ #! /usr/bin/perl use File::Copy; print “Please enter file name:”; $fname = ; chop($fname); if (!open(FILEIN,”$fname”)){ die “Input file not there!”;} $fout = $fname . “.tempfile”; if (!open(FILEOUT,”> $fout”)){ die “Cannot create temp file”;} …

Continue reading ‘Useful Perl’ »