Du kannst nicht mehr als 25 Themen auswählen
Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
134 Zeilen
4.8 KiB
TeX
134 Zeilen
4.8 KiB
TeX
\documentclass[runningheads]{llncs}
|
|
%
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{graphicx}
|
|
\usepackage[hyphens]{url}
|
|
\usepackage[unicode=true,bookmarks=true,bookmarksnumbered=true,
|
|
bookmarksopen=true,bookmarksopenlevel=1,breaklinks=false,
|
|
pdfborder={0 0 0},backref=false,colorlinks=false]{hyperref}
|
|
\usepackage{orcidlink}
|
|
\usepackage{varioref}
|
|
\usepackage{cleveref}
|
|
\usepackage{xcolor} % more colors
|
|
\usepackage[listings,breakable,skins]{tcolorbox}
|
|
\definecolor{darkgreen}{rgb}{0.0, 0.5, 0.0}
|
|
\definecolor{darkred}{rgb}{0.5, 0, 0.0}
|
|
% Colors of the Albert Ludwigs University as in
|
|
% https://cd.uni-freiburg.de/farben/
|
|
\definecolor{UniBlau}{RGB}{52, 74, 154}
|
|
\definecolor{UniGrün}{RGB}{0, 153, 125}
|
|
\definecolor{UniBraun}{RGB}{143, 107, 48}
|
|
\definecolor{UniGelb}{RGB}{255, 232, 99}
|
|
\definecolor{UniRosa}{RGB}{245, 194, 237}
|
|
\definecolor{UniRosaStrong}{RGB}{255, 151, 171}
|
|
\definecolor{UniSand}{RGB}{246, 241, 227}
|
|
|
|
\lstset{
|
|
basicstyle=\footnotesize\ttfamily,
|
|
commentstyle=\footnotesize\ttfamily,
|
|
numbers=left,
|
|
numberstyle=\ttfamily\color{gray}\footnotesize,
|
|
stepnumber=1,
|
|
numbersep=7pt,
|
|
showspaces=false,
|
|
showstringspaces=false,
|
|
showtabs=false,
|
|
tabsize=2,
|
|
captionpos=b,
|
|
breaklines=true,
|
|
breakatwhitespace=false,
|
|
keepspaces=true,
|
|
showspaces=false,,
|
|
showstringspaces=false,
|
|
showtabs=false,
|
|
title=\lstname,
|
|
}
|
|
\newtcblisting[auto counter, list inside=codes,crefname={lst.}{lst.s},Crefname={Listing}{Listings}]{tcbcode}[2][]{%
|
|
skin=enhanced,
|
|
title=Listing~\thetcbcounter:~#2,
|
|
list entry=\thetcbcounter\qquad#2,
|
|
listing only,
|
|
size=small, left=6mm,
|
|
code={\setstretch{1.125}},
|
|
colback=UniSand!50!white,
|
|
colbacktitle=UniBlau,
|
|
colframe=UniBlau,
|
|
breakable,
|
|
lines before break=3,
|
|
#1
|
|
}
|
|
|
|
\graphicspath{ {./img/} }
|
|
\newcommand{\smimage}[3][width=1\textwidth]{ %
|
|
\begin{figure}[h] %
|
|
\centering %
|
|
\includegraphics[#1]{#2} %
|
|
\caption{#3} %
|
|
\label{fig:#2} %
|
|
\end{figure} %
|
|
}
|
|
|
|
|
|
\begin{document}
|
|
%
|
|
\title{ddrescue-tui -- A Terminal UI for ddrescue}
|
|
%\titlerunning{ddrescue-tui}
|
|
\author{Simon Moser \orcidlink{0009-0003-4916-9317}}
|
|
\authorrunning{S. Moser}
|
|
\institute{University of Freiburg, Freiburg, Germany}
|
|
\maketitle
|
|
|
|
\begin{abstract}
|
|
This paper presents ddrescue-tui, a terminal user interface for the data recovery utility ddrescue.
|
|
The tool allows users to visualize the status of disk blocks during the rescue process,
|
|
as well as to start and control ddrescue from the terminal.
|
|
The tool parses the map files generated by ddrescue and plots them as heat maps using matplotlib.
|
|
It also uses the textual framework to create an interactive and user-friendly interface.
|
|
The paper describes the implementation details, the functionalities, and the project management aspects of the tool.
|
|
It concludes with some limitations and future directions for the tool.
|
|
\keywords{ddrescue \and terminal \and parsing \and visualization}
|
|
\end{abstract}
|
|
|
|
\section{Introduction}\label{sec:introduction}
|
|
\input{sections/introduction}
|
|
|
|
\section{Parsing mapfiles}\label{sec:parsing-mapfiles}
|
|
\input{sections/parsing-mapfiles}
|
|
|
|
\section{Plotting parsed block information}\label{sec:plotting-parsed-block-information}
|
|
\input{sections/plotting}
|
|
|
|
\section{Terminal User Interface (TUI)}\label{sec:terminal-user-interface-(tui)}
|
|
\input{sections/terminal-ui}
|
|
|
|
\section{Project management with CI/CD}\label{sec:project-management-with-ci/cd}
|
|
\input{sections/project-management}
|
|
|
|
\section{Conclusion}\label{sec:conclusion}
|
|
\input{sections/conclusion}
|
|
|
|
\bibliographystyle{splncs04}
|
|
\bibliography{report}
|
|
\nocite{ddrescue}
|
|
|
|
\newpage
|
|
\appendix
|
|
\begin{tabular}{l|p{10cm}}
|
|
\textbf{Topics} & \textbf{Implementation} \\
|
|
\hline
|
|
Linux & The tool is developed for Linux, but apart from the peculiarities of different terminal emulators,
|
|
there were no special problems that were dealt with \\
|
|
Text editor & Text editors and IDEs were used to develop the tool, but not in any special way. \\
|
|
Git & During development, the various possibilities of CI/CD with GitHub were explored, such as GitHub Actions. \\
|
|
Docker & Apart from GitHub Actions, containerization was not used. \\
|
|
Automation & The whole application is written in Python, especially the parsing of mapfiles
|
|
which is described in \vref{sec:parsing-mapfiles}.\\
|
|
matplotlib & Utilized for the generation of diagrams showing the rescuing status of ddrescue,
|
|
as described in \vref{sec:plotting-parsed-block-information}.\\
|
|
\latex & The report was composed in \latex, but there are no specific details to mention. \\
|
|
LLM & LLMs were used for selected individual purposes in the preparation of the report,
|
|
see \vref{subsec:writing-process} for details.\\
|
|
\end{tabular}
|
|
|
|
\end{document}
|