유틸리티/HustOJ
-
[HustOJ] 한국어로 설정하기유틸리티/HustOJ 2023. 12. 13. 10:49
현재 HustOJ를 설치하면 /home/judge/src/web/include/db_info.inc.php의 $OJ_LANG와 HTTP_ACCEPT_LANGUAGE 헤더를 바탕으로 언어를 자동으로 설정해준다. 또한, 기본적으로 syzoj라는 템플릿을 사용하여 사이트를 구성한다. 하지만, syzoj 템플릿은 중국인이 개발하여 배포하는 만큼 일부분 한글화가 부족하여 중국어나 영어가 섞여있다. 이와 같은 불편함을 해결하고자 수정한 템플릿을 원본 License인 GPL3에 따라 템플릿을 배포한다. https://github.com/syudal/SYZOJ-Kor GitHub - syudal/SYZOJ-Kor: Korean version of the HustOJ SYZOJ theme. Korean version o..
-
[HustOJ] Online Judge System 구축하기유틸리티/HustOJ 2023. 8. 23. 13:01
HustOJ HustOJ는 전세계에서 흔히 사용하는 Online Judge System의 한 종류이다. 한국에서도 여러 대학, 중고등학교에서 수행평가나 프로그래밍 학습 교구로 많이 사용하고 있다. 다만, 현재 구글에 올라온 구축 방법들이 상당히 오래전 방법이라 최신 방법을 포스팅하고자 한다. ※ Ubuntu 22.04 LTS jammy를 기준으로 작성함. 1. HustOJ 다운로드 후 설치하기 설치 방법은 예전과 다르게 많이 간편화되어 아래의 명령어 두줄이면 자동으로 설치를 시작한다. 다만, Ubuntu 운영체제만 지원하며, WSL 및 도커로 구축한 Ubuntu는 지원되지 않고 듀얼 코어 CPU와 2G RAM 이상의 사양을 요구한다. wget http://dl.hustoj.com/install.sh su..
-
[HustOJ] 아이디에 '-'가 포함된 경우 사용자 정보 불러오지 못하는 오류 해결하기유틸리티/HustOJ 2023. 8. 18. 08:31
HustOJ에서 사용자 ID에 '-'가 포함된 경우에는 No such User! 라는 메시지를 출력하며, 사용자의 정보를 불러올 수 없는 오류가 있다. 이는 사용자 ID가 올바른지 검사하는 로직에서 사용자 ID의 범위를 a ~ z, A ~ Z, 0 ~ 9, _ 로 제한하고 있기 때문이다. 따라서 해당 로직을 수정하면 해결된다. 1. HustOJ가 설치된 경로에서 src/web/include 경로로 이동한다. cd ../../ cd /home/judge/src/web/include/ 2. my_func.inc.php를 열어 해당 로직을 아래와 같이 값을 수정한다. function is_valid_user_name($user_name){ $len=strlen($user_name); for ($i=0;$i='..
-
[HustOJ] no test data : no *.in file found 해결하기유틸리티/HustOJ 2023. 7. 14. 15:33
HustOJ로 구축된 사이트를 운영하다보면 특정 문제에서 아래와 같은 메시지를 출력하며 실행중 에러 AC:0% Flag를 띄운다. no test data : no *.in file found ----time_space_table:---- 점수 : 0.000 해당 문제에 테스트 케이스 데이터가 없어서 생기는 문제이므로, HustOJ의 설치 경로에 테스트 케이스 데이터를 생성해주면 된다. 보통 HustOJ 설치 폴더는 /home/judge/에 위치한다. 문제가 발생한 폴더로 이동하려면 /home/judge/data/문제가 발생한 번호/ 로 이동한다. 입력이 없는 문제의 경우에는 아래와 같은 명령어로 단순히 파일만 생성해줘도 되지만, 입력과 출력이 정해진 문제의 경우에는 테스트 케이스를 만들어서 넣어줘야한다...
-
[HustOJ] Python3로 채점 하는데 너무 느린 문제 해결하기유틸리티/HustOJ 2023. 5. 17. 09:37
HustOJ로 구축된 사이트를 운영하다보면 사용자가 Python3로 제출하는 경우, 채점이 너무 느려 문제에서 설정한 시간이 초과되는 등의 문제가 발생한다. 보편적으로 이를 해결하기 위해 Pypy3를 도입하려고 하는 등의 생각을 하겠지만, 적용하여 테스트 해본 결과 HustOJ의 채점 동작 원리 특성상 얻는 이득이 없다. 따라서, judge_client.cc를 뜯어 고치는거보다 judge.conf의 설정을 변경하는 편이 훨씬 도움이 된다. 1. HustOJ가 설치된 경로에서 ./etc 경로로 이동한다. cd ../../ cd /home/judge/src/etc/ 2. judge.conf를 열어 아래와 같이 값을 수정한다. OJ_JAVA_TIME_BONUS=10 OJ_PYTHON_FREE=1 OJ_CPU_..
-
[HustOJ] Forbidden system call:275 [4294967059] 오류 해결하기유틸리티/HustOJ 2022. 8. 25. 10:44
가끔 HustOJ로 구축된 사이트를 운영하다보면 '실행중 에러 AC:0%'라고 표시되며 아래와 같은 오류를 출력하는 경우가 있다. /1706/0601.in:[ERROR] solution_id:14111 called a Forbidden system call:275 [4294967059] TO FIX THIS , ask admin to add the CALLID into corresponding LANG_XXV[] located at okcalls32/64.h , and recompile judge_client. if you are admin and you don't know what to do , 中文解释查看知乎 https://zhuanlan.zhihu.com/p/24498599 이를 해석하면, 고치기 ..