\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 <br><br> 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.



