Контрольная работа в unиx-стиле

13 мая, 17:54 / ВНТУ, учёба, unix way, LaTeX, Perl, Template Toolkit, DES

Приближается экзаменационная сессия. Сокурсники попросили меня помочь им с контрольной работой по дисциплине «Основи захисту інформації» («Основы защиты информации»). Поэтому в этот раз я решил максимально автоматизировать процесс выполнения поставленной задачи.

Контрольная состоит из четырёх заданий по криптографии. Главная суть каждого: зашифровать произвольный текст заданным методом или алгоритмом.

Общая идея была такова: составить файлы с исходными данными для заданий (открытые тексты, шифроключи), написать программы для произведения расчётов и подготовить шаблоны, по которым работа будет собираться воедино.

По новой традиции документы составлены на LaTeX-е. Расчёт делается на Perl-е. Шаблонами заправляет Template Toolkit. А всю работу координирует GNU Make.

Вот, например, кусочек шаблона первого задания:

	\subsection*{Створення ключа}

	Вихідним алфавітом є~малі літери українського алфавіту та~дефіс:

	\begin{center}
		\begin{tabular}{*{%% Abc.size %%}{|c}|}
			\hline
			%%- FOREACH a IN Abc %%
				\verb#%% a %%#
				%%- LAST IF loop.last %% &
			%%- END %%
			\\ \hline
		\end{tabular}
	\end{center}

Теперь необходимо подготовить к печати, допустим, 25 работ. Наполняем dat-файлы исходными данными, выполняем команду make batch и через две минуты получаем 25 PDF-файлов. Класс!

Польза, которую я извлёк из работы: нашёл баг в TT, вспомнил про КОИ-8, лучше разобрался с GNU Make-ом и git-ом, осилил DES, помог людям (:

Исходный код доступен на GitHub-е. А ещё есть пример уже готовой контрольной (PDF, 340 КБ, 34 стр.), если интересно.

Комментарии

vti 13 мая, 19:03
"Первинний код" -- как-то режет ухо, не?
Максим Вуец 13 мая, 19:10
vti, а как лучше? Мне «вихідний» тоже не очень нравится.
vti 13 мая, 19:32
Это сложный вопрос :)