Code Monkey home page Code Monkey logo

book's Introduction

Crypto 101: the book

https://travis-ci.com/crypto101/book.svg?branch=master

This is the source repository for Crypto 101, the introductory book about cryptography by lvh.

License

See the LICENSE file.

Building

WARNING: Please note that building (anywhere besides on the machine lvh builds on, in any way besides the way that lvh builds it) is a very new and experimental feature, and is many different kinds of broken. If you try this, and it doesn't work out, please file an issue so we can resolve it.

Run make in the root directory of the repository to convert the source files into rendered versions of all supported formats.

Dependencies

Please note that for now, producing a better book is the primary goal. All other things being equal, an easier to build book is better than a harder to build book, but, for example, a better illustration that relies on a new tool is better than a worse illustration.

Emacs 24

The easiest way to get this on OS X is to install Emacs via Homebrew or by downloading it from Emacs For Mac OS X.

Keep in mind that the Makefile will build using whatever emacs is in your current environment. Notably, if you're on OS X and using Emacs for Mac OS X, there's a decent chance that emacs in your shell environment will actually refer to the massively ancient version that came shipped with your OS.

org-mode

You will need a recent release of org-mode. If you install it through ELPA (Emacs 24's default package repository when you do list-packages and install things), it should be found automagically. You can override the location of your org-mode installation by setting the ORG_DIR environment variable.

LaTeX environment

You will need TeX Live with a great many installed packages. You will also need latexmk and xetex, which come with TeX Live. Any effort to make this list more precise is greatly appreciated.

On Debian, you will need at least texlive-latex-recommended and texlive-xetex.

Graphviz

Graphviz is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts. It also provides libraries for software applications to use the tools.

potrace

potrace is responsible for turning some of the hand-drawn images into vector formats. It is available from most package sources, including Homebrew and Macports for OS X, and pretty much every Linux distribution's default package repository.

Inkscape

Inkscape is necessary to render SVG sources to PDF. If you install it on OS X using the .app, you won't have a command line script; create an executable file named inkscape somewhere on your $PATH with the following contents:

#!/usr/bin/env bash
/Applications/Inkscape.app/Contents/Resources/script $@

pygments

pygments is used to render source code. You can either install it through the usual Python channels, or your operating system's package manager. On Debian and Ubuntu, this package is called python-pygments.

book's People

Contributors

alexis-d avatar allonhadaya avatar antoneliasson avatar asweigart avatar ben0x539 avatar bennyyip avatar bwagner5 avatar cainanw avatar coh2 avatar danielcompton avatar dato avatar dfc avatar edoverflow avatar fletom avatar frewsxcv avatar gliptak avatar hmmueller avatar jsachs avatar jvasile avatar lunacookies avatar lvh avatar mandragorian avatar mrkline avatar onprem avatar solidgoldbomb avatar tasn avatar trackpick avatar treycucco avatar zackse avatar zero-1729 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.