UVa Online Judge的重建

2018年7月,在与uDebug网站管理员Vinit Shah就UVa 12348 Fun Coloring的评测问题进行电子邮件交流的过程中,遗憾得知Miguel Ángel Revilla教授已于2018年4月去世(未见官方发布的讣告,故去世原因不详,参见搜索得到的一个网上讣告:https://www.rememori.com/1018994:miguel_angel_revilla_ramos,这个讣告的主人应该是指Revilla教授)。

由于Revilla教授的不幸去世,由他一手创建的UVa OJ也处于无人管理的状态。Revilla教授的儿子Miguel Revilla Rodriguez在处理父亲的后事时,就UVa OJ运行的资金支持问题向Valladolid大学——Revilla教授生前所在的大学——进行交涉,得到的回复是:Valladolid大学的管理委员会拒绝再向UVa OJ的运行提供资金支持。由于Miguel Revilla Rodriguez曾经担任过UVa OJ的管理员,因此他想继续保留和维护父亲留下来的这个“遗产”。但是,平台已经过于老旧了,事实上,现有的平台是 2005年开发的,使用的是Joomla,这使得维护起来非常困难。故此,Miguel Revilla Rodriguez决定更新整个平台,而这个项目将是开源的。

可以看到,现在新的[UVa OJ](https://onlinejudge.org/index.php),不仅链接地址由原来的:https://uva.onlinejudge.org/更换为https://onlinejudge.org/index.php,主页的Logo图片也已经更换为Online Judge,而不是原来的UVa OJ。原左侧栏内有关Valladolid大学的图片和链接也撤掉了。

新的平台处于开发状态,为了一探究竟,我按照上面的说明编译了一遍,看了一下效果,确实只是一个基本的框架(考虑到基本就他一个人在做这件事情,已经非常难得,他也得工作生活啊,不过,有消息说,他翻译了几本书,有一些收入,在基本生活上不存在太大问题。相关讨论链接:http://v-v.blog.uoj.ac/blog/5407)。

项目放在GitHub上,地址为:https://github.com/TheOnlineJudge/ojudge。为了能够运行这个初始版的OJ,我进行了以下步骤:

(1)安装虚拟机,使用的是[Oracle VirtualBox 6.1](https://www.virtualbox.org/)。
(2)下载Ubuntu镜像,选择的是[Ubuntu 18.04.4 LTS](https://cn.ubuntu.com/download)。
(3)将Ubuntu 18.04安装到VirtualBox中。
(4)通过包管理器安装依赖boost、cmake、G++ 7.3、PostgresSQL数据库等。
(5)下载[Wt框架](http://webtoolkit.eu/),编译安装(需要注意两个细节,一是必须先安装PostgresSQL数据库,否则Wt不会编译连接PostgresSQL数据库的头文件Postgres.h,而该头文件是项目能够编译运行所必需的;二是分配给虚拟机的内存要在2G以上,最好3G,因为在编译Wt的过程中对内存需求较大,如果内存不够,很可能导致启用交换文件,使得虚拟机失去响应)。
(6)使用git克隆项目:https://github.com/TheOnlineJudge/ojudge.git。
(7)按照项目的编译配置说明进行操作。

以下是项目编译运行后的一些页面(依次为:主页面、题目列表页面、登录页面、管理员页面、题目上传页面):

UVa Online Judge的重建

UVa Online Judge的重建

UVa Online Judge的重建

UVa Online Judge的重建

UVa Online Judge的重建

希望Miguel Revilla Rodriguez能够尽快达成这个宏伟的目标,让Online Judge完善并上线运行。
为了支持Miguel Revilla Rodriguez的工作,您也可以选择向他捐赠,捐赠的方式参见OJ的首页:https://onlinejudge.org/index.php。