#append this to module path so we can load from the parent directory
import os
import sys
from scaffold import web
from scaffold.loaders import load


class page:
    name = __name__
    title = 'Review of "From Mathematics to Generic Programming"'
    tags = 'review', 'books', 'maths'
    intro = 'Short review of "From Mathematics to Generic Programming"'
    date = '2014-12-29'
    image = web.template.path_image + 'thumbs/frommathmaticstogenericprogramming.jpeg'

    def create_content(self):
        web.link.create('From Mathematics to Generic Programming', web.images.create(self.image, title='From Mathematics to Generic Programming').render(),'http://www.amazon.com/Mathematics-Generic-Programming-Alexander-Stepanov/dp/0321942043/ref=sr_1_1?ie=UTF8&qid=1418657555&sr=8-1&keywords=from+mathematics+to+generic+programming')
        web.page.section(
            web.div.create(
                web.link.render()
            ).set_classes('sources').render()
        )

        web.div.create(
            web.paragraph.create(
                """From Mathematics to Generic Programming is part history, part mathematics and part programming with the emphasis very much on the maths side.
                I found the book quite hard to follow, mainly because I don't use mathematics often enough.
                Nevertheless, I found the idea that you can gain such versatility from a single algorithm quite interesting.""").render()
        ).append(
            web.paragraph.create(
                """It has sparked my interest enough to re-learn some of the maths I once knew.
                If your algebra and geometry knowledge is reasonable, you are likely to have no trouble with the material in this book.
                It is laid out with some exercises for the reader to attempt to help with understanding.""").render()
        ).append(
            web.paragraph.create(
                """I would like to have seen further examples relating to the use of higher level development, for example web development, if this were possible.""").render()
        ).append(
            web.paragraph.create(
                """Currently, the emphasis seems to be on low level programming which is perhaps less common, given all the rich libraries around which implement most of these functions.""").render()
        ).append(
            web.paragraph.create(
                """If your maths is reasonable and you have a good understanding of lower level programming this book will be of great interest to you.""").render()
        )
        web.page.section(web.div.render())

