Help us understand the problem. What is going on with this article?

2019年度最後のアンケートをsdapsで集計する

はじめに

今年度もシーズンが到来したので、253名ほどの方々を対象としたアンケートを準備しました。
(本当におめでとうございます。新型ウィルスの影響で残念ながら出席できなかった方達もいたと思われる点が残念です。)

昨年度は、sdapsのバージョンが1.9.5でしたが、Ubuntu 18.04 (LTS)のパッケージは更新されていて、現時点では1.9.8に変更になっています。特に大きな影響はないですが、これに合わせて過去の投稿は更新しています。

この記事では、元記事に反映させるのが難しかった雑多な事についてメモを残していきます。

これまでに投稿した記事

技術的なポイントは、Ubuntu 18.04でSDAPSを動かしてみた (sdaps-1.9.8対応済み) に反映しています。

今回の新しいこと

reportコマンドにはバグがあり、singlechoiceを指定した設問の結果が出力されない問題があります。今回はreport_texについて日本語出力のための修正を行なって、reportの問題にreport_texで対応しています。この他に手書き部分を差し替えるため、出力されるPDFを直接編集していましたが、report_texを利用して中間生成されるreport.texを修正する方が自由度が高いので良いかなと思っているところです。

また再現性のある環境を準備するために、変更済みのsdapsコマンドをdocker環境で実行できるように準備しています。

遭遇した課題と感想

利用している機器は昨年度と同様に、OKI B841dnマルチページtiffが出力できるブラザーのADS-3600Wです。

OKI B841dnの1ページの印刷コストが公称2.9円ですから、250枚ほどの用紙を準備するのに1450円 + 紙代ほどかかっている事になります。人件費を考慮しても、マークシートよりは格段に安いですが、精度やソフトウェアの品質については満足しているものの、不安な点があります。

今回あらためて気になったのは次のような点です。

  • 以前は"csv export"コマンドは、"csv project export"の順番でないと認識しない問題があったが、今回は"csv export project"の順番でないと認識しない (挙動自体は正しく、バグが修正された印象)
  • "reset"コマンドの挙動は毎回不安定で、今回はエラーとなるので、プロジェクトディレクトリ全体をgitの管理下に置いた。(実際は念のためprojectディレクトリのバックアップを取得している)
  • latexファイル中のcheckbox(choicequestion)の指定にsinglechoiceを指定すると、reportにデータが表示されない。(report_texでは表示されるが、別途テンプレートの変更が必要。手書きイメージを削除したり、操作するのにはreport_texの"--create-tex"オプションが便利)
  • latex(xelatex)を利用しているため、日本語を表示するために必要な変更が必要で、他の言語とうまく共存することが難しい。
  • Pythonのコード中にtexのテンプレートが追記されていたりするので、後方互換性を保ったまま変更することは、ほぼ無理。
  • 別件で2ページ以上の質問票を準備する機会があったが、sdapsの制約上、質問票は1,2,4,6ページで準備する必要があり、エラーとなる3,5ページの時に追加するべき質問やtextboxの分量があらかじめ分からないこと。

こういった問題のいくつかはissueといてgithubに登録されていますが、度々再現したり、修正されずに放置されていたりするものもあります。

さいごに

数年前とは違い、読み取り品質は改善されていて、作者には感謝しています。バグを含みやすいアプリケーションの構造については時間があれば手を入れて貢献したいとは思っていますが、他のアプリからも依頼がきているのに作成できていないpull requestがあるので、難しいかなと思っています。

YasuhiroABE
元エンジニアの大学教員@会津大学。ここに投稿している内容は、個人的な動機・責任で編集しているもので、勤務先・業務とは関係ありません。なお、LGTM(評価)・ストックされた記事は、その都度、可能な範囲で見直すようにしています。
https://www.yadiary.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away