Bulan Ketiga & Keempat Fellowship: Full Speed Development

Setelah terasa kurang produktif pada dua bulan pertama, akhirnya pada bulan ketiga dan keempat kami berhasil menyelesaikan versi awal dari beberapa komponen dari proyek Judgment Angels ini. Berikut adalah kumpulan screenshot dari komponen-komponen tersebut:

1. Jophiel (Single Sign-On)

Sistem SSO yang dibuat menggunakan protokol OpenId Connect. Pada dasarnya nantinya aplikasi apapun dapat menggunakan servis ini (tidak harus Judgment Angels) asalkan menggunakan protokol tersebut.jophiel

 

 

2. Sandalphon (Resource Repository)

Intinya adalah “bank soal”. Nantinya semua soal akan masuk ke bank ini (tidak tercecer). Yang didukung tidak hanya soal programming, melainkan juga soal jenis pilihan ganda, untuk keperluan OSK/OSP.

Untuk soal programming, kelebihan Sandalphon dibandingkan TOKI Learning Center versi lama adalah:

  • Didesain agar bisa mendukung (hampir) semua tipe soal yang ada, termasuk soal-soal IOI tahun-tahun terakhir yang formatnya unik. Contohnya: pengumpulan dua berkas source code untuk satu soal dan soal yang menggunakan library tertentu saat kompilasinya.
  • Setiap kasus uji dapat masuk ke dalam lebih dari satu subsoal. Pada TLC versi lama, setiap kasus uji hanya dapat termasuk pada satu subsoal saja. Hal ini mengakibatkan kadang-kadang peserta mendapat poin pada subsoal 2 namun tidak pada subsoal 1, padahal batasan subsoal 1 juga memenuhi batasan subsoal 2.

sandalphon

3. Uriel (Competition Gate)

Merupakan portal kontes-kontes. Rencana ke depannya adalah membuat TOKI Open Contest dengan aturan yang menarik sehingga pesertanya semakin banyak. Uriel ini juga rencananya akan dipakai pada Pelatnas 2 TOKI 2015.

uriel

4. Sealtiel (Communicator)

Adalah “perantara” antara Sandalphon/Uriel dengan grader. Sealtiel menggunakan RabbitMQ untuk menyimpan antrean grading request. Salah satu menggunakan perantara ini adalah kita dapat mendaftarkan lebih dari satu grader, bahkan bisa di mesin yang berbeda.

P.S. Karena Sealtiel tidak terlihat oleh publik, jadinya belum sempat kami percantik string i18n (internationalization)-nya :p

P.S. Screenshot di bawah ini adalah Sealtiel di mesin lokal, sehingga string username dan password yang tercantum tidak berbahaya untuk ditampilkan.

sealtiel

 

5. Gabriel (Grader)

Engine grader menggunakan Moe Isolate. Kelebihan Isolate dibandingkan pendahulunya, yakni Box, adalah dapat menjalankan program multi-proses di dalam sandbox. Artinya, bahasa Java dapat di-support!

Karena Gabriel hanya merupakan aplikasi command-line, maka tidak ada screenshot-nya 😛

TOKI Open Contest Beta Testing #1

Untuk menguji keseluruhan komponen sebelum benar-benar digunakan untuk Pelatnas, maka diadakanlah TOKI Open Contest pada Sabtu-Minggu, 21-22 Februari 2015 lalu. Berikut adalah beberapa statistik:

  • Bantaknya pendaftar: 96
  • Banyaknya pengumpulan: 480
  • Banyaknya peserta yang mendapat nilai tidak 0: 43

Open Contest ini telah mengungkap beberapa bug yang fatal yang tidak terlihat selama pengembangan. Di antaranya adalah:

  • Scoreboard yang tidak terupdate; hal ini karena admin iseng-iseng submit dan ID-nya tidak dapat ditemukan pada daftar peserta, sehingga scoreboard crash saat mencoba memproses submission tersebut.
  • Peserta dapat melihat submission orang lain hanya dengan mengubah nilai ID pada URL di browser. Simpel: karena lupa dicek di kodenya.
  • Grader belum stabil; banyak submission yang mengalami internal error maupun pending lama. Dugaannya adalah resource yang digunakan Isolate tidak di-cleanup dengan sempurna saat selesai grading, sehingga menimbulkan masalah pada grading setelahnya. Akan segera diperbaiki. Pelajaran yang didapat: selalu nyalakan logging! Saat Open Contest kemarin, grader belum dilengkapi dengan logging, sehingga kami tidak tahu grader-nya “macet” pada proses yang mana.

Pelajaran utama yang didapat: selalu adakan testing untuk aplikasi yang akan dirilis. Bug-bug yang Open Contest ini akan fatal apabila baru ditemukan saat Pelatnas berlangsung!

Sekian. Hal yang akan dilakukan berikutnya adalah: membuka kode (open source) pada GitHub. Stay tuned!

 

 

5 thoughts on “Bulan Ketiga & Keempat Fellowship: Full Speed Development

  1. “Peserta dapat melihat submission orang lain hanya dengan mengubah nilai ID pada URL di browser. Simpel: karena lupa dicek di kodenya.”

    Sama kyk ranau versi awal 😀

Leave a Reply