De regreso, perros, publicación de entrada 5!

This commit is contained in:
perro tuerto 2020-02-15 13:06:46 -06:00
parent 3ab1547b68
commit 4a67737b82
7 changed files with 5128 additions and 0 deletions

View File

@ -0,0 +1,391 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>How It Is Made: Master Research Thesis</title>
<meta charset="utf-8" />
<meta name="application-name" content="Publishing is Coding: Change My Mind">
<meta name="description" content="Blog about free culture, free software and free publishing.">
<meta name="keywords" content="publishing, blog, book, ebook, methodology, foss, libre-software, format, markdown, html, epub, pdf, mobi, latex, tex, culture, free culture, philosophy">
<meta name="viewport" content="width=device-width, user-scalable=0">
<link rel="shortcut icon" href="../../../icon.png">
<link rel="alternate" type="application/rss+xml" href="https://perrotuerto.blog/feed/" title="Publishing is Coding: Change My Mind">
<link type="text/css" rel="stylesheet" href="../../../css/styles.css">
<link type="text/css" rel="stylesheet" href="../../../css/extra.css">
<script type="application/javascript" src="../../../js/functions.js"></script>
</head>
<body>
<header>
<h1><a href="https://perrotuerto.blog/content/html/en/">Publishing is Coding: Change My Mind</a></h1>
<nav> <p> <a href="../../../content/html/en/_links.html">Links</a> | <a href="../../../content/html/en/_about.html">About</a> | <a href="../../../content/html/en/_contact.html">Contact</a> | <a href="../../../content/html/en/_fork.html">Fork</a> | <a href="../../../content/html/en/_donate.html">Donate</a> </p>
</nav>
</header>
<div id="controllers">
<a onclick="zoom(true)">+</a>
<a onclick="zoom(false)"></a>
<a onclick="mode(this)">N</a>
</div>
<section>
<h1 id="how-it-is-made-master-research-thesis">How It Is Made: Master Research Thesis</h1>
<blockquote class="published">
<p>Published: 2020/02/15, 13:00</p>
</blockquote>
<p>Uff, after six months of writing, reviewing, deleting, yelling and almost giving up, I finally finished the Master's research thesis. You can check it out <a href="https://maestria.perrotuerto.blog">here</a>.</p>
<p>The thesis is about intellectual property, commons and cultural and philosophical production. I completed the Master's of Philosophy at the National Autonomous University of Mexico (<span class="smallcap">UNAM</span>). This research was written in Spanish and it consists of almost 27K words and ~100 pages.</p>
<p>Since the beginning, I decided not to write it with a text processor such as <a href="https://www.libreoffice.org">LibreOffice</a> nor Microsoft Office. I made that decision because:</p>
<ul>
<li>
<p>Office software was designed for a particular kind of work, not for research purposes.</p>
</li>
<li>
<p>Bibliography managing or reviewing the writing could be very very messy.</p>
</li>
<li>
<p>I needed several outputs which would require heavy clean up if I wrote the research in <span class="smallcap">ODT</span> or <span class="smallcap">DOCX</span> formats.</p>
</li>
<li>
<p>I wanted to see how far I could go by just using <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a>, a terminal and <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software"><span class="smallcap">FOSS</span></a>.</p>
</li>
</ul>
<p>In general the thesis is actually an automated repository where you can see everything—including the entire bibliography, the site and the writing history. The research uses a <a href="https://en.wikipedia.org/wiki/Rolling_release">rolling release</a> model—“the concept of frequently delivering updates.” The methodology is based on automated and multiformat standardized publishing, or as I like to call it: branched publishing.</p>
<p>This isn't the space to discuss the method, but these are some general ideas:</p>
<ul>
<li>
<p>We have some inputs which are our working files.</p>
</li>
<li>
<p>We need several outputs which would be our ready-to-ship files.</p>
</li>
<li>
<p>We want automation so we only focus on writing and editing, instead of losing our time in formatting or having nightmares with layout design.</p>
</li>
</ul>
<p>In order to be successful, it's necessary to avoid any kind of <a href="https://en.wikipedia.org/wiki/WYSIWYG"><span class="smallcap">WYSIWYG</span></a> and <a href="https://en.wikipedia.org/wiki/Desktop_publishing">Desktop Publishing</a> approaches. Instead, branched publishing employs <a href="https://en.wikipedia.org/wiki/WYSIWYM"><span class="smallcap">WYSIGYM</span></a> and typesetting systems.</p>
<p>So let's start!</p>
<h2 id="inputs">Inputs</h2>
<p>I have two main input files: the content of the research and the bibliography. I used Markdown for the content. I decided to use <a href="https://www.overleaf.com/learn/latex/Articles/Getting_started_with_BibLaTeX">BibLaTeX</a> for the bibliography.</p>
<h3 id="markdown">Markdown</h3>
<p>Why Markdown? Because it is:</p>
<ul>
<li>
<p>easy to read, write and edit</p>
</li>
<li>
<p>easy to process</p>
</li>
<li>
<p>a lightweight format</p>
</li>
<li>
<p>a plain and open format</p>
</li>
</ul>
<p>Markdown format was intended for blog writing. So “vanilla” Markdown isn't enough for research or scholarly writing. And I'm not a fan of <a href="https://pandoc.org/MANUAL.html#pandocs-markdown">Pandoc's Markdown</a>.</p>
<p>Don't get me wrong, <a href="https://pandoc.org">Pandoc</a> <i>is</i> the Swiss knife for document conversion, its name suits it perfectly. But for the type of publishing I do, Pandoc is part of the automation process and not for inputs or outputs. I use Pandoc as a middleman for some formats as it helps me save a lot of time.</p>
<p>For inputs and output formats I think Pandoc is a great general purpose tool, but not enough for a fussy publisher like this <i>perro</i>. Plus, I love scripting so I prefer to employ my time on that instead of configuring Pandoc's outputs—it helps me learn more. So in this publishing process, Pandoc is used when I haven't resolved something or I'm too lazy to do it, <span class="smallcap">LOL</span>.</p>
<p>Unlike text processing formats as <span class="smallcap">ODT</span> or <span class="smallcap">DOCX</span>, <span class="smallcap">MD</span> is very easy to customize. You don't need to install plugins, rather you just generate more syntax!</p>
<p>So <a href="http://pecas.perrotuerto.blog/html/md.html">Pecas' Markdown</a> was the base format for the content. The additional syntax was for citing the bibliography by its id.</p>
<figure>
<img src="../../../img/p005_i001.png" alt="The research in its original MD input."/>
<figcaption>
The research in its original <span class="smallcap">MD</span> input.
</figcaption>
</figure>
<h3 id="biblatex">BibLaTeX</h3>
<p>Formatting a bibliography is one of the main headaches for many researchers. It requires a lot of time and energy to learn how to quote and cite. And no matter how much experience one may have, the references or the bibliography usually have typos.</p>
<p>I know it by experience. Most of our clients' bibliographies are a huge mess. But 99.99% percent of the time it's because they do it manually… So I decided to avoid that hell.</p>
<p>They are several alternatives for bibliography formatting and the most common one is BibLaTeX, the successor of <a href="https://en.wikipedia.org/wiki/BibTeX">BibTeX</a>. With this type of format you can arrange your bibliography as an object notation. Here is a sample of an entry:</p>
<pre class="">
<code class="code-line-1">@book{proudhon1862a,</code><code class="code-line-2"> author = {Proudhon, Pierre J.},</code><code class="code-line-3"> date = {1862},</code><code class="code-line-4"> file = {:recursos/proudhon1862a.pdf:PDF},</code><code class="code-line-5"> keywords = {prio2,read},</code><code class="code-line-6"> publisher = {Office de publicité},</code><code class="code-line-7"> title = {Les Majorats littéraires},</code><code class="code-line-8"> url = {http://alturl.com/fiubs},</code><code class="code-line-9">}</code>
</pre>
<p>At the beginning of the entry you indicate its type and id. Each entry has an array of key-value pairs. Depending on the type of reference, there are some mandatory keys. If you need more, you can just add them in. This could be very difficult to edit directly because <span class="smallcap">PDF</span> compilation doesn't tolerate syntax errors. For comfort, you can use some <span class="smallcap">GUI</span> like <a href="https://www.jabref.org">JabRef</a>. With this software you can easily generate, edit or delete bibliographic entries as if they were rows in a spreadsheet.</p>
<p>So I have two types of input formats: <span class="smallcap">BIB</span> for bibliography and <span class="smallcap">MD</span> for content. I make cross-references by generating some additional syntax that invokes bibliographic entries by their id. It sounds complicated, but for writing purposes it's just something like this:</p>
<blockquote>
<p>@textcite[someone2020a] states… Now I am paraphrasing someone so I would cite her at the end @parencite[someone2020a].</p>
</blockquote>
<p>When the bibliography is processed I get something like this:</p>
<blockquote>
<p>Someone (2020) states… Now I am paraphrasing someone so I would cite her at the end (Someone, 2020).</p>
</blockquote>
<p>This syntax is based on LaTeX textual and parenthetical citations styles for <a href="http://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf">BibLaTeX</a>. The at sign (<code>@</code>) is the character I use at the beginning of any additional syntax for Pecas' Markdown. For processing purposes I could use any other kind of syntax. But for writing and editing tasks I found the at sign to be very accessible and easy to find.</p>
<p>The example was very simple and doesn't fully explore the point of doing this. By using ids:</p>
<ul>
<li>
<p>I don't have to worry if the bibliographic entries change.</p>
</li>
<li>
<p>I don't have to learn any citation style.</p>
</li>
<li>
<p>I don't have to write the bibliography section, it is done automatically!</p>
</li>
<li>
<p>I <i>always</i> get the correct structure.</p>
</li>
</ul>
<p>In a further section I explain how this process is possible. The main idea is that with some scripts these two inputs became one, a Markdown file with an added bibliography, ready for automation processes.</p>
<h2 id="outputs">Outputs</h2>
<p>I hate <span class="smallcap">PDF</span> as the only research output, because most of the time I made a general reading on screen and, if I wanted a more detailed reading, with notes and shit, I prefer to print it. It isn't comfortable to read a <span class="smallcap">PDF</span> on screen and most of the time printed <span class="smallcap">HTML</span> or ebooks are aesthetically unpleasant. That's why I decided to deliver different formats, so readers can pick what they like best.</p>
<p>Seeing how publishing is becoming more and more centralized, unfortunately the deployment of <span class="smallcap">MOBI</span> formats for Kindle readers is recommendable—by the way, <span class="smallcap">FUCK</span> Amazon, they steal from writers and publishers; use Amazon only if the text isn't in another source. I don't like proprietary software as Kindlegen, but it is the only <i>legal</i> way to deploy <span class="smallcap">MOBI</span> files. I hope that little by little Kindle readers at least start to hack their devices. Right now Amazon is the shit people use, but remember: if you don't have it, you don't own it. Look what happened with <a href="https://www.npr.org/2019/07/07/739316746/microsoft-closes-the-book-on-its-e-library-erasing-all-user-content">books in Microsoft Store</a></p>
<p>What took the cake was a petition from my tutor. He wanted an editable file he could use easily. Long ago Microsoft monopolized ewriting, so the easiest solution is to provide a <span class="smallcap">DOCX</span> file. I would prefer to use <span class="smallcap">ODT</span> format but I have seen how some people don't know how to open it. My tutor isn't part of that group, but for the outputs it's good to think not only in what we need but in what we could need. People barely read research, if it isn't accessible in what they already know, they won't read.</p>
<p>So, the following outputs are:</p>
<ul>
<li>
<p><span class="smallcap">EPUB</span> as standard ebook format.</p>
</li>
<li>
<p><span class="smallcap">MOBI</span> for Kindle readers.</p>
</li>
<li>
<p><span class="smallcap">PDF</span> for printing.</p>
</li>
<li>
<p><span class="smallcap">HTML</span> for web surfers.</p>
</li>
<li>
<p><span class="smallcap">DOCX</span> as editable file.</p>
</li>
</ul>
<h3 id="ebooks">Ebooks</h3>
<figure>
<img src="../../../img/p005_i002.png" alt="The research in its EPUB output."/>
<figcaption>
The research in its <span class="smallcap">EPUB</span> output.
</figcaption>
</figure>
<p>I don't use Pandoc for ebooks, instead I use a publishing tool we are developing: <a href="https://pecas.perrotuerto.blog">Pecas</a>. “Pecas” means “freckles,” but in this context it's in honor of a pinto dog from my childhood.</p>
<p>Pecas allows me to deploy <span class="smallcap">EPUB</span> and <span class="smallcap">MOBI</span> formats from <span class="smallcap">MD</span> plus document statistics, file validations and easy metadata handling. Each Pecas project can be heavily customized since it allows Ruby, Python or shell scripts. The main objective behind this is the ability to remake ebooks from recipes. Therefore, the outputs are disposable in order to save space and because you don't need them all the time and shouldn't edit final formats!</p>
<p>Pecas is rolling release software with <span class="smallcap">GNU</span> General Public License, so it's open, free and <i>libre</i> program. For a couple months Pecas has been unmaintained because this year we are going to start all over again, with cleaner code, easier installation and a bunch of new features—I hope, we need <a href="https://perrotuerto.blog/content/html/en/_donate.html">your support</a>.</p>
<h3 id="pdf">PDF</h3>
<p>For <span class="smallcap">PDF</span> output I rely on LaTeX and LuaLaTeX. Why? Just because it is what I'm used to. I don't have any particular argument against other frameworks or engines inside the TeX family. It's a world I still have to dig more into.</p>
<p>Why don't I use desktop publishing instead, like InDesign or Scribus? Outside of its own workflow, desktop publishing is hard to automate and maintain. This approach is great if you just want a <span class="smallcap">PDF</span> output or if you desire to work with a <span class="smallcap">GUI</span>. For file longevity and automated and multiformat standardized publishing, desktop publishing simply isn't the best option.</p>
<p>Why don't I just export a <span class="smallcap">PDF</span> from the <span class="smallcap">DOCX</span> file? I work in publishing, I still have some respect for my eyes…</p>
<p>Anyway, for this output I use Pandoc as a middleman. I could have managed the conversion from <span class="smallcap">MD</span> to <span class="smallcap">TEX</span> format with scripts, but I was lazy. So, Pandoc converts <span class="smallcap">MD</span> to <span class="smallcap">TEX</span> and LuaLaTeX compiles it into a <span class="smallcap">PDF</span>. I don't use both programs explicitly, instead I wrote a script in order to automate this process. In a further section I explain this.</p>
<figure>
<img src="../../../img/p005_i003.png" alt="The research in its PDF output; I don't like justified text, it's bad for your eyes."/>
<figcaption>
The research in its <span class="smallcap">PDF</span> output; I don't like justified text, it's bad for your eyes.
</figcaption>
</figure>
<h3 id="html">HTML</h3>
<p>The <span class="smallcap">EPUB</span> format is actually a bunch of compressed <span class="smallcap">HTML</span> files plus metadata and a table of contents. So there is no reason to avoid a <span class="smallcap">HTML</span> output. I already have it by converting the <span class="smallcap">MD</span> with Pecas. I don't think someone is gonna read 27K words in a web browser, but you never know. It could work for a quick look.</p>
<h3 id="docx">DOCX</h3>
<p>This output doesn't have anything special. I didn't customize its styles. I just use Pandoc via another script. Remember, this file is for editing so its layout doesn't really matter.</p>
<h2 id="writing">Writing</h2>
<p>Besides the publishing method used in this research, I want to comment on some particularities about the influence of the technical setup over the writing.</p>
<h3 id="text-editors">Text Editors</h3>
<p>I never use word processors, so writing this thesis wasn't an exception. Instead, I prefer to use text editors. Between them I have a particular taste for the most minimalist ones like <a href="https://en.wikipedia.org/wiki/Vim_(text_editor)">Vim</a> or <a href="https://en.wikipedia.org/wiki/Gedit">Gedit</a>.</p>
<p>Vim is a terminal text editor. I use it on a regular basis—sorry <a href="https://en.wikipedia.org/wiki/Emacs">Emacs</a> folks. I write almost everything, including this thesis, with Vim because of its minimalist interface. No fucking buttons, no distractions, just me and the black-screen terminal.</p>
<p>Gedit is a <span class="smallcap">GUI</span> text editor and I use it mainly for <a href="https://en.wikipedia.org/wiki/Regular_expression">RegEx</a> or searches. In this project I utilized it for quick references to the bibliography. I like JabRef as a bibliography manager, but for getting the ids I just need access to the raw <span class="smallcap">BIB</span> file. Gedit was a good companion for that particular job because its lack of “buttonware”—the annoying tendency to put buttons everywhere.</p>
<h3 id="citations">Citations</h3>
<p>I want the research to be as accessible as possible. I didn't want to use a complicated citation style. That's why I only used parenthetical and textual citations.</p>
<p>This could be an issue for many scholars. But when I see typos in their complex citations and quotations, I don't have any empathy. If you are gonna add complexity to your work, the least you can do is to do it right. And let's be honest, most scholars add complexity because they want to make themselves look good—i.e. they conform with formation rules for research texts in order to be part of a community or “gain” some objectivity.</p>
<h3 id="block-quotations">Block Quotations</h3>
<p>You are not going to see any block quotes in the research. This isn't only because of accessibility—some people can't distinguish these types of quotes—but the ways in which the bibliography was handled.</p>
<p>One of the main purposes for block quotations is to provide a first and extended hand of what point a writer is making. But sometimes it's also used as text filling. In a common way to do research in Philosophy, the output tends to be a “final” paper. That text is the research plus the bibliography. This format doesn't allow to embed any other files, like papers, websites, books or data bases. If you want to provide some literal information, quotes and block quotes are the way to go.</p>
<p>Because this thesis is actually an automated repository, it contains all the references used for the research. It has a bibliography, but also each quoted work for backup and educational purposes. Why would I use block quotes if you could easily check the files? Even better, you could use some search function or go over all the data for validation purposes.</p>
<p>Moreover, the university doesn't allow long submission. I agree with that, I think we have other technical capabilities that allow us to be more synthetic. By putting aside block quotes, I had more space for the actual research.</p>
<p>Take it or leave it, research as repository and not as a file gives us more possibilities for accessibility, portability and openness.</p>
<h3 id="footnotes">Footnotes</h3>
<p>Oh, the footnotes! Such a beautiful technique for displaying side text. It works great, it permits metawriting and so on. But it works as expected if the output you are thinking of is, firstly, a file and secondly, a text with fixed layout. In other types of outputs, footnotes can be a nightmare.</p>
<p>I have the conviction that most footnotes can be incorporated into the text. This is due to three personal experiences. During my undergraduate and graduate studies, as a Philosophy student we had to read a lot of fucking critical editions, which tend to have their “critical” notes as footnotes. For these types of text I get it, people don't want to confuse their words for someone else's, less if it's between a philosophical authority and a contemporary philosopher—take note that it's a personal taste and not a mandate. But this is a shitty Master's research thesis, not a critical edition.</p>
<p>I used to hate footnotes, now I just dislike them. Part of my job is to review, extract and fix other peoples' footnotes. I can bet you that half of the time footnotes aren't properly displayed or they are missing. Commonly this is not a software error. Sometimes it's because people do them manually. But I won't blame publishers nor designers for their mistakes. The way things are developing in publishing, most of the time the issue is the lack of time. We are being pushed to publish books as fast as we can and one of the side effects of that is the loss of quality. Bibliography, footnotes and block quotes are the easiest way to find out how much care has gone into a text.</p>
<p>I do blame some authors for this mess. I repeat, it is just a personal experience, but in my work I have seen that most authors put footnotes in the following situations:</p>
<ul>
<li>
<p>They want to add shit but not to rewrite shit.</p>
</li>
<li>
<p>They aren't very good writers or they are in a hurry, so footnotes are the way to go.</p>
</li>
<li>
<p>They think that by adding footnotes, block quotes or references they can “earn” objectivity.</p>
</li>
</ul>
<p>I think the thesis needs more rewriting, I could have written things in a more comprehensive way, but I was done—writing philosophy is not my thing, I prefer to speak or program (!) it. That is why I took my time on the review process—ask my tutor about that, <span class="smallcap">LMFAO</span>. It would have been easier for me to just add footnotes, but it would have been harder for you to read that shit. Besides that, footnotes take more space than rewriting.</p>
<p>So, with respect to the reader and in agreement with the text extension of my university, I decided not to use footnotes.</p>
<h2 id="programming">Programming</h2>
<p>As you can see, I had to write some scripts and use third party software in order to have a thesis as an automated repository. It sounds difficult or perhaps like nonsense, but, doesn't Philosophy have that kind of reputation, anyway? >:)</p>
<h3 id="md-tools">MD Tools</h3>
<p>The first challenges I had were:</p>
<ul>
<li>
<p>I needed to know exactly how many pages I had written.</p>
</li>
<li>
<p>I wanted an easier way to beautify <span class="smallcap">MD</span> format.</p>
</li>
<li>
<p>I had to make some quality checks in my writing.</p>
</li>
</ul>
<p>Thus, I decided to develop some programs for these tasks: <a href="https://gitlab.com/snippets/1917485"><code>texte</code></a>, <a href="https://gitlab.com/snippets/1917487"><code>texti</code></a> and <a href="https://gitlab.com/snippets/1917488"><code>textu</code></a>, respectively.</p>
<p>These programs are actually Ruby scripts that I put on my <code>/usr/local/bin</code> directory. You can do the same, but I wouldn't recommended it. Right now in Programando <span class="smallcap">LIBRE</span>ros we are refactoring all that shit so they can be shipped as a Ruby gem. So I recommend waiting.</p>
<p>With <code>texte</code> I am able to know the number of lines, characters, characters without spaces, words and three different page sizes: by every 1.800 characters with spaces, by every 250 words and an average of both—you can set other lengths for page sizes.</p>
<p>The <span class="smallcap">MD</span> beautifier is <code>texti</code>. For the moment it only works well with paragraphs. It was good enough for me, my issue was with the disparate length of lines—yeah, I don't use line wrap.</p>
<figure>
<img src="../../../img/p005_i004.png" alt="texti sample help display."/>
<figcaption>
<code>texti</code> sample help display.
</figcaption>
</figure>
<p>I also tried to avoid some typical mistakes while using quotation marks or brackets: sometimes we forget to close them. So <code>textu</code> is for this quality check.</p>
<p>These three programs were very helpful for my writing, that is why we decided to continue in its development as a Ruby gem. For our work and personal projects, <span class="smallcap">MD</span> is our main format, so we are obligated to provide tools that help writers and publishers also using Markdown.</p>
<h3 id="baby-biber">Baby Biber</h3>
<p>If you are into TeX family, you probably know <a href="https://en.wikipedia.org/wiki/Biber_(LaTeX)">Biber</a>, the bibliography processing program. With Biber we are able to compile bibliographic entries of BibLaTeX in <span class="smallcap">PDF</span> outputs and carry out checks or clean ups.</p>
<p>I started to have issues with the references because our publishing method implies the deployment of outputs in separate processes from the same inputs, in this case <span class="smallcap">MD</span> and <span class="smallcap">BIB</span> formats. With Biber I was able to add the bibliographic entries but only for <span class="smallcap">PDF</span>.</p>
<p>The solution I came to was the addition of references in <span class="smallcap">MD</span> before any other process. In doing this, I merged the inputs in one <span class="smallcap">MD</span> file. This new file is used for the deployment of all the outputs.</p>
<p>This solution implies the use of Biber as a clean up tool and the development of a program that processes bibliographic entries of BibLaTeX inside Markdown files. <a href="https://gitlab.com/snippets/1917492">Baby Biber</a> is this program. I wanted to honor Biber and make clear that this program is still in its baby stages.</p>
<p>What does Baby Biber do?</p>
<ul>
<li>
<p>It generates a new <span class="smallcap">MD</span> file with references and bibliography.</p>
</li>
<li>
<p>It adds references if the original <span class="smallcap">MD</span> file calls to <code>@textcite</code> or <code>@parencite</code> with a correct BibLaTeX id.</p>
</li>
<li>
<p>It adds the bibliography to the end of the document according to the called references.</p>
</li>
</ul>
<p>One headache with references and bibliography styles is how to customize them. With Pandoc you can use <a href="https://github.com/jgm/pandoc-citeproc"><code>pandoc-citeproc</code></a> which allows you to select any style written in <a href="https://en.wikipedia.org/wiki/Citation_Style_Language">Citation Style Language (<span class="smallcap">CSL</span>)</a>. These styles are in <span class="smallcap">XML</span> and it is a serious thing: you should apply these standards. You can check different <span class="smallcap">CSL</span> citation styles in its <a href="https://github.com/citation-style-language/styles">official repo</a>.</p>
<p>Baby Biber doesn't support <span class="smallcap">CSL</span>! Instead, it uses <a href="https://en.wikipedia.org/wiki/YAML"><span class="smallcap">YAML</span></a> format for <a href="https://gitlab.com/snippets/1917513">its configuration</a>. This is because of two issues:</p>
<ol>
<li>
<p>I didn't take the time to read how to implement <span class="smallcap">CSL</span> citation styles.</p>
</li>
<li>
<p>My University allows me to use any kind of citation style as long as it has uniformity and displays the information in a clear manner.</p>
</li>
</ol>
<p>So, yeah, I have a huge debt here. And maybe it will stay like that. The new version of Pecas will implement and improve the work done by Baby Biber—I hope.</p>
<figure>
<img src="../../../img/p005_i005.png" alt="Baby Biber sample config file."/>
<figcaption>
Baby Biber sample config file.
</figcaption>
</figure>
<h3 id="pdf-exporter">PDF exporter</h3>
<p>The last script I wrote is for the automation of <span class="smallcap">PDF</span> compilation with LuaLaTeX and Biber (optionally).</p>
<p>I don't like the default layouts of Pandoc and I could have read the docs in order to change that behavior, but I decided to experiment a bit. The new version of Pecas will implement <span class="smallcap">PDF</span> outputs, so I wanted to play around a little with the formatting, as I did with Baby Biber. Besides, I needed a quick program for <span class="smallcap">PDF</span> outputs because we publish sometimes <a href="http://zines.perrotuerto.blog/">fanzines</a>.</p>
<p>So, <a href="https://gitlab.com/snippets/1917490"><code>export-pdf</code></a> is the experiment. It uses Pandoc to convert <span class="smallcap">MD</span> to <span class="smallcap">TEX</span> files. Then it does some clean up and injects the template. Finally, it compiles the <span class="smallcap">PDF</span> with LuaLaTeX and Biber—if you want to add the bibliographic entries this way. It also exports a <span class="smallcap">PDF</span> booklet with <code>pdfbook2</code>, but I don't deploy it in this repo because the <span class="smallcap">PDF</span> is letter size, too large for a booklet.</p>
<p>I have a huge debt here that I won't pay. It is cool to have a program for <span class="smallcap">PDF</span> outputs that I understand, but I still want to experiment with <a href="https://en.wikipedia.org/wiki/ConTeXt">ConTeXt</a>.</p>
<p>I think ConTeXt could be a useful tool while using <span class="smallcap">XML</span> files for <span class="smallcap">PDF</span> outputs. I defend Markdown as input format for writers and publishers, but for automation <span class="smallcap">XML</span> format is way better. For the new version of Pecas I have been thinking about the possibility of using <span class="smallcap">XML</span> for any kind of standard output like <span class="smallcap">EPUB</span>, <span class="smallcap">PDF</span> or <span class="smallcap">JATS</span>. I have problems with <span class="smallcap">TEX</span> format because it generates an additional format just for one output, why would I allow it if <span class="smallcap">XML</span> can provide me with at least three outputs?</p>
<figure>
<img src="../../../img/p005_i006.png" alt="export-pdf Ruby code."/>
<figcaption>
<code>export-pdf</code> Ruby code.
</figcaption>
</figure>
<h3 id="third-parties">Third parties</h3>
<p>I already mentioned the third party software I used for this repo:</p>
<ul>
<li>
<p>Vim as a main text editor.</p>
</li>
<li>
<p>Gedit as a side text editor.</p>
</li>
<li>
<p>JabRef as a bibliography manager.</p>
</li>
<li>
<p>Pandoc as a document converter.</p>
</li>
<li>
<p>LuaLaTeX as a <span class="smallcap">PDF</span> engine.</p>
</li>
<li>
<p>Biber as a bibliography cleaner.</p>
</li>
</ul>
<p>The tools I developed and this software are all <span class="smallcap">FOSS</span>, so you can use them if you want without paying or asking for permission—and without warranty xD</p>
<h2 id="deployment">Deployment</h2>
<p>There is a fundamental design issue in this research as automated repository: I should have put all the scripts in one place. At the beginning of the research I thought it would be easier to place each script side by side its input or output. Over time I realized that it wasn't a good idea.</p>
<p>The good thing is that there is one script that works as a <a href="https://en.wikipedia.org/wiki/Wrapper_function">wrapper</a>. You don't really have to know anything about it. You just write the research in Markdown, fill the BibLaTeX bibliography and any time you want or your server is configured, call that script.</p>
<p>This is a simplified listing showing the places of each script, inputs and outputs inside the repo:</p>
<pre class="">
<code class="code-line-1">.</code><code class="code-line-2">├─ [01] bibliografia</code><code class="code-line-3">│   ├─ [02] bibliografia.bib</code><code class="code-line-4">│   ├─ [03] bibliografia.html</code><code class="code-line-5">│   ├─ [04] clean.sh</code><code class="code-line-6">│   ├─ [05] config.yaml</code><code class="code-line-7">│   └─ [06] recursos</code><code class="code-line-8">├─ [07] index.html</code><code class="code-line-9">└─ [08] tesis</code><code class="code-line-10"> ├─ [09] docx</code><code class="code-line-11"> │   ├─ [10] generate</code><code class="code-line-12"> │   └─ [11] tesis.docx</code><code class="code-line-13"> ├─ [12] ebooks</code><code class="code-line-14"> │   ├─ [13] generate</code><code class="code-line-15"> │   └─ [14] out</code><code class="code-line-16"> │   ├─ [15] generate.sh</code><code class="code-line-17"> │   ├─ [16] meta-data.yaml</code><code class="code-line-18"> │   ├─ [17] tesis.epub</code><code class="code-line-19"> │   └─ [18] tesis.mobi</code><code class="code-line-20"> ├─ [19] generate-all</code><code class="code-line-21"> ├─ [20] html</code><code class="code-line-22"> │ ├─ [21] generate</code><code class="code-line-23"> │ └─ [22] tesis.html</code><code class="code-line-24"> ├─ [23] md</code><code class="code-line-25"> │   ├─ [24] add-bib</code><code class="code-line-26"> │   ├─ [25] tesis.md</code><code class="code-line-27"> │   └─ [26] tesis_with-bib.md</code><code class="code-line-28"> └─ [27] pdf</code><code class="code-line-29"> ├─ [28] generate</code><code class="code-line-30"> └─ [29] tesis.pdf</code>
</pre>
<h3 id="bibliography-pathway">Bibliography pathway</h3>
<p>Even with a simplified view you can see how this repo is a fucking mess. The bibliography [01] and the thesis [08] are the main directories in this repo. As a sibling you have the website [07].</p>
<p>The bibliography directory isn't part of the automation process. I worked on the <span class="smallcap">BIB</span> file [02] in different moments than my writing. I exported it to <span class="smallcap">HTML</span> [03] every time I used JabRef. This <span class="smallcap">HTML</span> is for queries from the browser. Over there it's also a simple script [04] to clean the bibliography with Biber and the configuration file [05] for Baby Biber. Are you a data hoarder? There is an special directory [06] for you with all the works used for this research ;)</p>
<h3 id="engine-on">Engine on</h3>
<p>In the thesis directory [08] is where everything moves smoothly when you call to <code>generate-all</code> [19], the wrapper that turns on the engine!</p>
<p>The wrapper does the following steps:</p>
<ol>
<li>
<p>It adds the bibliography [24] to the original <span class="smallcap">MD</span> file [25], leaving a new file [26] to act as input.</p>
</li>
<li>
<p>It generates [21] the <span class="smallcap">HTML</span> output [22].</p>
</li>
<li>
<p>It compiles [28] the <span class="smallcap">PDF</span> output [29].</p>
</li>
<li>
<p>It generates [13] the <span class="smallcap">EPUB</span> [17] and <span class="smallcap">MOBI</span> [18] according to their metadata [16] and Pecas config file [15].</p>
</li>
<li>
<p>It exports [10] the <span class="smallcap">MD</span> to <span class="smallcap">DOCX</span> [11].</p>
</li>
<li>
<p>It moves the analytics to its correct directory.</p>
</li>
<li>
<p>It refreshes the modification date in the index [07].</p>
</li>
<li>
<p>It puts the new rolling release' hash in the index.</p>
</li>
<li>
<p>It puts the <span class="smallcap">MD5</span> checksum of all outputs in the index.</p>
</li>
</ol>
<p>And that's it. The process of developing a thesis as a automate repository allows me to just worry about three things:</p>
<ol>
<li>
<p>Write the research.</p>
</li>
<li>
<p>Manage the bibliography.</p>
</li>
<li>
<p>Deploy all outputs automatically.</p>
</li>
</ol>
<h3 id="the-legal-stuff">The legal stuff</h3>
<p>That's how it works, but we still have to talk about how the thesis can <i>legally</i> be used…</p>
<p>This research was paid for by every Mexican through taxation. The National Council of Science and Technology (abbreviated Conacyt) granted me a scholarship to study a Master's in Philosophy at <span class="smallcap">UNAM</span>—yeah, American and British folks, more likely than not, we get paid here for our graduate studies.</p>
<p>This scholarship is a problematic privilege. So the least I can do in return is to liberate everything that was paid for by my homies and give free workshops and advice. I repeat: it is <i>the least</i> we can do. I disagree with using this privilege to live a lavish or party lifestyle only to then drop-out. In a country with many crises, scholarships are granted to improve your communities, not only you.</p>
<p>In general, I have the conviction that if you are a researcher or a graduate student and you already get paid—it doesn't matter if it's a salary or a scholarship, it doesn't matter if you are in a public or private university, it doesn't matter if you get the money from public or private administrations—you have a commitment with your community, with our species and with our planet. If you wanna talk about free labor and exploitation—which does happen—please look at the bottom. In this shitty world you are on the upper levels of this <a href="https://es.crimethinc.com/posters/capitalism-is-a-pyramid-scheme">nonsense pyramid</a>.</p>
<p>As a researcher, scientist, philosopher, theorist, artist and so on, you have an obligation to help other people. You can still feed your ego and believe you are the shit or the next <span class="smallcap">AAA</span> thinker, philosopher or artist. These two things doesn't overlap—but it's still annoying.</p>
<p>That is why this research has a <a href="https://wiki.p2pfoundation.net/Copyfarleft">copyfarleft</a> license for its content and a copyleft license for its code. Actually, it's the same licensing scheme of <a href="https://perrotuerto.blog/content/html/en/_fork.html">this blog</a>.</p>
<p>With Open and Free Publishing License (abbreviated <span class="smallcap">LEAL</span>, that also means “loyal” in Spanish) you are free to use, copy, reedit, modify, share or sell any of this content under the following conditions:</p>
<ul>
<li>
<p>Anything produced with this content must be under some type of <span class="smallcap">LEAL</span>.</p>
</li>
<li>
<p>All files—editable or final formats—must be publicly accessible.</p>
</li>
<li>
<p>The content usage cannot imply defamation, exploitation or surveillance.</p>
</li>
</ul>
<p>You could remove my name and put yours, it's permmited. You could even modify the content and write that I <span class="smallcap">LOVE</span> intellectual property: there isn't a technical solution to avoid such defamation. But <span class="smallcap">MD5</span> checksum shows if the files were modify by others. Even if the files differs by one bit, the <span class="smallcap">MD5</span> checksum is gonna be different.</p>
<p>Copyfarleft is the way—but not the solution—that suits our context and our possibilities of freedom. <span{#weblate}>Don't come here with your liberal and individualistic notion of freedom—like the dudes from Weblate that kicked this blog out because its content license “is not free,” even though they say the code, but not the content, should use a “free” license, like the fucking <span class="smallcap">GPL</span> this blog has for its code</span>. This type of liberal freedom doesn't work in a place where no State or corporation can warrant us a minimum set of individual freedoms, as it happens in Asia, Africa and the other America—Latin America and the America that isn't portrayed in the “American Dream” adds.</p>
<h2 id="last-thoughts">Last thoughts</h2>
<p>As a thesis works with a hypothesis, the technical and legal pathway of this research works with the possibility of having a thesis as an automated repository, instead of a thesis as a file. In the end, the possibility became a fact, but in a limited way.</p>
<p>I think that the idea of a thesis as a automated repo is doable and could be a better way for research deployment rather than uploading a single file. But this implementation contained many leaks that made it unsuitable for escalation.</p>
<p>Further work is necessary to be able to ship this as a standard practice. This technique could also be applied for automation and uniformity among publications, like papers in a journal or a book collection. The required labor isn't too much, and <i>maybe</i> it's something I would engage with during a PhD. But for right now, this is all that I can offer!</p>
<p>Thanks to <a href="https://twitter.com/hacklib">@hacklib</a> for pushing me to write this post and, again, thanks to my <span class="smallcap">S.O.</span> for persuading me to study a Master's degree and for reviewing this post. Thanks to my tutor, Programando <span class="smallcap">LIBRE</span>ros and Gaby for their academic support. I can't forget to give thanks to <a href="https://hacklab.cc">Colima Hacklab</a>, <a href="https://ranchoelectronico.org">Rancho Electrónico</a> and <a href="https://t.me/miau2018">Miau Telegram Group</a> for their technical support. And also thanks to all the people and organizations I mentioned in the acknowledgment section of the research!</p>
<script type="text/javascript" src="../../../hashover/comments.php"></script>
</section>
<footer>
<p class="left no-indent">Texts and images are under <a href="../../../content/html/en/_fork.html">Open and Free Publishing License (<span class="smallcap">LEAL</span>)</a>.</p>
<p class="left no-indent">Code is under <a target="_blank" href="https://www.gnu.org/licenses/gpl-faq.en.html"><span class="smallcap">GNU</span> General Public License (<span class="smallcap">GPL</span>v3)</a>.</p>
<p class="left no-indent">Last build of this page: 2020/02/15, 13:06.</p>
<p class="left no-indent"><span class="smallcap"><a target="_blank" href="https://perrotuerto.blog/feed/en/rss.xml">RSS</a></span> | <a href="../../../content/html/en/005_hiim-master.html"><span class="versalita">EN</span></a> | <a href="../../../content/html/es/005_hiim-master.html"><span class="versalita">ES</span></a></p>
</footer>
</body>
</html>

View File

@ -0,0 +1,391 @@
<!DOCTYPE html>
<html lang="es">
<head>
<title>Cómo está hecho: tesis de Maestría</title>
<meta charset="utf-8" />
<meta name="application-name" content="Publishing is Coding: Change My Mind">
<meta name="description" content="Blog about free culture, free software and free publishing.">
<meta name="keywords" content="publishing, blog, book, ebook, methodology, foss, libre-software, format, markdown, html, epub, pdf, mobi, latex, tex, culture, free culture, philosophy">
<meta name="viewport" content="width=device-width, user-scalable=0">
<link rel="shortcut icon" href="../../../icon.png">
<link rel="alternate" type="application/rss+xml" href="https://perrotuerto.blog/feed/" title="Publishing is Coding: Change My Mind">
<link type="text/css" rel="stylesheet" href="../../../css/styles.css">
<link type="text/css" rel="stylesheet" href="../../../css/extra.css">
<script type="application/javascript" src="../../../js/functions.js"></script>
</head>
<body>
<header>
<h1><a href="https://perrotuerto.blog/content/html/es/">Publishing is Coding: Change My Mind</a></h1>
<nav> <p> <a href="../../../content/html/es/_links.html">Enlaces</a> | <a href="../../../content/html/es/_about.html">Acerca</a> | <a href="../../../content/html/es/_contact.html">Contacto</a> | <a href="../../../content/html/es/_fork.html">Bifurca</a> | <a href="../../../content/html/es/_donate.html">Dona</a> </p>
</nav>
</header>
<div id="controllers">
<a onclick="zoom(true)">+</a>
<a onclick="zoom(false)"></a>
<a onclick="mode(this)">N</a>
</div>
<section>
<h1 id="como-esta-hecho-tesis-de-maestria">Cómo está hecho: tesis de Maestría</h1>
<blockquote class="published">
<p>Publicado: 2020/02/15, 13:00</p>
</blockquote>
<p>Uff, después de seis meses de estar escribiendo, revisando, suprimiendo, gritando y casi darme por vencido, por fin he concluido la tesis de investigación de la Maestría. Puedes verla <a href="https://maestria.perrotuerto.blog">aquí</a>.</p>
<p>La tesis es sobre propiedad intelectual, bienes comunes y producción cultural y filosófica. La Maestría en Filosofía la realicé en la Universidad Nacional Autónoma de México (<span class="smallcap">UNAM</span>). Esta investigación consiste de aproximadamente veintisiete mil palabras y casi cien páginas.</p>
<p>Desde el principio decidí que no la escribiría usando procesadores de textos como <a href="https://es.libreoffice.org">LibreOffice</a> ni Microsoft Office. Esta decisión es debido a que:</p>
<ul>
<li>
<p>El <i>software</i> de ofimática fue diseñado para un tipo de trabajo en particular, no para fines de investigación.</p>
</li>
<li>
<p>El manejo bibliográfico y la revisión de la redacción puede ser muy pero muy engorroso.</p>
</li>
<li>
<p>Necesitaba diversas salidas, lo que hubiera implicado una labor fuerte de formateo si hubiera escrito la investigación en formatos <span class="smallcap">ODT</span> o <span class="smallcap">DOCX</span>.</p>
</li>
<li>
<p>Quería ver qué tan lejos podía llegar con el puro uso de <a href="https://es.wikipedia.org/wiki/Markdown">Markdown</a>, una terminal y <a href="https://es.wikipedia.org/wiki/Software_libre_y_de_c%C3%B3digo_abierto"><span class="smallcap">FOSS</span></a>.</p>
</li>
</ul>
<p>De manera general la tesis en realidad es un repositorio automatizado donde puedes verlo todo —incluyendo la bibliografía entera, el sitio y la historia de escritura—. Esta investigación usó un modelo de <a href="https://es.wikipedia.org/wiki/Liberaci%C3%B3n_continua">liberación continua</a> —«un concepto de lanzamiento frecuente de actualizaciones»—. La metodología consiste en edición estandarizada, automatizada y multiformato, o como prefiero denominarla: edición ramificada.</p>
<p>Este no es el espacio para discutir el método, pero estas son algunas ideas generales:</p>
<ul>
<li>
<p>Tenemos algunos datos de entrada que son nuestros archivos de trabajo.</p>
</li>
<li>
<p>Necesitamos diversas salidas que serán nuestros archivos listos para distribuir.</p>
</li>
<li>
<p>Queremos automatizar para solo concentrarnos en escribir y editar, en lugar de perder nuestro tiempo con el formato o tener pesadillas con la maquetación.</p>
</li>
</ul>
<p>Para tener éxito es necesario evitar cualquier tipo de enfoques <a href="https://es.wikipedia.org/wiki/WYSIWYG"><span class="smallcap">MYSIWYG</span></a> o de <a href="https://es.wikipedia.org/wiki/Autoedici%C3%B3n">publicación de escritorio</a>. En su lugar, la edición ramificada emplea el enfoque <a href="https://es.wikipedia.org/wiki/WYSIWYM"><span class="smallcap">MYSIGYM</span></a> y sistemas de composición tipográfica.</p>
<p>¡Así que empecemos!</p>
<h2 id="datos-de-entrada">Datos de entrada</h2>
<p>Cuento con dos archivos principales como datos de entrada: el contenido de la investigación y la bibliografía. Para el contenido usé Markdown. Para la bibliografía decidí usar <a href="https://www.overleaf.com/learn/latex/Articles/Getting_started_with_BibLaTeX">BibLaTeX</a>.</p>
<h3 id="markdown">Markdown</h3>
<p>¿Por qué Markdown? Debido a que es:</p>
<ul>
<li>
<p>fácil de leer, escribir y editar</p>
</li>
<li>
<p>fácil de procesar</p>
</li>
<li>
<p>un formato ligero</p>
</li>
<li>
<p>un formato abierto y de texto plano</p>
</li>
</ul>
<p>El formato Markdown fue planteado para la escritura de <i>blogs</i>. Así que la versión «<i>vanilla</i>» de Markdown no es suficiente para la escritura de investigación o académica. Además no soy fan de <a href="https://pandoc.org/MANUAL.html#pandocs-markdown">Pandoc Markdown</a>.</p>
<p>No lo tomes a mal, <a href="https://pandoc.org">Pandoc</a> <i>es</i> la navaja suiza para la conversión de documentos, su nombre le queda a la perfección. Pero para el tipo de edición que llevo a cabo, Pandoc es parte del proceso de automatización y no para los datos de entrada o las salidas. Pandoc lo uso como intermediario para algunos formatos ya que me ayuda a ahorrar mucho tiempo.</p>
<p>Para los datos de entrada y los formatos de salida pienso que Pandoc es una gran herramienta de propósito general, pero no satisface las necesidades de un editor quisquilloso como este perro. Además, amo el <i>scripting</i> así que prefiero emplear mi tiempo en eso en lugar de configurar las salidas de Pandoc —me permite aprender más—. Así que para este proceso de publicación usé Pandoc cuando no había resuelto algo o fui muy flojo para hacerlo, <span class="smallcap">LOL</span>.</p>
<p>A diferencia de los formatos de texto procesado como <span class="smallcap">ODT</span> o <span class="smallcap">DOCX</span>, <span class="smallcap">MD</span> es muy fácil de personalizar. No necesitas instalar <i>plugins</i>, ¡solo tienes que generar más sintaxis!</p>
<p>Así que <a href="http://pecas.perrotuerto.blog/html/md.html">Pecas Markdown</a> fue el formato base para el contenido. La sintaxis adicional fue para citar la bibliografía según su identificador.</p>
<figure>
<img src="../../../img/p005_i001.png" alt="La investigación en su dato de entrada original en MD."/>
<figcaption>
La investigación en su dato de entrada original en <span class="smallcap">MD</span>.
</figcaption>
</figure>
<h3 id="biblatex">BibLaTeX</h3>
<p>El formateo de bibliografía es uno de los mayores dolores de cabeza para muchos investigadores. El aprendizaje de cómo citar y referenciar requiere de mucho tiempo y energía. Y no importa cuánta experiencia se tenga, las referencias o la bibliografía usualmente tienen erratas.</p>
<p>Lo sé por experiencia. Mucha de la bibliografía de nuestros clientes son un enorme desmadre. Pero el 99.99% de las veces es debido a que lo hacen de manera manual… Así que decidí evadir ese infierno.</p>
<p>Existen diversas alternativas para el manejo bibliográfico y la más común es BibLaTeX, el sucesor de <a href="https://es.wikipedia.org/wiki/BibTeX">BibTeX</a>. Con este tipo de formato puedes gestionar tu bibliografía como una notación de objetos. Esta es una muestra de una ficha:</p>
<pre class="">
<code class="code-line-1">@book{proudhon1862a,</code><code class="code-line-2"> author = {Proudhon, Pierre J.},</code><code class="code-line-3"> date = {1862},</code><code class="code-line-4"> file = {:recursos/proudhon1862a.pdf:PDF},</code><code class="code-line-5"> keywords = {prio2,read},</code><code class="code-line-6"> publisher = {Office de publicité},</code><code class="code-line-7"> title = {Les Majorats littéraires},</code><code class="code-line-8"> url = {http://alturl.com/fiubs},</code><code class="code-line-9">}</code>
</pre>
<p>Al principio de la ficha indicas su tipo y su identificador. Cada una tiene un conjunto de pares llave-valor. Según el tipo de referencia, hay algunas llaves necesarias. Si necesitas más, solo basta con que las añadas. Esto podría ser muy difícil de editar directamente porque la compilación a <span class="smallcap">PDF</span> no tolera errores en la sintaxis. Por comodidad puedes usar una interfaz gráfica como <a href="https://www.jabref.org">JabRef</a>. Con este <i>software</i> de manera muy sencilla puedes generar, editar o eliminar fichas bibliográficas cual si fueran filas en una hoja de cálculo.</p>
<p>Así que tengo dos tipos de formatos para los datos de entrada: <span class="smallcap">BIB</span> para la bibliografía y <span class="smallcap">MD</span> para el contenido. Las referencias cruzadas las llevé a cabo al generar sintaxis adicional que invoca a la ficha bibliográfica a partir de su identificador. Esto suena complicado, pero para fines de redacción es únicamente algo como esto:</p>
<blockquote>
<p>@textcite[alguien2020a] dice… Ahora estoy parafraseando a alguien, así que la citaré al final @parencite[alguien2020a].</p>
</blockquote>
<p>Cuando la bibliografía es procesada, tengo algo como esto:</p>
<blockquote>
<p>Alguien (2020) dice… Ahora estoy parafraseando a alguien, así que la citaré al final (Alguien, 2020).</p>
</blockquote>
<p>Esta sintaxis está basada en los estilos de citas textuales y parentéticos de LaTeX para <a href="http://tug.ctan.org/info/biblatex-cheatsheet/biblatex-cheatsheet.pdf">BibLaTeX</a>. La arroba (<code>@</code>) es un carácter que empleo al inicio de cualquier sintaxis adicional de Pecas Markdown. Para propósitos de procesamiento podría usar cualquier otro tipo de sintaxis. Pero para las tareas de redacción y edición me he percatado que la arroba es muy accesible y fácil de localizar.</p>
<p>El ejemplo fue muy sencillo y no demuestra por completo el punto de hacer esto. Al usar identificadores:</p>
<ul>
<li>
<p>No tengo que preocuparme de que la ficha bibliográfica cambie.</p>
</li>
<li>
<p>No tengo que aprender ningún estilo de citas.</p>
</li>
<li>
<p>No tengo que escribir la sección de la bibliografía, ¡se genera automáticamente!</p>
</li>
<li>
<p><i>Siempre</i> tengo la estructura correcta.</p>
</li>
</ul>
<p>Más adelante explico cómo es posible este proceso. La idea principal es que con un par de <i>scripts</i> estos dos datos de entrada se convierten en uno, un archivo Markdown con la bibliografía añadida, listo para el proceso de automatización.</p>
<h2 id="archivos-de-salida">Archivos de salida</h2>
<p>Me molesta que el <span class="smallcap">PDF</span> sea el único archivo de salida para la investigación, la mayoría del tiempo realizo una lectura general en la pantalla y, si quiero ahondar en detalles, con notas y chingaderas, prefiero imprimirla. No es muy cómodo leer un <span class="smallcap">PDF</span> en la pantalla y casi sin excepción la impresión de <span class="smallcap">HTML</span> o de libros electrónicos es estéticamente desagradable. Esos son los motivos por los que decidí proporcionar diferentes formatos para que los lectores puedan escoger el que más le convenga.</p>
<p>A como la edición se está centralizado cada vez más, desafortunadamente es recomendable suministrar el formato <span class="smallcap">MOBI</span> para los lectores con Kindle —por cierto, <span class="smallcap">A LA MIERDA</span> Amazon, le roba a escritores y editores; úsalo solo si el texto no está en otra fuente—. No me agrada el <i>software</i> propietario como Kindlegen, pero es el único medio <i>legal</i> para proveer archivos <span class="smallcap">MOBI</span>. Ojalá poco a poco los lectores con Kindle al menos empiecen a <i>hackear</i> sus dispositivos. Por el momento Amazon es la mierda que usa la gente, pero recuerda: si no lo tienes, no te pertenece. Mira lo que le pasó a los <a href="https://es.gizmodo.com/los-libros-electronicos-que-hayas-comprado-en-microsoft-1836010338">libros en la Microsoft Store</a></p>
<p>La cereza del pastel fue una petición de mi tutor. El quería un archivo editable que le fuera fácil de usar. Mucho tiempo atrás Microsoft monopolizó la escritura digital, así que la solución más sencilla fue la distribución de un archivo <span class="smallcap">DOCX</span>. En lo personal hubiera preferido usar el formato <span class="smallcap">ODT</span> pero he visto cuántas personas desconocen cómo abrirlo. Mi tutor no es parte de ese grupo, pero para los archivos de salida es buena idea pensar no solo en lo que necesitamos, sino en lo que podríamos requerir. Las personas a duras penas leen investigaciones, si no es accesible en lo que ya conocen, no leerán nada.</p>
<p>Así que los archivos de salida son:</p>
<ul>
<li>
<p><span class="smallcap">EPUB</span> como libro electrónico estándar.</p>
</li>
<li>
<p><span class="smallcap">MOBI</span> para lectores con Kindle.</p>
</li>
<li>
<p><span class="smallcap">PDF</span> para impresión.</p>
</li>
<li>
<p><span class="smallcap">HTML</span> para internautas.</p>
</li>
<li>
<p><span class="smallcap">DOCX</span> como archivo editable.</p>
</li>
</ul>
<h3 id="libros-electronicos">Libros electrónicos</h3>
<figure>
<img src="../../../img/p005_i002.png" alt="La investigación en su salida EPUB."/>
<figcaption>
La investigación en su salida <span class="smallcap">EPUB</span>.
</figcaption>
</figure>
<p>No usé Pandoc para los libros electrónicos, en su lugar empleé la herramienta editorial que estamos desarrollando: <a href="https://pecas.perrotuerto.blog">Pecas</a>. En este contexto «Pecas» es en honor a un perro pintito de mi infancia.</p>
<p>Pecas me permite generar formatos <span class="smallcap">EPUB</span> y <span class="smallcap">MOBI</span> a partir de un <span class="smallcap">MD</span>, además de realizar estadísticas del documento, validación de archivos y manejo sencillo de metadatos. Cada proyecto de Pecas puede ser fuertemente personalizado porque permite <i>scripts</i> de Ruby, Python y Shell de Unix. El objetivo principal detrás de ello es la capacidad de rehacer libros electrónicos a partir de recetas. Por lo tanto, los archivos de salida son desechables con el fin de ahorrar espacio y porque ¡no los necesitas todo el tiempo ni deberías hacer ediciones sobre formatos finales!</p>
<p>Pecas es <i>software</i> en liberación continua con Licencia Pública General de <span class="smallcap">GNU</span>, así que es gratuito, abierto y libre. Desde hace meses Pecas no ha estado en mantenimiento porque este año vamos a empezar de nuevo, con código más limpio, con maneras más sencillas de instalarlo y con muchas nuevas características —eso espero, necesitamos <a href="https://perrotuerto.blog/content/html/es/_donate.html">tu apoyo</a>—.</p>
<h3 id="pdf">PDF</h3>
<p>Para la salida <span class="smallcap">PDF</span> me fío de LaTeX y LuaLaTeX. ¿Por qué? Simplemente por costumbre. No cuento con algún argumento en particular en contra de otros <i>frameworks</i> o motores dentro de la familia TeX. Se trata de un mundo que aún tengo que indagar más.</p>
<p>¿Por qué no usé publicación de escritorio en su lugar, como InDesign o Scribus? Afuera de su propio flujo de trabajo, la publicación de escritorio es difícil de automatizar y mantener. Esta aproximación es estupenda si solo quieres una salida <span class="smallcap">PDF</span> o si deseas trabajar con una interfaz gráfica. Para la conservación de los archivos y para una edición estandarizada, automatizada y multiformato, la publicación de escritorio sencillamente no es la mejor opción.</p>
<p>¿Por qué no solo exporté el <span class="smallcap">PDF</span> a partir del archivo <span class="smallcap">DOCX</span>? Mi campo de trabajo es la edición, aún le tengo respeto a mis ojos…</p>
<p>Como sea, para esta salida usé Pandoc como intermediario. Podría haber realizado la conversión de <span class="smallcap">MD</span> a formato <span class="smallcap">TEX</span> con <i>scripts</i>, pero fui flojo. Así que Pandoc convierte el <span class="smallcap">MD</span> a <span class="smallcap">TEX</span> y LuaLaTeX lo compila a <span class="smallcap">PDF</span>. No uso ambos programas de manera explícita, en su lugar escribí un <i>script</i> que automatiza este proceso. Más adelante explico cómo es posible.</p>
<figure>
<img src="../../../img/p005_i003.png" alt="La investigación en su salida PDF; no me agrada el texto justificado, es dañino para nuestros ojos."/>
<figcaption>
La investigación en su salida <span class="smallcap">PDF</span>; no me agrada el texto justificado, es dañino para nuestros ojos.
</figcaption>
</figure>
<h3 id="html">HTML</h3>
<p>El formato <span class="smallcap">EPUB</span> en realidad consiste en un conjunto de archivos <span class="smallcap">HTML</span> comprimidos más metadatos y una tabla de contenidos. Así que no hay motivo para evadir una salida <span class="smallcap">HTML</span>. Ya cuento con esta al convertir el <span class="smallcap">MD</span> con Pecas. No creo que alguien vaya a leer casi veintisiete mil palabras en un explorador <i>web</i>, pero uno nunca sabe. Este formato podría servir para dar un vistazo.</p>
<h3 id="docx">DOCX</h3>
<p>Esta salida no tiene nada en especial. No personalicé sus estilos. Solo usé Pandoc mediante otro <i>script</i>. Recuerda, este archivo es para editar, así que su maquetación no es relevante.</p>
<h2 id="redaccion">Redacción</h2>
<p>Además del método de publicación empleado en esta investigación, quiero hacer unos comentarios particulares sobre la influencia de la disposición técnica sobre la escritura.</p>
<h3 id="editores-de-texto">Editores de texto</h3>
<p>Nunca uso procesadores de texto, así que la escritura de esta tesis no fue la excepción. En su lugar prefiero el empleo de editores de texto. Entre estos tengo un gusto particular por los más minimalistas como <a href="https://es.wikipedia.org/wiki/Vim">Vim</a> o <a href="https://es.wikipedia.org/wiki/Gedit">Gedit</a>.</p>
<p>Vim es un editor de texto para la terminal. Lo uso de manera regular —lo siento, compas de <a href="https://es.wikipedia.org/wiki/Emacs">Emacs</a>—. Casi todo lo escribo, incluyendo esta tesis, con Vim debido a su interfaz minimalista. No hay pinches botones, no tengo distracciones, solo soy yo y una terminal con fondo negro.</p>
<p>Gedit es un editor de texto con interfaz gráfica y principalmente lo uso para <a href="https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular">expresiones regulares</a> o búsquedas. En este proyecto lo empleé para vistazos rápidos a la bibliografía. Me encanta JabRef como gestor bibliográfico, pero para obtener los identificadores solo necesito acceso directo al archivo <span class="smallcap">BIB</span>. Gedit fue un buen acompañante para esta labor en particular por su carencia de «<i>buttonware</i>» —esa fastidiosa tendencia de poner botones por todos lados—.</p>
<h3 id="citas">Citas</h3>
<p>Quiero que la investigación sea lo más accesible posible. No quise usar un sistema complicado de estilos de cita. Por ello únicamente usé citas parentéticas o textuales.</p>
<p>Esto podría ser un problema para varios académicos. Pero cuando veo erratas en sus rebuscadas citas y referencias, no puedo tener ninguna empatía. Si vas a añadir complejidad a tu trabajo, lo mínimo que puedes hacer es ejecutarlo de manera correcta. Y seamos honestos, la mayoría de los académicos agregan complejidad porque quieren verse chingones —es decir, se conforman con las reglas de formación para textos de investigación con la finalidad de ser parte de una comunidad o de «ganar» algo de objetividad—.</p>
<h3 id="bloques-de-cita">Bloques de cita</h3>
<p>En la investigación no vas a encontrar ni un bloque de cita. Esto no es solo por accesibilidad —algunas personas no pueden distinguir este tipo de citas—, sino también por la manera en como se gestionó la bibliografía.</p>
<p>Uno de los motivos principales para los bloques de cita es el ofrecimiento extendido y de primera mano de lo dicho por un escritor. Pero de manera ocasional también se usan para rellenar cuartillas. En la manera común de hacer filosofía, los archivos de salida tienden a ser un artículo «definitivo». Este texto se compone por la investigación más la bibliografía. Este formato no permite embeber otro tipo de archivos como más artículos, sitios <i>web</i>, libros o bases de datos. Si lo que deseas es el suministro de información literal, las citas y los bloques de cita son el medio para llevarlo a cabo.</p>
<p>Debido a que esta tesis en realidad es un repositorio automatizado, contiene todas las referencias usadas para la investigación. Tiene la bibliografía, pero también cada trabajo citado para fines pedagógicos y de conservación. ¿Por qué habría de emplear bloques de cita si fácilmente puedes acceder a los archivos? Aun mejor, podrías utilizar alguna función de búsqueda o ir sobre todos los datos con la intención de validar información.</p>
<p>Además la universidad no permite la entrega de textos amplios. Concuerdo con ello, considero que tenemos otras capacidades técnicas que nos permiten ser más sintéticos. Al poner a un lado los bloques de cita, tuve más espacio para la investigación.</p>
<p>Tómalo o déjalo, la investigación como repositorio y no como archivo nos da mayores posibilidades de accesibilidad, portabilidad y apertura.</p>
<h3 id="notas-al-pie">Notas al pie</h3>
<p>¡Oh, las notas al pie! Qué técnica tan más hermosa para mostrar texto secundario. Funciona de manera maravillosa, permite la metaescritura y más. Pero solo funciona como se espera si la salida que estás pensando es, primero que nada, un archivo y, de manera secundaria, un texto con formación fija. Con otro tipo de salidas las notas al pie pueden ser una pesadilla.</p>
<p>Tengo la convicción de que casi todas las notas al pie pueden incorporarse al texto. Esto es por tres experiencias personales. En los estudios universitarios como estudiante de filosofía tenemos que leer un chingo de ediciones críticas, las cuales tienden a implementar sus notas «críticas» al pie. Para este tipo de textos lo entiendo, a las personas no les gusta que confundan sus palabras con las de otro, menos si es entre una autoridad filosófica y un filósofo contemporáneo —tomen nota: es un gusto personal, no un mandato—. Pero esta es una pirruchenta tesis de investigación de Maestría, no una edición crítica.</p>
<p>Solía odiar las notas al pie, ahora solo me desagradan. Parte de mi trabajo consiste en revisar, extraer y enmendar notas al pie de otras personas. Puedo apostar que la mitad de las veces las notas al pie no están presentadas de la manera correcta o están desaparecidas. Por lo general no se trata de un error de <i>software</i>. En algunas ocasiones es porque las personas las elaboran de manera manual. Pero no voy a culpar a editores o diseñadores por sus errores. Por el modo en como las cosas se están gestando en la edición, la mayoría de las veces es por falta de tiempo. Nos están presionando para publicar libros tan rápido como podamos y uno de los daños colaterales es la pérdida de calidad. De la manera más sencilla en la bibliografía, las notas al pie y los bloques de cita puede observarse qué tanto cuidado se le ha dado a un texto.</p>
<p>Sí culpo a algunos autores por este desastre. Vuelvo a repetir, esto es solo una experiencia personal; sin embargo, en mi trabajo he visto que la mayoría de los autores colocan notas al pie en las siguientes situaciones:</p>
<ul>
<li>
<p>Quieren agregar más chingaderas pero no quieren reescribir ni mierda.</p>
</li>
<li>
<p>No son buenos escritores o están en apuros, por lo que las notas al pie son el camino a seguir.</p>
</li>
<li>
<p>Piensan que por la adición de notas al pie, bloques de cita o referencias podrán «obtener» objetividad.</p>
</li>
</ul>
<p>En mi opinión la tesis necesita más reescritura, pude haber redactado de una manera mas comprensiva, pero ya estaba hasta el colmo —escribir filosofía no es lo mío, prefiero hablarla o programarla (!)—. Por ello me tomé mi tiempo en su revisión —pregúntenle a mi tutor sobre ello, <span class="smallcap">LMFAO</span>—. Para mí hubiera sido más sencillo solo añadir notas al pie, pero para ti habría sido más embrollo leer esa chingadera. Aparte de eso, las notas al pie ocupan más espacio que la reescritura.</p>
<p>Así que por respeto al lector y en acuerdo con la extensión del texto establecido por mi universidad, decidí no usar notas al pie.</p>
<h2 id="programacion">Programación</h2>
<p>Como puedes observar, tuve que escribir algunos <i>scripts</i> y usar <i>software</i> de terceros para tener una tesis como un repositorio automatizado. Se escucha complicado o quizá como un sin-sentido, pero ¿acaso la filosofía no tiene la misma reputación? >:)</p>
<h3 id="herramientas-md">Herramientas MD</h3>
<p>Los primeros desafíos que tuve fueron:</p>
<ul>
<li>
<p>Necesitaba saber con exactitud cuántas páginas llevaba escritas.</p>
</li>
<li>
<p>Quería una manera simple de embellecer el formato <span class="smallcap">MD</span>.</p>
</li>
<li>
<p>Tenía que hacer controles de calidad en mi redacción.</p>
</li>
</ul>
<p>En consecuencia, decidí desarrollar algunos programas para estas tareas: <a href="https://gitlab.com/snippets/1917485"><code>texte</code></a>, <a href="https://gitlab.com/snippets/1917487"><code>texti</code></a> y <a href="https://gitlab.com/snippets/1917488"><code>textu</code></a>, respectivamente.</p>
<p>Estos programas en realidad son <i>scripts</i> de Ruby que coloqué en mi directorio <code>/usr/local/bin</code>. Tú puedes hacer lo mismo pero lo desaconsejo. Ahora mismo en Programando <span class="smallcap">LIBRE</span>ros estamos refactorizando toda esa basura para que pueda ser despachada como una gema de Ruby. Así que recomendaría que esperaras.</p>
<p>Con <code>texte</code> puedo saber cuántas líneas, caracteres, caracteres sin espacios y palabras tiene un archivo, además de conocer tres tipos de tamaños de cuartilla: cada mil ochocientos caracteres con espacios, cada docientas cincuentas palabras y un promedio de ambas —puedes establecer otros tamaños—.</p>
<p>El embellecedor de <span class="smallcap">MD</span> es <code>texti</code>. Por el momento solo funciona bien con párrafos. Esto es suficiente para mí porque mi problema fue con las longitudes dispares de líneas —sí, no uso ajuste de línea.</p>
<figure>
<img src="../../../img/p005_i004.png" alt="Impresión de la ayuda de texti."/>
<figcaption>
Impresión de la ayuda de <code>texti</code>.
</figcaption>
</figure>
<p>También intenté evadir típicos errores al usar comillas o paréntesis: en algunas ocasiones olvidamos cerrarlos. Así que <code>textu</code> fue para este control de calidad.</p>
<p>Estos tres programas fueron de mucha ayuda para mi escritura, por ello decidimos continuar con su desarrollo como una gema de Ruby. Para nuestro trabajo o proyectos personales, <span class="smallcap">MD</span> es nuestro formato principal, así que tenemos la obligación de proveer de herramientas que ayuden a escritores y editores que también usen Markdown.</p>
<h3 id="baby-biber">Baby Biber</h3>
<p>Si conoces la familia TeX, con seguridad sabes de <a href="https://en.wikipedia.org/wiki/Biber_(LaTeX)">Biber</a>, el programa de procesamiento bibliográfico. Con Biber puedes compilar las fichas bibliográficas de BibLaTeX en salidas <span class="smallcap">PDF</span> así como hacer verificaciones y limpiezas.</p>
<p>Las referencias empezaron a ser un problema porque nuestro método de publicación implica el desdoblamiento de salidas en procesos independientes desde los mismos datos de entrada, en este caso los formatos <span class="smallcap">MD</span> y <span class="smallcap">BIB</span>. Con Biber pude añadir las fichas bibliográficas pero solo al <span class="smallcap">PDF</span>.</p>
<p>La solución que llevé a cabo fue la adición de referencias en el <span class="smallcap">MD</span> antes de cualquier otro proceso. Así se unen los datos de entrada en un archivo <span class="smallcap">MD</span>. Este nuevo fichero se utiliza para despachar todas las salidas.</p>
<p>Esta solución implica el uso de Biber como herramienta de limpieza y el desarrollo de un programa que procese las fichas bibliográficas de BibLaTeX dentro de archivos <span class="smallcap">MD</span>. <a href="https://gitlab.com/snippets/1917492">Baby Biber</a> es este programa. Con este nombre quise honrar a Biber y poner en claro que este programa esta en sus fases iniciales.</p>
<p>¿Qué hace Baby Biber?</p>
<ul>
<li>
<p>Genera un nuevo archivo <span class="smallcap">MD</span> con las referencias y la bibliografía.</p>
</li>
<li>
<p>Añade las referencias si el <span class="smallcap">MD</span> original llama a <code>@textcite</code> o <code>@parencite</code> con un identificador correcto de BibLaTeX.</p>
</li>
<li>
<p>Añade la bibliografía al final del documento según las referencias invocadas.</p>
</li>
</ul>
<p>La personalización de los estilos bibliográficos y de referencias es un dolor de cabeza. Con Pandoc puedes usar <a href="https://github.com/jgm/pandoc-citeproc"><code>pandoc-citeproc</code></a>, lo cual te permite seleccionar cualquier estilo compuesto en <a href="https://en.wikipedia.org/wiki/Citation_Style_Language">Citation Style Language (<span class="smallcap">CSL</span>)</a>. Estos estilos están en <span class="smallcap">XML</span> y son de armas tomar: deberías aplicarlo como estándar. Puedes revisar diferentes estilos de citas <span class="smallcap">CSL</span> en su <a href="https://github.com/citation-style-language/styles">repositorio oficial</a>.</p>
<p>¡Baby Biber no soporta <span class="smallcap">CSL</span>! En su lugar usa el formato <a href="https://es.wikipedia.org/wiki/YAML"><span class="smallcap">YAML</span></a> para <a href="https://gitlab.com/snippets/1917513">su configuración</a>. Esto se debe a dos cuestiones:</p>
<ol>
<li>
<p>No me tomé el tiempo para leer cómo implementar los estilos de cita <span class="smallcap">CSL</span>.</p>
</li>
<li>
<p>Mi universidad me permite usar cualquier tipo de estilo de cita siempre y cuando tenga uniformidad y muestre la información de manera clara.</p>
</li>
</ol>
<p>Así que, sí, aquí tengo una gran deuda. Y es probable que así se quede. La nueva versión de Pecas implementará y mejorará el trabajo hecho por Baby Biber —eso espero—.</p>
<figure>
<img src="../../../img/p005_i005.png" alt="Archivo de configuración de muestra de Baby Biber."/>
<figcaption>
Archivo de configuración de muestra de Baby Biber.
</figcaption>
</figure>
<h3 id="exportador-pdf">Exportador PDF</h3>
<p>El último <i>script</i> que escribí fue para automatizar la compilación de <span class="smallcap">PDF</span> con LuaLaTeX y Biber (opcional).</p>
<p>No me gusta la plantilla por defecto de Pandoc y podría haber leído la documentación para cambiar este comportamiento, pero decidí experimentar un poco. La nueva versión de Pecas permitirá salidas <span class="smallcap">PDF</span> así que quise jugar un poco con el formateo, como lo hice con Baby Biber. Además, necesitaba con urgencia un programa para salidas <span class="smallcap">PDF</span> porque a veces publicamos <a href="http://zines.perrotuerto.blog/"><i>fanzines</i></a>.</p>
<p>Entonces, <a href="https://gitlab.com/snippets/1917490"><code>export-pdf</code></a> es este experimento. Este usa Pandoc para convertir archivos <span class="smallcap">MD</span> a <span class="smallcap">TEX</span>. A continuación hace una limpieza e inyecta la plantilla. Por último, compila el <span class="smallcap">PDF</span> con LuaLaTeX y Biber —si quieres añadir las fichas bibliográficas de esta manera—. También exporta un folleto <span class="smallcap">PDF</span> con <code>pdfbook2</code>, lo cual no implementé en este repositorio porque el <span class="smallcap">PDF</span> es de tamaño carta, muy grande para un folleto.</p>
<p>Tengo una enorme deuda que no voy a pagar. Es muy chido tener un programa para salidas <span class="smallcap">PDF</span> que entiendo su funcionamiento, pero todavía quiero experimentar con <a href="https://es.wikipedia.org/wiki/ConTeXt">ConTeXt</a>.</p>
<p>Pienso que ConTeXt podría ser una herramienta muy útil en el uso de archivos <span class="smallcap">XML</span> para salidas <span class="smallcap">PDF</span>. Mi postura es la defensa de Markdown como formato de entrada para escritores y editores, pero para automatización el <span class="smallcap">XML</span> es superior. Para la nueva versión de Pecas he estado pensando en la posibilidad de usar <span class="smallcap">XML</span> para cualquier tipo de salida estándar como <span class="smallcap">EPUB</span>, <span class="smallcap">PDF</span> o <span class="smallcap">JATS</span>. Mi problema con los archivos <span class="smallcap">TEX</span> es que son un formato adicional para una sola salida, ¿por qué lo permitiría si <span class="smallcap">XML</span> puede suministrarme al menos tres salidas?</p>
<figure>
<img src="../../../img/p005_i006.png" alt="Código de Ruby de export-pdf."/>
<figcaption>
Código de Ruby de <code>export-pdf</code>.
</figcaption>
</figure>
<h3 id="software-de-terceros"><i>Software</i> de terceros</h3>
<p>Ya mencioné los programas de terceros que utilizo en este repositorio:</p>
<ul>
<li>
<p>Vim como editor de texto principal.</p>
</li>
<li>
<p>Gedit como editor de texto secundario.</p>
</li>
<li>
<p>JabRef como gestor bibliográfico.</p>
</li>
<li>
<p>Pandoc como conversor de documentos.</p>
</li>
<li>
<p>LuaLaTeX como motor compilador de <span class="smallcap">PDF</span>.</p>
</li>
<li>
<p>Biber como limpiador bibliográfico.</p>
</li>
</ul>
<p>Todas las herramientas que desarrollé y estos programas son <span class="smallcap">FOSS</span>, por lo que puedes usarlos si quieres y sin tener que pagar o pedir permiso —y sin garantía xD—.</p>
<h2 id="desarrollo">Desarrollo</h2>
<p>Hay un problema fundamental de diseño para esta investigación como repositorio automatizado: tuve que haber colocado todos los <i>scripts</i> en un solo lugar. Al principio de la investigación pensé que sería más sencillo poner cada <i>script</i> lado a lado a su dato de entrada o archivo de salida. Con el tiempo me di cuenta de que no fue buena idea.</p>
<p>Lo bueno es que hay un <i>script</i> que funciona como <a href="https://en.wikipedia.org/wiki/Wrapper_function"><i>wrapper</i></a>. En realidad no tienes que saber nada de esto. Únicamente escribes tu investigación en Markdown, llenas tu bibliografía con BibLaTeX y cada vez que quieras, o tu servidor esté configurado, ejecutas este <i>script</i>.</p>
<p>Esta es una lista simplificada que muestra la ubicación de los <i>scripts</i>, sus datos de entrada y sus archivos de salida en el repositorio:</p>
<pre class="">
<code class="code-line-1">.</code><code class="code-line-2">├─ [01] bibliografia</code><code class="code-line-3">│   ├─ [02] bibliografia.bib</code><code class="code-line-4">│   ├─ [03] bibliografia.html</code><code class="code-line-5">│   ├─ [04] clean.sh</code><code class="code-line-6">│   ├─ [05] config.yaml</code><code class="code-line-7">│   └─ [06] recursos</code><code class="code-line-8">├─ [07] index.html</code><code class="code-line-9">└─ [08] tesis</code><code class="code-line-10"> ├─ [09] docx</code><code class="code-line-11"> │   ├─ [10] generate</code><code class="code-line-12"> │   └─ [11] tesis.docx</code><code class="code-line-13"> ├─ [12] ebooks</code><code class="code-line-14"> │   ├─ [13] generate</code><code class="code-line-15"> │   └─ [14] out</code><code class="code-line-16"> │   ├─ [15] generate.sh</code><code class="code-line-17"> │   ├─ [16] meta-data.yaml</code><code class="code-line-18"> │   ├─ [17] tesis.epub</code><code class="code-line-19"> │   └─ [18] tesis.mobi</code><code class="code-line-20"> ├─ [19] generate-all</code><code class="code-line-21"> ├─ [20] html</code><code class="code-line-22"> │ ├─ [21] generate</code><code class="code-line-23"> │ └─ [22] tesis.html</code><code class="code-line-24"> ├─ [23] md</code><code class="code-line-25"> │   ├─ [24] add-bib</code><code class="code-line-26"> │   ├─ [25] tesis.md</code><code class="code-line-27"> │   └─ [26] tesis_with-bib.md</code><code class="code-line-28"> └─ [27] pdf</code><code class="code-line-29"> ├─ [28] generate</code><code class="code-line-30"> └─ [29] tesis.pdf</code>
</pre>
<h3 id="senda-de-la-bibliografia">Senda de la bibliografía</h3>
<p>Incluso desde una vista simplificada puedes observar que este repositorio es un desmadre. La bibliografía [01] y la tesis [08] son los directorios principales de este repositorio. Como hermano tienes al sitio [07].</p>
<p>El directorio de la bibliografía no forma parte del proceso de automatización. El archivo <span class="smallcap">BIB</span> [02] lo trabajé en momentos distintos a mi redacción, así como lo exportaba a <span class="smallcap">HTML</span> [03] cada vez que usaba JabRef. Este <span class="smallcap">HTML</span> es para consultas desde el explorador. Ahí mismo hay un simple <i>script</i> [04] para limpiar la bibliografía con Biber y el archivo de configuración [05] para Baby Biber. ¿Eres un acumulador de datos? Existe un directorio [06] especial para ti con todos los trabajos usados para esta investigación ;)</p>
<h3 id="motor-encendido">Motor encendido</h3>
<p>En el directorio de la tesis [08] es donde todo se mueve plácidamente cuando ejecutas <code>generate-all</code> [19], ¡el <i>wrapper</i> que pone al motor en funcionamiento!</p>
<p>El <i>wrapper</i> lleva a cabo las siguientes tareas:</p>
<ol>
<li>
<p>Añade la bibliografía [24] al archivo <span class="smallcap">MD</span> [25] original, generando un nuevo archivo [26] que funciona como dato de entrada.</p>
</li>
<li>
<p>Genera [21] la salida <span class="smallcap">HTML</span> [22].</p>
</li>
<li>
<p>Compila [28] la salida <span class="smallcap">PDF</span> [29].</p>
</li>
<li>
<p>Genera [13] el <span class="smallcap">EPUB</span> [17] y el <span class="smallcap">MOBI</span> [18] según los metadatos [16] y el archivo de configuración de Pecas [15].</p>
</li>
<li>
<p>Exporta [10] el <span class="smallcap">MD</span> a <span class="smallcap">DOCX</span> [11].</p>
</li>
<li>
<p>Mueve la analítica al directorio correcto.</p>
</li>
<li>
<p>Refresca la fecha de modificación en el index [07].</p>
</li>
<li>
<p>Imprime el <i>hash</i> de la versión de la liberación continua en el index.</p>
</li>
<li>
<p>Imprime las sumas de comprobación <span class="smallcap">MD5</span> de todos los archivos de salida en el index.</p>
</li>
</ol>
<p>Y eso es todo. El proceso de desarrollo de una tesis como repositorio automatizado me permite solo preocuparme por tres cosas:</p>
<ol>
<li>
<p>Escribir la investigación.</p>
</li>
<li>
<p>Gestionar la bibliografía.</p>
</li>
<li>
<p>Despachar todas las salidas de manera automatizada.</p>
</li>
</ol>
<h3 id="las-cuestiones-legales">Las cuestiones legales</h3>
<p>Así es como está hecho, pero todavía tenemos que hablar sobre cómo <i>legalmente</i> se puede usar esta tesis…</p>
<p>Esta investigación fue pagada con los impuestos de todos los mexicanos. El Consejo Nacional de Ciencia y Tecnología (Conacyt) me otorgó una beca para estudiar una Maestría en Filosofía en la <span class="smallcap">UNAM</span> —así es, compas de otras latitudes, es común que aquí nos paguen por los estudios de posgrado—.</p>
<p>Esta beca es un privilegio problemático. Así que lo mínimo que puedo dar a cambio es la liberación de todo lo que fue pagado por mis compas, así como dar asesorías y talleres gratuitos. Lo repito: es lo <i>mínimo</i> que podemos hacer. Me encuentro en desacuerdo con el empleo de este privilegio para ostentar un estilo de vida abundante o parrandero que culmina con el abandono de los estudios. En un país con tantas crisis, las becas son para mejorar tu comunidad y no solo a ti.</p>
<p>En general tengo la convicción de que si eres un investigador o un estudiante de posgrado y ya recibes un pago —no importa que sea un salario o una beca, que estés en una universidad pública o privada, o que el dinero venga de fondos públicos o privados—, tienes un compromiso con tu comunidad, nuestra especie y nuestro planeta. Si quieres hablar de trabajo gratuito o de explotación —que sí sucede—, por favor mira hacia abajo. En este mundo de mierda estás en los escaños superiores de esta <a href="https://es.crimethinc.com/posters/capitalism-is-a-pyramid-scheme">pirámide sin sentido</a>.</p>
<p>Como investigador, científico, filósofo, teórico, artista y más, tienes la obligación de ayudar a otras personas. Aún podrías alimentar tu ego y creer que eres la chingonería o el próximo pensador, filósofo o artista categoría <span class="smallcap">AAA</span>. Ambas cuestiones no se sobreponen —aunque sigue siendo fastidioso—.</p>
<p>Por estos motivos esta investigación tiene licencia <a href="https://wiki.p2pfoundation.net/Copyfarleft"><i>copyfarleft</i></a> para su contenido y licencia <i>copyleft</i> para su código. En realidad se trata del mismo esquema de licenciamiento de <a href="https://perrotuerto.blog/content/html/es/_fork.html">este <i>blog</i></a>.</p>
<p>Con la Licencia Editorial Abierta y Libre (<span class="smallcap">LEAL</span>) eres libre de usar, copiar, reeditar, modificar, distribuir o comercializar bajo las siguientes condiciones:</p>
<ul>
<li>
<p>Los productos derivados o modificados han de heredar algún tipo de <span class="smallcap">LEAL</span>.</p>
</li>
<li>
<p>Los archivos editables y finales habrán de ser de acceso público.</p>
</li>
<li>
<p>El contenido no puede implicar difamación, explotación o vigilancia.</p>
</li>
</ul>
<p>Podrías quitar mi nombre y poner el tuyo, está permitido. Incluso podrías modificar el contenido y escribir que <span class="smallcap">AMO</span> la propiedad intelectual: no hay medio técnico que impida semejante difamación. Pero las sumas de comprobación <span class="smallcap">MD5</span> muestran si los archivos fueron modificados por otros. Aunque el archivo difiera por un bit, la suma de comprobación <span class="smallcap">MD5</span> arrojará un resultado distinto.</p>
<p>El <i>copyfarleft</i> es el camino —mas no la solución— que se ajusta a nuestro contexto y nuestras posibilidades de libertad. <span{#weblate}>No vengas aquí con tu noción liberal e individualista de libertad —como los weyes de Weblate que expulsaron este <i>blog</i> de su servidor porque la licencia de su contenido «no es libre», sin importar que ellos digan que el código, pero no el contenido, debe usar una licencia «libre», como la pinche <span class="smallcap">GPL</span> que emplea este <i>blog</i> para su código</span>—. Este tipo de libertad liberal no funciona en lugares donde ningún Estado ni corporación puede garantizarnos un conjunto mínimo de libertades individuales, como acontece en Asia, África y la otra América —América Latina y la América que no es retratada en la publicidad del «sueño americano».</p>
<h2 id="ultimos-pensamientos">Últimos pensamientos</h2>
<p>Así como una tesis funciona a partir de una hipótesis, el sendero técnico y legal de esta investigación actúa según la posibilidad de obtener una tesis como repositorio automatizado, en lugar de una tesis como archivo. Al final esto fue posible, pero de manera limitada.</p>
<p>Pienso que la idea de una tesis como repositorio automatizado es realizable y podría ser una mejor manera de distribuir la investigación en lugar de subir un simple archivo. No obstante, esta implementación contiene muchas fugas que la hacen inadecuada para escalarla.</p>
<p>Más trabajo es necesario para poder desdoblarla como práctica estandarizada. Esta técnica también podría ser aplicada para la automatización y la homologación de publicaciones, como artículos en una revista o una colección de libros. El esfuerzo necesario no es considerable y <i>tal vez</i> lo retome durante el doctorado. Pero por ahora, ¡es todo lo que puedo ofrecer!</p>
<p>Gracias a <a href="https://twitter.com/hacklib">@hacklib</a> por incitarme a escribir esta entrada y, de nueva cuenta, gracias a mi pareja por persuadirme a estudiar la Maestría y por corregir esta publicación en su versión inglesa. Gracias a mi tutor, a Programando <span class="smallcap">LIBRE</span>ros y a Gabi por su apoyo académico. No puedo olvidar dar gracias a <a href="https://hacklab.cc">Colima Hacklab</a>, al <a href="https://ranchoelectronico.org">Rancho Electrónico</a> y al <a href="https://t.me/miau2018">grupo Miau</a> por su soporte técnico. ¡También agradezco a todas las personas y organizaciones que menciono en la sección de agradecimientos de la investigación!</p>
<script type="text/javascript" src="../../../hashover/comments.php"></script>
</section>
<footer>
<p class="left no-indent">Los textos y las imágenes están bajo <a href="../../../content/html/es/_fork.html">Licencia Editorial Abierta y Libre (<span class="smallcap">LEAL</span>)</a>.</p>
<p class="left no-indent">El código está bajo <a target="_blank" href="https://www.gnu.org/licenses/gpl-faq.es.html">Licencia Pública General de <span class="smallcap">GNU</span> (<span class="smallcap">GPL</span>v3)</a>.</p>
<p class="left no-indent">Última modificación de esta página: 2020/02/15, 13:06.</p>
<p class="left no-indent"><span class="smallcap"><a target="_blank" href="https://perrotuerto.blog/feed/es/rss.xml">RSS</a></span> | <a href="../../../content/html/en/005_hiim-master.html"><span class="versalita">EN</span></a> | <a href="../../../content/html/es/005_hiim-master.html"><span class="versalita">ES</span></a></p>
</footer>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 162 KiB