- Scala 98.1%
- TeX 1.9%
| project | init | |
| src/main | add 'extra' markdown blob field to sessions sheet | |
| .gitignore | init | |
| build.sbt | still stuck at 4th chunk, trying some improvements | |
| LICENSE | init | |
| README.md | ... | |
Symposium
Utilities for managing submissions and registrations of a symposium. As well as other academic duties such as resolving Termino polls.
(C)opyright 2026 by Hanns Holger Rutz. All rights reserved. This project is released under the
GNU Affero General Public License v3+ and
comes with absolutely no warranties.
To contact the author, send an e-mail to contact at sciss.de.
requirements
This utility relies on PDFtk (pdftk) being installed.
building and running
Builds with sbt against Scala 3. See options: sbt 'run --help',
Collate form PDFs
sbt 'runMain de.sciss.symposium.CollatePDFs --help'
Example arguments for collating submission forms:
--input submissions/form-submission-%d-%s.pdf --complete-ids --field-order LastName FirstName Pronouns EMail Website JobOrAffiliation Bio Title ListOfAuthors Abstract ProposalLink Format FormOtherDescription TechnicalRequirements --int-fields Format --missing-value ??? --output submissions.xls
Example arguments for collating additional author forms:
--input submissions/form-author-%d-%s.pdf --nocomplete-ids --field-order LastName FirstName Pronouns EMail Website JobOrAffiliation Bio --sheet-name Co-Authors --missing-value ??? --output co-authors.xls
Optimise Termino Schedule
Export the Termino as CSV, and convert the CSV-file to Excel (.xls) first.
sbt 'runMain de.sciss.symposium.OptimizeTermino --help'
Example arguments for German poll with three date blocks of 22, 22, and 21 choices, respectively:
--input folep_sose_2026.xls --yes-value Ja --no-value Nein --maybe-value Vielleicht --verbose --blocks 22 22 21
Assign Reviews
sbt 'runMain de.sciss.symposium.AssignReviews --help'
Example arguments for the 2026 Forum Artistic Research:
--input reviewers-2026-choices.xlsx --num-submissions 55 --chunk 6 --max-per-chunk 2 --verbose --weights 0 0 1 80 90 --weight-neutral 45 --num-assign 2 --ignore-out-of-range --neutral-noise 2 --time-out 720 --sort-submissions --seed 1
This applies chunks / batches of six submissions, making the CSP feasible to solve. The number of assignments per reviewer is automatically calculated (if there are 22 reviewers for 55 submissions with 2 reviews for each submission, that gives a number of 5 reviews per reviewer). To avoid that all 'eggs are put in one basket', we limit the number of assignments per chunk/batch to 2.
Sadly, this process is very slow and not yet optimal. Follow it by
sbt 'runMain de.sciss.symposium.OptimizeReviewAssignments --help'
Example arguments:
--input reviewers-2026-assign.xlsx --num-submissions 55 --verbose --weights 0 0 1 80 90 --weight-neutral 45 --num-assign 2
Collate Reviews
sbt 'runMain de.sciss.symposium.CollateReviews --help'
Example arguments for collating review forms:
--input returned-reviews/submission-%d-review-%d.pdf --output review-results.xls --verbose --complete-ids --review-interlace
The output sheet can then be used to apply score calculations, e.g. averaging scores of multiple reviews.
NotifyAuthors
sbt 'runMain de.sciss.symposium.NotifyAuthors --help'
Example arguments:
--input submissions-with-results.xlsx --output-dir notify --conf-name "My Conference" --template-accept accept.txt \
--template-reject reject.txt --template-hold hold.txt --input-sheet-name Submissions
CreateProgram
Creates the files for the jekyll-theme-conference / Winterkongress based website: Markdown files for talks and
speakers, and the main program.yml configuration.
sbt 'runMain de.sciss.symposium.CreateProgram --help'
Example arguments:
--input program.xlsx --out-speakers-dir website/_speakers --out-talks-dir website/_talks \
--out-program-file website/_data/program.yml --verbose
CreateBooklet
Creates a skeleton file for producing the symposium's booklet. A kind of variant of CreateProgram, with mostly
the same arguments. The output is a markdown document that can be converted to .odt using pandoc.
sbt 'runMain de.sciss.symposium.CreateBooklet --help'
Example arguments:
--input program.xlsx --out-booklet-file booklet.md --verbose