Los equipos participarán utilizando ordenadores proporcionados por la organización, de modo que se garantizará la igualdad de condiciones entre todos ellos. En concreto, se hará uso de varios laboratorios de la Facultad de Informática de la UCM desde la que se organiza la final.
Los ordenadores tienen instalado GNU/Linux, en concreto una versión reducida de Ubuntu, con escritorio Xfce. El software y herramientas que disponibles son:
PyCharm utiliza python3 para lanzar las aplicaciones. El juez automático, sin embargo, usa pypy3, que también estará instalado. Desde el terminal están disponibles los scripts mygcc, myg++, myjava, mypyton3 (por un error, le falta una h) y myada para lanzar el compilador con las mismas opciones que lo hará el juez automático. En el caso de Python el script se limita a comprobar la sintáxis del código. Para lanzarlo igual que lo hará el juez se puede usar pypy3 directamente.
Los ordenadores no tendrán ningún tipo de conexión a Internet salvo la necesaria para poder realizar los envíos al juez automático.
Para evaluar los envíos se utiliza DOMjudge. El manual está disponible aquí. Puedes familiarizarte con el interfaz en la "live demo" proporcionada por los creadores del software.
Una vez que se realice el envío de una solución, se ve rápidamente el veredicto dado por el juez automático, que utilizará versiones de los compiladores equivalentes a las de los equipos de los participantes, con la salvedad del OpenJDK 17. Los jueces humanos estarán durante todo el concurso velando por la corrección de los veredictos de ese juez automático. En ocasiones pueden surgir problemas, tales como un fallo de un recurso, error en un caso de prueba, etc. En esas ocasiones, los jueces humanos pueden decidir alterar el veredicto inicial. Si ocurre durante el concurso, los más normal es que los jueces utilicen el mecanismo de aclaraciones que tiene DOMjudge para hacer llegar un aviso al equipo.
El mismo sistema de aclaraciones puede ser utilizado por los equipos para hacer llegar dudas sobre el enunciado a los jueces. En ningún caso se deberá pedir ayuda a los voluntarios que vigilen el correcto transcurso del concurso en las aulas.
Para que los participantes puedan probar con antelación el entorno, desde la organización se ha preparado una máquina virtual con él. Está disponible a través de un fichero .ova , que puede importarse en cualquier software de virtualización. Se ha probado con VirtualBox (en Windows y GNU/Linux), pero también debería funcionar con otros programas como VMWare. Tiene exactamente el mismo software que tendrán los ordenadores proporcionados por la organización, salvo por el enlace al juez automático que aparecerá en el escritorio del concurso, pero no en el de la máquina virtual.
Para usar el fichero .ova, en VirtualBox se usa la opción de "Importar software virtualizado". Por defecto la máquina virtual tiene configurados 4 GiB de memoria y un único procesador. Se recomienda adaptar esos parámetros en función del equipo hardware concreto sobre el que se lance. En particular, es preferible, siempre que sea posible, ampliar la memoria y el número de procesadores. Además, la máquina virtual no tiene tarjeta de red para simular la situación del concurso, durante el que la conectividad a Internet estará restringida. De ese modo no se podrá, por ejemplo, instalar ninguna extensión a VisualStudio Code, igual que ocurre en el concurso. No obstante cada uno es libre de ampliar su máquina virtual para ponerle la tarjeta de red, en cuyo caso se debe ser consciente de la diferencia de contexto con respecto al concurso.
Si se usa VirtualBox, durante el proceso de la importación se debe además desmarcar la opción "Importar discos como VDI" y conviene deshabilitar el uso del Controlador USB, para quitar el soporte USB 2.0 (salvo que se tenga instalado el módulo de Oracle).
Además, una vez creada la máquina virtual, es recomendable subir la memoria de vídeo al máximo (típicamente 128 MiB) en Configuración - Pantalla.
Cuando se lanza la máquina virtual, se hará login automáticamente con el usuario vm_user y el escritorio aparecerá en una resolución reducida. Es recomendable ir a Configuración - Pantalla y poner la resolución nativa del monitor y luego saltar a pantalla completa en el software de virtualización que se utilice.
Si se usa VirtualBox, por defecto la "tecla anfitrión" para salir de la máquina virtual y crear combinaciones de teclas que reciba directamente VirtualBox es el control derecho. Eso significa que si, por ejemplo, se pulsa Ctrl-Fin durante la edición de código fuente (con control derecho) la combinación la recibirá VirtualBox, y parecerá no funcionarar. Una forma de evitarlo es cambiar esa "tecla anfitrión" en VirtualBox.