My dissertation is finally finished.
Before finishing my dissertation, I was eager to share it with my classmates so that they could read and give me suggestions.
Normally, I would give them read-only access on the Git or Subversion repository containing my dissertation, so that they can check out the LaTeX source files, and then compile the dissertation.
This procedure creates a hurdle for them, because LaTeX is normally not installed on mobile devices they might use.
For most people, the solution would be sending PDF attachments.
However, when I add more and more text and pictures into my dissertation, the PDF becomes increaseingly large, and I don't want to send large files and use up the quota of my and my classmates' mailboxes.
There is a better solution.
Netlify is a free hosting service for static web sites.
It provides a Node.js client app, which can deploy a prepared website from the command line.
It can also pick up commits into a git repository, and compile the website from source code.
While my dissertation is not a website, hosting it on Netlify is totally feasible.
Although Netlify's continuous deployment does not support LaTeX, I can still compile the PDF locally, and upload it to Netlify.
To do so, I added a Makefile rule:
I'm writing my dissertation recently.
My dissertation is a combination of several publications from my PhD career.
Therefore, part of my dissertation writing process involves copy-pasting the papers together into a single document.
Like any good academics, I typeset my publications with LaTeX, and use BibTeX to incorporate citations into the documents.
My collection of bibliographies is fairly ad hoc: during each writing project, I search for related work to cite in my paper.
Unlike most others, I create a separate bib file for each BibTeX entry named after the citation key.
For example, I would have
bib/ndn-tlv.bib for a BibTeX entry named "ndn-tlv", and
bib/Mininet.bib for the "Mininet" entry.
This allows me to find available citation keys with a quick glance over the
My build process then concatenates these small bib files into
ref.bib as an input to BibTeX.
My dissertation combines all my publications, and thus needs a union of BibTeX entries from those combinations.
To make this union, I can copy all these single-entry bib files into the same directory.
If two previous papers cited the same reference, their bib files should have the same name, and only one copy would be left in the combined directory.
Except that the above assumption is true only if I cited the same reference with the same citation key.
And so I discovered a citation appearing twice in my dissertation: