\documentclass[DIV=13,%
BCOR=0mm,%
headinclude=false,%
footinclude=false,open=any,%
fontsize=10pt,%
oneside,%
paper=a5]%
{scrbook}
\usepackage[noautomatic]{imakeidx}
\usepackage{microtype}
\usepackage{graphicx}
\usepackage{alltt}
\usepackage{verbatim}
\usepackage[shortlabels]{enumitem}
\usepackage{tabularx}
\usepackage[normalem]{ulem}
\def\hsout{\bgroup \ULdepth=-.55ex \ULset}
% https://tex.stackexchange.com/questions/22410/strikethrough-in-section-title
% Unclear if \protect \hsout is needed. Doesn't looks so
\DeclareRobustCommand{\sout}[1]{\texorpdfstring{\hsout{#1}}{#1}}
\usepackage{wrapfig}
% avoid breakage on multiple
and avoid the next [] to be eaten
\newcommand*{\forcelinebreak}{\strut\\*{}}
\newcommand*{\hairline}{%
\bigskip%
\noindent \hrulefill%
\bigskip%
}
% reverse indentation for biblio and play
\newenvironment*{amusebiblio}{
\leftskip=\parindent
\parindent=-\parindent
\smallskip
\indent
}{\smallskip}
\newenvironment*{amuseplay}{
\leftskip=\parindent
\parindent=-\parindent
\smallskip
\indent
}{\smallskip}
\newcommand*{\Slash}{\slash\hspace{0pt}}
% http://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url
\PassOptionsToPackage{hyphens}{url}\usepackage[hyperfootnotes=false,hidelinks,breaklinks=true]{hyperref}
\usepackage{bookmark}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont{texgyrepagella-regular.otf}[Script=Latin,%
Ligatures=TeX,%
Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/,%
BoldFont=texgyrepagella-bold.otf,%
BoldItalicFont=texgyrepagella-bolditalic.otf,%
ItalicFont=texgyrepagella-italic.otf]
\setmonofont{cmuntt.ttf}[Script=Latin,%
Ligatures=TeX,%
Scale=MatchLowercase,%
Path=/usr/share/fonts/truetype/cmu/,%
BoldFont=cmuntb.ttf,%
BoldItalicFont=cmuntx.ttf,%
ItalicFont=cmunit.ttf]
\setsansfont{cmunss.ttf}[Script=Latin,%
Ligatures=TeX,%
Scale=MatchLowercase,%
Path=/usr/share/fonts/truetype/cmu/,%
BoldFont=cmunsx.ttf,%
BoldItalicFont=cmunso.ttf,%
ItalicFont=cmunsi.ttf]
\newfontfamily\englishfont{texgyrepagella-regular.otf}[Script=Latin,%
Ligatures=TeX,%
Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/,%
BoldFont=texgyrepagella-bold.otf,%
BoldItalicFont=texgyrepagella-bolditalic.otf,%
ItalicFont=texgyrepagella-italic.otf]
\renewcommand*{\partpagestyle}{empty}
% global style
\pagestyle{plain}
\usepackage{indentfirst}
% remove the numbering
\setcounter{secnumdepth}{-2}
% remove labels from the captions
\renewcommand*{\captionformat}{}
\renewcommand*{\figureformat}{}
\renewcommand*{\tableformat}{}
\KOMAoption{captions}{belowfigure,nooneline}
\addtokomafont{caption}{\centering}
\deffootnote[3em]{0em}{4em}{\textsuperscript{\thefootnotemark}~}
\addtokomafont{disposition}{\rmfamily}
\addtokomafont{descriptionlabel}{\rmfamily}
\frenchspacing
% avoid vertical glue
\raggedbottom
% this will generate overfull boxes, so we need to set a tolerance
% \pretolerance=1000
% pretolerance is what is accepted for a paragraph without
% hyphenation, so it makes sense to be strict here and let the user
% accept tweak the tolerance instead.
\tolerance=200
% Additional tolerance for bad paragraphs only
\setlength{\emergencystretch}{30pt}
% (try to) forbid widows/orphans
\clubpenalty=10000
\widowpenalty=10000
% given that we said footinclude=false, this should be safe
\setlength{\footskip}{2\baselineskip}
\title{Amusewiki: a year of development}
\date{August 24-26, 2016, Cluj-Napoca}
\author{Marco Pessotto (melmothX)}
\subtitle{}
% https://groups.google.com/d/topic/comp.text.tex/6fYmcVMbSbQ/discussion
\hypersetup{%
pdfencoding=auto,
pdftitle={Amusewiki: a year of development},%
pdfauthor={Marco Pessotto},%
pdfsubject={},%
pdfkeywords={}%
}
\begin{document}
\begin{titlepage}
\strut\vskip 2em
\begin{center}
{\usekomafont{title}{\huge Amusewiki: a year of development\par}}%
\vskip 1em
\vskip 2em
{\usekomafont{author}{Marco Pessotto (melmothX)\par}}%
\vskip 1.5em
\vfill
{\usekomafont{date}{August 24-26, 2016, Cluj-Napoca\par}}%
\end{center}
\end{titlepage}
\cleardoublepage
\tableofcontents
% start a new right-handed page
\cleardoublepage
\chapter{About me: Marco Pessotto}
\begin{description}
\item[{PAUSE id}]
\texttt{MELMOTHX}
\item[{IRC}]
\texttt{melmothX} on Libera Chat and \texttt{irc.perl.org}
\item[{E-mail}]
\texttt{melmothx@gmail.com}
\item[{Homepage and documentation}]
\href{https://amusewiki.org}{\texttt{https://amusewiki.org}}
\item[{IRC channel}]
\texttt{irc://irc.libera.chat/\#amusewiki}
\item[{GitHub}]
\href{https://github.com/melmothx}{\texttt{https://github.com/melmothx}}
\item[{Background}]
Humanities (history and translations)
\end{description}
\chapter{Appearance}
\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=\textheight,width=\textwidth]{s-y-text.png}
\end{figure}
\chapter{Why would you want to use Amusewiki}
\begin{itemize}
\item\relax
built around texts, which are fully decoupled from the web application
\item\relax
support for typesetting whole books (off-line editing and expressive markup)
\item\relax
high-quality output (PDF with LaTeX quality and EPUB)
\item\relax
flat file storage with Git
\item\relax
create collections and reformat the PDF files for printing
\item\relax
OPDS server for mobile users to deliver the texts straight into the apps
\item\relax
Localized for English, German, Spanish, Finnish, French, Croatian,
Italian, Macedonian, Russian, Albanian, Swedish
\item\relax
production ready and comes with an extensive test suite
\end{itemize}
\chapter{Source file (Emacs Muse markup)}
\begin{alltt}
\#title Amusewiki: a year of development
\#author Marco Pessotto (melmothX)
\#slides on
\#lang en
\#date August 24-26, 2016, Cluj-Napoca
\#pubdate 2016-08-27
Here the *the text* **start**.
** About me: Marco Pessotto
PAUSE id :: =MELMOTHX=
IRC :: =melmothX= on Libera Chat and =irc.perl.org=
\end{alltt}
\chapter{Architecture}
\begin{itemize}
\item\relax
Muse parser: \href{https://metacpan.org/pod/Text::Amuse}{\texttt{Text::Amuse}}
\item\relax
HTML import and cleanup: \href{https://metacpan.org/pod/Text::Amuse::Preprocessor}{\texttt{Text::Amuse::Preprocessor}} (with CLI)
\item\relax
Compiler: \href{https://metacpan.org/pod/Text::Amuse::Compile}{\texttt{Text::Amuse::Compile}} (with CLI)
\item\relax
PDF cropmarks: \href{https://metacpan.org/pod/PDF::Cropmarks}{\texttt{PDF::Cropmarks}} (with CLI)
\item\relax
PDF imposition: \href{https://metacpan.org/pod/PDF::Imposition}{\texttt{PDF::Imposition}} (with CLI)
\item\relax
\texttt{DBIx::Class} and Xapian for archive indexing
\item\relax
Background daemon for indexing and compilation
\item\relax
Catalyst application on the frontend
\end{itemize}
\chapter{Bookbuilder partial selection}
\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=\textheight,width=\textwidth]{s-y-partial.png}
\end{figure}
\chapter{Prepare books for printing with the bookbuilder}
\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=\textheight,width=\textwidth]{s-y-cropmarks.png}
\end{figure}
\chapter{Slides and theme selections}
\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=\textheight,width=\textwidth]{s-y-slides-themes.png}
\end{figure}
\chapter{OPDS}
\begin{itemize}
\item\relax
Open Publication Distribution System \href{http://opds-spec.org/}{\texttt{http://opds-spec.org/}}
\item\relax
Atom feed with navigation and acquisition entries
\item\relax
Supported by most EPUB Android readers (FBreader, Aldiko, Moon+ reader)
\item\relax
Deliver the texts straight into the applications
\item\relax
Module \href{https://metacpan.org/pod/XML::OPDS}{\texttt{XML::OPDS}}
\item\relax
Example and help: \href{https://amusewiki.org/help/opds}{\texttt{https://amusewiki.org/help/opds}}
\item\relax
Transparent pagination to save bandwidth
\item\relax
HTTP authorization supported for private sites
\item\relax
Full text-search supported
\end{itemize}
\chapter{OPDS example}
\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=\textheight,width=\textwidth]{s-y-opds.png}
\end{figure}
\chapter{Blog mode}
\begin{itemize}
\item\relax
Optional feature which can be activated in the admin console
\item\relax
time-based sorting
\item\relax
teasers
\item\relax
decorative images
\item\relax
tag cloud (accessible via ajax)
\item\relax
monthly archives (accessible via ajax)
\item\relax
form free layout elements (gives a chance to the admin to fully
customize the site, in addition to local JS and CSS)
\item\relax
bootswatch theme selection \href{https://bootswatch.com/}{\texttt{https://bootswatch.com/}}
\end{itemize}
\chapter{Blog example}
\begin{figure}[htbp!]
\centering
\includegraphics[keepaspectratio=true,height=\textheight,width=\textwidth]{s-y-blog-mode.png}
\end{figure}
\chapter{Other notable improvements}
\begin{itemize}
\item\relax
SSL made free and automatic with Let's Encrypt and \href{https://metacpan.org/pod/Protocol::ACME}{Protocol::ACME}
\item\relax
Code highlight with \href{https://highlightjs.org/}{highlight.js}
\item\relax
Automatic DB upgrades with \href{https://metacpan.org/pod/DBIx::Class::DeploymentHandler}{DBIx::Class::DeploymentHandler}
\item\relax
Fine tune logging with \href{https://metacpan.org/pod/Log::Log4perl}{Log::Log4perl} and \href{https://metacpan.org/pod/Log::Contextual}{Log::Contextual}
\item\relax
Documentation on \href{https://amusewiki.org}{\texttt{https://amusewiki.org}}
\end{itemize}
\chapter{Debian packages}
Instead of running the app from the git tree on a dedicated home, with
a \texttt{local::lib} tree or with a perl installed in the home, now you can
visit \href{http://packages.amusewiki.org/}{\texttt{http://packages.amusewiki.org/}} and follow the instructions
there (import the key, add the repository, and install the package).
Minimum requirement: Debian Jessie and Ubuntu 16.04 LTS.
\href{https://github.com/melmothx/amusewiki-debian-packages}{\texttt{https://github.com/melmothx/amusewiki-debian-packages}}
\chapter{Debian packages cons}
\begin{itemize}
\item\relax
More burden on the developer
\item\relax
Trivial changes require a package rebuild
\item\relax
Needs to ship about 25 new packages (fonts and perl modules)
\item\relax
Can't use fresh code from the module used (e.g., newer Catalyst) without being too invasive.
\item\relax
Debian people usually don't like private repositories
\end{itemize}
\chapter{Debian packages pros}
\begin{itemize}
\item\relax
Installation is straightforward
\item\relax
Maintenance for the administrator is integrated in the regular apt-get routine
\item\relax
Much smaller installation footprint (mostly because the texlive
installation is optimized and shared)
\item\relax
Improved security
\begin{itemize}
\item\relax
code is installed and owned by root, not by the user running the application
\item\relax
debian is taking care of the security updates of the
dependencies (not only the perl dependencies, but also the
libraries used by LaTeX, cgit and other utilities)
\end{itemize}
\item\relax
0 downtime upgrades out of the box
\item\relax
Predictability of locations and module versions (so gets more live testing)
\end{itemize}
\chapter{Questions?}
\begin{center}
Thanks!
\end{center}
% begin final page
\clearpage
% new page for the colophon
\thispagestyle{empty}
\begin{center}
\bigskip
\includegraphics[width=0.25\textwidth]{logo-amw.pdf}
\bigskip
\end{center}
\strut
\vfill
\begin{center}
Marco Pessotto (melmothX)
Amusewiki: a year of development
August 24-26, 2016, Cluj-Napoca
\bigskip
\bigskip
\textbf{amusewiki.org}
\end{center}
% end final page with colophon
\end{document}
% No format ID passed.