Online Judge系统测试代码

这些代码是我从DOMjudge中分离出来的,DOMjudge的源代码包中附带了这些测试代码用以测试判题系统是否能够正常工作。这里面包括返回码测试、内存使用量测试、运行时间测试、堆栈溢出测试、输入输出测试等不同的测试点及各类语言(C、C++、JAVA)的实现代码,很全面。很显然并不是每个系统都支持这个包中所测试的所有功能,部分问题需要依赖于你所要测试的目标系统的实际设计;例如exitcode的问题,一些系统强制要求主函数必须”return 0;”,返回其它值无效(会导致类似于运行时的错误),而另外一些系统只要程序能够得到正确的答案,返回任意你想要返回的值都是可以的。
下载 [download id=”21″]
-EOF-

又遇Microsoft VBScript 运行时错误 (0×800A0046)

之前在XP上怎么遇到这个问题,以及怎么解决我就不细说,解决办法就是给”everyone”用户赋予权限。昨天又遇到这个问题是在Windows Server 2003上,当我出现这个问题我还是试着按上面的解决办法来解决但是不成功的时候我便开始怀疑我的安装过程有问题,我昨天装Windows Server 2003的顺序如下:

1.安装操作系统
2.安装.net2.0运行环境
3.安装IIS
4.格式化其它未格式化磁盘
5.安装数据库
6.复制网站到相应工作目录并设置数据库内容等

我猜测其中的问题在于安装.net2.0运行环境、安装IIS及格式化磁盘的步骤上,也许是这样操作弄乱了执行帐户权限(XP出问题还不就是因为权限的问题)。我实在是不想去找解决方案,找所花的时间远远超过我重装一次,于是今天我又重新安装服务器操作系统,按如下的顺序:

1.安装操作系统
2.格式化其它未格式化磁盘
3.安装IIS
4.安装.net2.0运行环境
5.安装数据库
6.复制网站到相应工作目录并设置数据库内容等

一切工作做好之后,通过浏览器访问,一切正常。似乎证实了才猜测的部分正确性,当然具体怎么回事还是需要专家分析,我挑战安装顺序是猜测他们之间的依赖性,IIS安装之前磁盘都已经格式化了这样IIS帐户便可以访问所有的磁盘,运行起来就应该正常。而.net环境的安装本来就会先自动关闭IIS再重启的,也就是说它本来就会对IIS造成影响。SQL SERVER的安装也是会涉及到IIS的,具体影响多大我不知道,但是我想越是上层的软件越后面安装比较好。

这只是我的个人想法,如果能够解决觉当然是直接解决比较好,重装系统是下下策。
-EOF-

谈Google的帐户问题

因为Google App存在的原因,不得不说Google的帐户设置存在着严重的问题,我并不是说这个的第一个人,早在我先前都有很多人批评过了。我这里从当前存在的事实的角度来说这个问题。

之所以说Google的帐户设置存在问题原因在于使用电子邮件地址登陆,GMAIL地址也是电子邮件地址,因为实际上登录后后台会判定你地址是否属于GMAIL账户管辖范畴。这点上是没有问题了。

当我申请了Google App后问题便出现了,我的一个地址abc@ioio.name本身是一个Google的帐户,但是后来我又以abc为用户名开通了Google App的邮箱(即abc@ioio.name)。在这种情况下我所发现的问题出在日历(Calendar)上,当我使用其它帐户给 abc@ioio.name地址发送邀请的时候,Google 的后台并不能成功的处理这个邀请,并且App帐号在登录Calendar的时候会得到出错的提示。而如果邮件地址不是Google的帐户,而只是一个 App的邮件地址,那么一切便是正常的。这种情况下责任自在我自身,明明已经申请同样地址的Google的帐户,就不应该再使用相同地址作为一个App的登录帐号。但是话又说回来,之前已经使用了这个邮箱,在转移到Google App后如果不添加该地址的邮箱,我又怎么收信呢,貌似Google在这里故意给我出了个难题。

其实是在Google App Engine的管理员登录上出了问题,原因在于申请Google App Engine不仅只是Google帐户可以申请,Google还特别弄了个通道(”http://appengine.google.com/a /domain”,domain为相应域名)以便于App帐号可以方便的申请到Google App Engine帐户,而在Google App Engine提供的账户认证API的时候,Google App Engine中应用的拥有者具有管理员的权限,而Google所提供的Users API 只能够对Google帐户进行登录认证,也就是在App Engine应用里,使用App邮件地址帐号的管理员无法以管理员身份在前台登录了,这不是又给我们出了个难题。目前解决这种问题的方式只有添加一个 Google帐户(最好是Gmail)作为应用的共同开发者,这样使用该Google帐户即可以登录Google App Engine后台管理应用开发,也可以登录所开发的应用的前台进行一些其它的管理。

我相信Google内部已经发现了这类问题的存在,并且那些天才们已经在想妥善的解决方案。虽然微软的Passport计划比较失败,但是我还是不得不承认设计得比较完善,至少不会出现这种杂乱的问题。也许骄傲的Googler们该清醒下了。
-EOF-