• Stars
    star
    4,346
  • Rank 9,897 (Top 0.2 %)
  • Language
    CSS
  • Created almost 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Markdown source for Michael Abrash's Graphics Programming Black Book

Michael Abrash's Graphics Programming Black Book

This is the source for an ebook version of Michael Abrash's Black Book of Graphics Programming (Special Edition), originally published in 1997 and released online for free in 2001 (original link now broken, Internet Archive link).

Reproduced with blessing of Michael Abrash, converted and maintained by James Gregory.

The GitHub releases list has an EPUB and Mobi version available for download, and you can find a mirror of the HTML version at www.jagregory.com/abrash-black-book.

How does this differ from the previously released versions?

The book is now out of print, and hard to come by. Last time I checked, it was going for over $200 on eBay.

The version which Michael and Dr. Dobbs released in 2001 was a collection of PDF files. That version is still available (original link now broken, Internet Archive link). However, the structure (multiple files) and the format (PDF) result in a poor user experience on an ebook reader or other mobile device.

This version has been thoroughly cleaned of artifacts and condensed into something which can easily be converted into an ebook-friendly format. You can read this version online at GitHub, or download any of the EPUB or Mobi releases. You can clone the repository and generate your own version with pandoc if necessary.

Contributing

Changes are welcome, especially conversion-related ones. If you spot any problems while reading, please submit an issue and I'll correct it. Pull requests are always welcome.

Some larger changes could be made to improve the content. I'd love to see some of the images converted to a vector representation so we can provide higher-resolution versions. Formulas and equations could be typeset with MathJax.

Generating your own ebook

You need to have the following software installed and on your PATH before you begin:

  • pandoc version 2.0 or greater for Markdown to HTML and EPUB conversion.
  • kindlegen for Epub to Mobi conversion.

To generate an e-reader friendly version of the book, you can use make with one of the following options:

  • html - build an HTML5 single-page version of the book
  • epub - build an EPUB3 ebook
  • mobi - build a Kindle-friendly Mobi
  • all - do all of the above

Once complete, there will be an out directory with a black-book.epub, a black-book.mobi and an html directory with a black-book.html file.

Note: Generating a Mobi requires an EPUB to already exist. Also, Mobi generation can be slow because of compression. If you want a quick Mobi conversion you can just run kindlegen out/black-book.epub.

More Repositories

1

abrash-zen-of-asm

Markdown source for Michael Abrash's Zen of Assembly Language (1990)
CSS
548
star
2

cognito-local

Local emulator for Amazon Cognito
TypeScript
241
star
3

docu

Simple documentation done simply. .Net documentation generation
C#
159
star
4

shiro-freemarker-tags

Freemarker tags for Apache Shiro, mirroring the JSP tags that ship with Shiro
Java
127
star
5

pandoc-docker

Docker container for Pandoc with Latex tools
108
star
6

language-docker

Docker syntax highlighting for Atom
51
star
7

locker

A distributed lock service in Go using etcd
Go
49
star
8

halgo

HAL implementation in Go
Go
33
star
9

kindlegen-docker

Docker container for KindleGen
15
star
10

sharpdiff

Diff creation and parsing library for .Net
C#
15
star
11

1password-env

Store Environment Variables in 1Password and retrieve them in temporary shells. Good for AWS credentials.
Shell
15
star
12

atom-pandoc-preview

Pandoc-powered Previewer for Atom
CoffeeScript
14
star
13

cfval

The CloudFormation template validator
Go
10
star
14

yayaml

YaYAML: Yet Another YAML .Net parser
C#
9
star
15

kms-scripts

Bash scripts for encrypting and decrypting with AWS Key Management Service (KMS)
Shell
9
star
16

lambdanator

Teeny-tiny static reflection class
C#
9
star
17

chef-logentries

Logentries Chef cookbook
Ruby
6
star
18

jagregory-gitsharp

C#
6
star
19

aa

JavaScript
6
star
20

sinopia-ansible

Ansible role for the Sinopia NPM registry
6
star
21

play-google-checkout

Google Checkout Play! module
Java
5
star
22

docker-tilestache

Tilestache Docker container
Shell
4
star
23

gopenexchangerates

Open Exchange Rates (http://openexchangerates.org) client in Go
Go
3
star
24

mig

Go SQL migration package
Go
3
star
25

conditionalhttp

Really basic HTTP Conditional GET for Go
Go
3
star
26

cote

Compiled Templates for Go
Go
3
star
27

fakehttp

Fake Go HTTP server for responding with canned data in tests.
Go
2
star
28

cdk-aws-opensearch-api

TypeScript
2
star
29

dotfiles

Vim Script
2
star
30

jagregory.github.com

HTML
2
star
31

play-feedback

Simple AJAX feedback module for the Play! framework
Java
2
star
32

otg-bitmap

Bitmap (bitset) Ruby implementation
Ruby
2
star
33

docker-aws-amicleaner

Docker container for aws-amicleaner
2
star
34

docker-lua

Lua Docker container (ubuntu, lua, luarocks)
Shell
2
star
35

themostawesomegame

Lua game test
Lua
2
star
36

fnh-site

Fluent NHibernate website
Ruby
2
star
37

play-pegdown

Pegdown module for the Play framework
Java
2
star
38

migratefmdb

Basic database migrations using FMDatabase
Objective-C
2
star
39

pactspike

Spike of using Pact for contract testing
Ruby
1
star
40

rubyproto

Minimal Ruby stack for prototyping
Ruby
1
star
41

pngcrush-docker

Docker container for pngcrush
Shell
1
star
42

graphql-example

Example simple GraphQL React app (goes with talk slides)
JavaScript
1
star
43

kiwipromisematchers

RXPromise matchers for Kiwi
Objective-C
1
star
44

meetups

Ruby
1
star
45

guidance

Micro-site generator for project guides/documentation
Ruby
1
star
46

aws-es6-promise

AWS SDK ES6 Promise wrapper
JavaScript
1
star
47

hypermedia

Opinionated hypermedia helpers
Go
1
star
48

derby-d3

JavaScript
1
star
49

devenv

Shell
1
star
50

cloud-config-multipart.js

Javascript multipart file concatenator for cloud-config user data
JavaScript
1
star
51

geomath

Spherical math on earth
Go
1
star
52

homebrew-tools

Ruby
1
star
53

jest-snapshot-issue-reproduction

JavaScript
1
star
54

cognito-trigger-mapper

Scenarios and CDK stack to map out which triggers are fired when by Amazon Cognito
TypeScript
1
star
55

example-express

JavaScript
1
star
56

grafana-dashboard-resource

Shell
1
star
57

play_asia

Ruby Gem for the Play Asia API
Ruby
1
star
58

microformat

Simple Ruby Microformat (schema.org) parser
Ruby
1
star
59

pathmathjs

Messing around with Path maths for SVG path manipulation/subdivision (incomplete)
JavaScript
1
star