milewski-ctfp-pdf/README.md

77 lines
4.2 KiB
Markdown
Raw Normal View History

2018-07-30 13:26:01 +03:00
Category Theory for Programmers
2017-09-22 21:31:49 +03:00
====
2017-10-03 11:23:50 +03:00
<img src="https://user-images.githubusercontent.com/601206/31094980-ba6af4a4-a7bf-11e7-8857-870346890b44.png"
2017-09-22 22:21:57 +03:00
alt="Category Theory for Programmers" width=256 align="right" />
2018-07-30 13:26:01 +03:00
![image](https://user-images.githubusercontent.com/601206/43392303-f770d7be-93fb-11e8-8db8-b7e915b435ba.png)
2018-03-27 23:27:07 +03:00
<b>Direct link: [category-theory-for-programmers.pdf](https://github.com/hmemcpy/milewski-ctfp-pdf/releases/download/v0.7.0/category-theory-for-programmers.pdf)</b>
(Latest release: v0.7.0, April 2018)
2017-09-22 21:31:49 +03:00
2018-07-30 13:26:01 +03:00
[![Build Status](https://travis-ci.org/hmemcpy/milewski-ctfp-pdf.svg?branch=master)](https://travis-ci.org/hmemcpy/milewski-ctfp-pdf)
[(latest CI build)](https://s3.amazonaws.com/milewski-ctfp-pdf/category-theory-for-programmers.pdf)
2017-09-22 22:30:47 +03:00
This is an *unofficial* PDF version of "Category Theory for Programmers" by Bartosz Milewski, converted from his [blogpost series](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/).
2017-10-01 09:22:44 +03:00
---
2017-09-25 22:40:34 +03:00
Conversion is done by scraping the blog with [Mercury Web Parser](https://mercury.postlight.com/web-parser/) to get a clean HTML content, modifying and tweaking with [Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/), finally, converting to LaTeX with [Pandoc](https://pandoc.org/). See [scraper.py](https://github.com/hmemcpy/milewski-ctfp-pdf/blob/master/src/scraper.py) for additional information.
2017-09-22 21:31:49 +03:00
2017-10-01 09:22:44 +03:00
Please [report](https://github.com/hmemcpy/milewski-ctfp-pdf/issues) any formatting/content issues, or better yet, send a PR!
Building
--------
*For macOS Users:* The Inconsolata LGC, Linux Libertine, and Libertinus Math fonts are not included in MacTex. You need to install them separately. Download the Inconsolata LGC fonts [here](https://github.com/MihailJP/Inconsolata-LGC/downloads), the Linux Libertine fonts [here](http://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/LinLibertineOTF_5.3.0_2012_07_02.tgz/download), and the Libertinus Math font [here](https://fontlibrary.org/en/font/libertinus-math). To install the fonts system-wide, move all the downloaded `.otf` files into the `/Library/Fonts` folder. After completing these tasks, continue with the instructions below.
2017-10-01 09:22:44 +03:00
The `src` directory contains the LaTeX sources. To recompile the book, go there and enter:
```bash
$ make
```
The file `preamble.tex` contains all the configuration and style declarations.
2017-10-18 11:01:23 +03:00
Chances for successful compilation are increased if you have almost complete installation of recent [TeX Live](https://www.tug.org/texlive/) distribution (the PDF here is compiled with 2017 release). The needed OpenType fonts must be installed in the operating system.
2017-10-01 09:22:44 +03:00
To remove all the generated PDFs and auxiliary files in the whole `src` tree:
```bash
$ make clean-all
```
**Tip**: you can use a utility like [entr](http://entrproject.org/) to run a command after any `*.tex` file changes, e.g.:
```bash
$ ls **/*.tex | entr make
```
This will monitor all the `*.tex` files for changes, and will execute the `make` command if any of them changes. This speeds up development significantly, as you can freely modify any of the files, and get almost instant feedback!
2017-09-30 13:21:24 +03:00
2017-09-22 21:31:49 +03:00
Acknowledgements
----------------
2017-10-01 09:22:44 +03:00
PDF LaTeX source and the tools to create it are based on the work by Andres Raba et al., available here: https://github.com/sarabander/sicp-pdf.
The book content is taken, with permission, from Bartosz Milewski's blogpost series, and adapted to the LaTeX format.
2017-09-20 23:07:58 +03:00
2018-03-31 13:48:55 +03:00
Thanks to the following people for contributing corrections/conversions and misc:
2017-09-20 23:07:58 +03:00
* Oleg Rakitskiy
2017-10-18 11:00:38 +03:00
* Jared Weakly
* Paolo G. Giarrusso
* Adi Shavit
* Mico from the TeX.StackExchange community
* Marcello Seri
2018-03-31 13:48:55 +03:00
* Erwin Maruli Tua Pakpahan
* Markus Hauck
2017-10-18 11:00:38 +03:00
* ...and many others!
2017-09-22 21:31:49 +03:00
2018-01-04 00:17:32 +03:00
Note from Bartosz: I really appreciate all your contributions. You made this book much better than I could have imagined. Thank you!
2017-09-22 21:31:49 +03:00
License
-------
2017-09-30 13:21:24 +03:00
The PDF book, `.tex` files, and associated images and figures in directories `src/fig` and `src/content` are licensed under Creative Commons Attribution-ShareAlike 4.0 International License ([cc by-sa](http://creativecommons.org/licenses/by-sa/4.0/)).
2017-09-22 22:30:47 +03:00
2017-10-16 21:36:25 +03:00
The script files `scraper.py` and others are licensed under GNU General Public License version 3 (for details, see [LICENSE](https://github.com/hmemcpy/milewski-ctfp-pdf/blob/master/LICENSE)).