Showing posts with label ebooks. Show all posts
Showing posts with label ebooks. Show all posts

Monday, February 9, 2015

pmarca - Marc Andreessen's blog as an ebook

By Vasudev Ram




Click image above to skip reading this post and go grab the book :)
Gotta like the Venn diagram on that page.

Saw this today:

Marc Andreessen, a.k.a. @pmarca on the internets, has made many of the good posts from his blog available as an ebook - which is free to download. You can get it here:

The Pmarca Blog Archive Is Back… as an Ebook

The title of the book (in the PDF) is:

The Pmarca Blog Archives

(select posts from 2007-2009)

Excerpt from Marc Andreessen's page on Wikipedia:
[ He is best known as coauthor of Mosaic, the first widely used Web browser; as cofounder of Netscape Communications Corporation;[3] and as cofounder and general partner of Silicon Valley venture capital firm Andreessen Horowitz. He founded and later sold the software company Opsware to Hewlett-Packard. Andreessen is also a cofounder of Ning, a company that provides a platform for social networking websites. ... Andreessen is one of only six inductees in the World Wide Web Hall of Fame announced at the first international conference on the World Wide Web in 1994 ]

Just downloaded the book and scanned the table of contents to get an idea of what it contains. I found that many of the post were ones which I had read on his blog some years earlier, when he was actively blogging. At the time I had thought that the posts were really good, and still do. They're probably worth reading - by downloading the book - for anyone who has not read them before, and even for people who have. I'm going to read the book myself in the next few days.

- Vasudev Ram - Dancing Bison Enterprises

Signup to hear about my new products.

Contact Page

Thursday, December 5, 2013

Added a Table of Contents feature to XMLtoPDFBook

By Vasudev Ram

XMLtoPDFBook is a publishing tool I created, that allows you to create simple PDF ebooks from text content in XML files.

I had blogged about XMLtoPDFBook earlier, here:

Create PDF books with XMLtoPDFBook

and here:

XMLtoPDFBook now supports chapter numbers and names

Today I added some support for a Table of Contents feature to XMLtoPDFBook. Here is the updated program:
# XMLtoPDFBook2.py

# A program to convert a book in XML text format to a PDF book.
# Uses xtopdf and ReportLab.

# Author: Vasudev Ram - http://www.dancingbison.com
# Version: v0.2

#--------------------------------------------------------------------

# imports

import sys
import os
import string
import time

from PDFWriter import PDFWriter

try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET

#--------------------------------------------------------------------

# global variables

sysargv = None

#--------------------------------------------------------------------

def debug(message):
    sys.stderr.write(message + "\n")

#--------------------------------------------------------------------

def get_xml_filename(sysargv):
    return sysargv[1]

#--------------------------------------------------------------------

def get_pdf_filename(sysargv):
    return sysargv[2]

#--------------------------------------------------------------------

def XMLtoPDFBook():

    debug("Entered XMLtoPDFBook()")

    global sysargv

    # Get command-line arguments.
    xml_filename = get_xml_filename(sysargv)
    debug("xml_filename: " + xml_filename)
    pdf_filename = get_pdf_filename(sysargv)
    debug("pdf_filename: " + pdf_filename)

    # Parse the XML file.
    try:
        tree = ET.ElementTree(file=xml_filename)
        debug("tree = " + repr(tree))
    except Exception:
        sys.stderr.write("Error: caught exception in ET.ElementTree(file)")
        sys.exit(1)

    # Get the tree root.
    root = tree.getroot()
    debug("root.tag = " + root.tag)
    if root.tag != "book":
        debug("Error: Root tag is not 'book'")
        sys.exit(1)

    # Initialize the table of contents list.
    toc = []
    # Initialize the chapters list.
    chapters = []

    # Traverse the tree, extracting needed data into variables.
    debug("-" * 60)
    for root_child in root:
        if root_child.tag != "chapter":
            debug("Error: root_child tag is not 'chapter'")
            sys.exit(1)
        chapter = root_child
        #debug(chapter.text)
        chapters.append(chapter.text)
        try:
            chapter_name = chapter.attrib['name']
        except KeyError:
            chapter_name = ""
        toc.append(chapter_name)
        debug("-" * 60)

    # Create and set some fields of a PDFWriter.
    pw = PDFWriter(pdf_filename)
    pw.setFont("Courier", 12)
    pw.setFooter("Generated by XMLtoPDFBook. Copyright 2013 Vasudev Ram")

    # Write the TOC.
    pw.setHeader("Table of Contents")
    chapter_num = 0
    debug("Chapter names")
    for chapter_name in toc:
        debug(chapter_name)
        chapter_num += 1
        pw.writeLine(str(chapter_num) + ": " + chapter_name)
    pw.savePage()

    # Write the chapters.
    chapter_num = 0
    for chapter in chapters:
        chapter_num += 1
        pw.setHeader("Chapter " + str(chapter_num) + ": " + toc[chapter_num - 1])
        lines = chapter.split("\n")
        for line in lines:
            pw.writeLine(line)
        pw.savePage()

    pw.close()

    debug("Exiting XMLtoPDFBook()")

def main():

    debug("Entered main()")

    global sysargv
    sysargv = sys.argv

    # Check for right number of arguments.
    if len(sysargv) != 3:
        sys.exit(1)

    XMLtoPDFBook()

    debug("Exiting main()")

#--------------------------------------------------------------------

if __name__ == "__main__":
    try:
        main()
    except Exception, e:
        sys.stderr.write("Error: caught Exception" + str(e))
        sys.exit(1)

#--------------------------------------------------------------------

You can run it as follows:
python XMLtoPDFBook2.py vi_quickstart2.xml vi_quickstart2.pdf 
where I've used my vi quickstart tutorial, first written for Linux For You magazine, as the input XML file.

Here is a screenshot of the first page of the resulting PDF ebook - the Table of Contents:


And here is a screenshot Chapter 3 of the book:


I've pushed the code (as file XMLtoPDFBook2.py) to my xtopdf project on Bitbucket.

Enjoy.

- Vasudev Ram - Dancing Bison Enterprises

Contact Page




Sunday, November 17, 2013

Book review: Instant Flask Web Development

By Vasudev Ram



Flask is a Python micro-framework that is fairly popular.
I had first blogged about it a couple of years ago, here:

Flask, new Python microframework

Recently, I had been working on a commercial Flask project for some time, when Packt Publishing asked me if I would review one of their books, Instant Flask Web Development. I did it. The review is below.

Review of book "Instant Flask Web Development", author Ron DuPlain, publisher Packt Publishing:

The book seems to be meant for people who already have some experience with Python.
Some parts of it that cover using Twitter Bootstrap and CSS in Flask templates, will also need knowledge of those topics.

Starts with a simple Hello World Flask app and explains some of the concepts involved.

Some of the topics covered in the book are:
- making a simple Flask app
- mapping URLs to functions (a.k.a. routing)
- HTTP request and response handling
- using databases, static file handling, and form and file uploads
- database CRUD (Create / Read / Update / Delete) operations
- sessions and authentication
- error handling
- deploying Flask apps using nginx and gunicorn

Uses Flask-Script to create command line tools to manage the Flask apps created.

Flask-Script is a Flask extension that provides support for writing external scripts in Flask.

(Flask has an facility for writing extensions that add to the functionality of the base Flask package, and there are multiple such extensions available.)

The book then starts on a scheduling application, which is used as a tutorial to illustrate various Flask features. This app allows the user to Create, Read, Update, Delete (i.e. CRUD) and List appointment records.

It shows how the use the route decorator of the Flask app object, to map various URLs that the app supports, to functions of the app that implement the actions specified by those URLs.

I noticed what seems to be an error in this section; in the middle of the code that maps the URLs to functions, there is this line:
@app.route(...) and def appointment_edit(...).
which is probably an inadvertent copy/paste from some of the text. But it would make the code fail to run, if copied as is from the ebook.

They do specify URLs (on the Packt site) from where you can download the source code for the program examples in book, though.

The use of the Flask url_for() function is described.

There appears to be an error in this section of code:
@app.route('/appointments/<int:appointment_id>/')
def appointment_detail(appointment_id):
    edit_url = url_for('appointment_edit',
    appointment_id=appointment_id)
    # Return the URL string just for demonstration.
    return edit_url
The function is called appointment_detail, but the url_for function is passed an argument 'appointment_edit'. In this case it would work, because it is just returning the URL string for display, not actually doing the appointment detail display.

Then it moves on to talk about how to handle different HTTP methods in Flask, as defined by the HTTP protocol, including GET, POST, etc.

It also mentions that instead of using the Flask route decorator, you can use a method, app.add_url_rule, as an alternative.

The section on using Jinja templates requires knowledge of CSS and JavaScript, and also Twitter Bootstrap and jQuery. The book gets a bit into Jinja features like macros.

Simple, Intermediate and Advanced sections are interspersed through the book (except for the first few sections, which are all Simple).

The book shows how to use some of Flask's error handling techniques, including how to generate a custom error page.

It ends with describing how to deploy a Flask app to production using nginx and gunicorn.

Other posts about Flask on this blog.

Other posts about Python on this blog.

- Vasudev Ram - Consulting and training on Python, Linux, open source




O'Reilly 50% Ebook Deal of the Day


Wednesday, October 30, 2013

The book, REMOTE, by 37signals, is out


By Vasudev Ram

The book titled REMOTE, by 37signals, is out.
I had read about it some time ago when they announced they were writing it.
Today I got an email from them announcing that the book is available (in hardcover, ebook and audio book formats, interestingly). The book is about the advantages of remote working / telecommuting, which 37signals uses.

I don't agree with all the statements that 37 Signals makes, but this book should be interesting.

This is the site for the REMOTE book.

There are a few sample chapters available for online reading:

Hey, Marissa Mayer, You’ve Got it Wrong: Telecommuting Isn’t A Bad Thing. It’s The Future. (by Jason Fried)

Why Face-To-Face Meetings Are Overrated. (by Jason Fried)

Cabin fever.

Reviews of the REMOTE book.

- Vasudev Ram - Dancing Bison Enterprises

Contact VR





O'Reilly 50% Ebook Deal of the Day


Tuesday, October 1, 2013

Book: Invisible Engines - How Software Platforms Drive Innovation and Transform Industries


By Vasudev Ram

Book: Invisible Engines

Just saw the above book via a post by Ryan Sarver (ex-Director of
Platform at Twitter):

What is a platform

Saw his post via this post by "A VC" Fred Wilson (@fredwilson):

Lessons learned

Seems like Invisible Engines may be an interesting book. I've only read a few pages myself so far.

You can download the book here:

Invisible Engines book (PDF)

The Invisible Engines book is published by MIT Press.


Vasudev Ram
Dancing Bison Enterprises
Software consulting and training
(Python, Linux, PDF, open source, ...)
- Dancing Bison Enterprises
- Blog: jugad2
- Projects on Bitbucket
- Profile

Contact Dancing Bison Enterprises

Monday, June 17, 2013

XMLtoPDFBook now supports chapter numbers and names


By Vasudev Ram

I've added support for chapter numbers and names to XMLtoPDFBook, which I blogged about recently. XMLtoPDFBook enables you to create simple PDF ebooks from chapters stored as text in an XML file.

The chapter numbers and names are printed in the header of the PDF file created. Chapter numbers are added automatically, starting from 1, and incremented by 1 for each chapter. For chapter names, you have to change the chapter elements in the XML file from the earlier format, which had no attributes for the chapter element, to add an attribute called 'name', with its value being the chapter name.

Earlier format for the chapter element:

<chapter>

New format for the chapter element:

<chapter name="chapter_name">

where you replace "chapter_name" with the name of each chapter, as desired.

That is the only change needed. The (updated) XMLtoPDFBook program takes care of the rest.

Chapter names, though supported, are optional. If a chapter element has no name attribute, it is not an error. No chapter name will be printed in the header for that chapter.

You can run XMLtoPDFBook the same way as I said in my first post about it:

python XMLtoPDFBook.py vi_quickstart.xml vi_quickstart.pdf

For viewing the PDF file, you may want to try using either Foxit PDF Reader or NitroReader. I've used Foxit Reader a lot, and it is fairly good. Just started trying NitroReader (*).

Here is a screenshot of page 1 of the generated PDF file, vi_quickstart.pdf, in NitroReader (right-click to open in a new tab and view larger size):


And here is a screenshot of page 5 of the same PDF file, vi_quickstart.pdf, in Foxit PDF Reader (right-click to open in a new tab and view larger size):


I also added some more error handling to the program.

I've uploaded XMLtoPDF to my Bitbucket repository for xtopdf, since it is now a part of my xtopdf toolkit. You can download it from here.

Incidentally, I saw on the NitroReader site that it was PDF's birthday this month; the PDF format is now 20 years old.

(*) And finally, it was a bit interesting to me to remember that NitroPDF (from the same company as NitroReader) was one of the topics of my very second blog post on my earlier blog, jugad's Journal :-). I ran that blog for about 3 years before moving to this one (which you are reading now), on Blogger, due to the takeover of LiveJournal by some other company.

- Vasudev Ram - Dancing Bison Enterprises

Contact me

Saturday, June 15, 2013

Create PDF books with XMLtoPDFBook

By Vasudev Ram


XMLtoPDFBook is a program that lets you create simple PDF books from XML text content. It requires Python, ReportLab and my xtopdf toolkit for PDF creation.

(Use ReportLab v1.21, not the 2.x series; though 2.x has more features, xtopdf has not been tested with it; also, those additional features are not required for xtopdf.)

XMLtoPDFBook.py is released as open source software under the BSD license, and I'll be adding it to the tools in my xtopdf toolkit.

Here's how to use XMLtoPDFBook:

In a text editor, create a simple XML template for the book, like this:
<?xml version="1.0"?>
<book>
        <chapter>
        Chapter 1 content here.
        </chapter>

        <chapter>
        Chapter 2 content here.
        </chapter>
</book>
Add as many chapter elements as you need.

Then write or paste the text of one chapter inside each chapter element, in sequence.

Now you can convert the book content to PDF using this program, XMLtoPDFBook:
#--------------------------------------------------
# XMLtoPDFBook.py

# A program to convert a book in XML text format to a PDF book.
# Uses xtopdf and ReportLab.

# Author: Vasudev Ram - http://www.dancingbison.com
# Version: v0.1

#--------------------------------------------------

# imports

import sys
import os
import string
import time

from PDFWriter import PDFWriter

try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET

#--------------------------------------------------

# global variables

sysargv = None

#--------------------------------------------------

def debug(message):
    sys.stderr.write(message + "\n")

#--------------------------------------------------

def get_xml_filename(sysargv):
    return sysargv[1]

#--------------------------------------------------

def get_pdf_filename(sysargv):
    return sysargv[2]

#--------------------------------------------------

def XMLtoPDFBook():

    debug("Entered XMLtoPDFBook()")

    global sysargv

    xml_filename = get_xml_filename(sysargv)
    debug("xml_filename: " + xml_filename)
    pdf_filename = get_pdf_filename(sysargv)
    debug("pdf_filename: " + pdf_filename)

    pw = PDFWriter(pdf_filename)
    pw.setFont("Courier", 12)
    pw.setHeader(xml_filename + " to " + pdf_filename)
    pw.setFooter("Generated by ElementTree and xtopdf")

    tree = ET.ElementTree(file=xml_filename)
    debug("tree = " + repr(tree))

    root = tree.getroot()
    debug("root.tag = " + root.tag)
    if root.tag != "book":
        debug("Error: Root tag is not 'book'")
        sys.exit(2)

    debug("=" * 60)
    for root_child in root:
        if root_child.tag != "chapter":
            debug("Error: root_child tag is not 'chapter'")
            sys.exit(3)
        debug(root_child.text)
        lines = root_child.text.split("\n")
        for line in lines:
            pw.writeLine(line)
        pw.savePage()
        debug("-" * 60)
    debug("=" * 60)
    pw.close()

    debug("Exiting XMLtoPDFBook()")

#--------------------------------------------------

def main():

    debug("Entered main()")

    global sysargv
    sysargv = sys.argv

    # Check for right number of arguments.
    if len(sysargv) != 3:
        sys.exit(1)

    XMLtoPDFBook()

    debug("Exiting main()")

#--------------------------------------------------

if __name__ == "__main__":
    main()

#--------------------------------------------------

Here is an example run of XMLtoPDFBook, using my vi quickstart article earlier published in Linux For You magazine:

python XMLtoPDFBook.py vi_quickstart.xml vi_quickstart.pdf

This results in the contents of the article being published to PDF in the file vi_quickstart.pdf.

- Vasudev Ram - Dancing Bison Enterprises

Contact me

Wednesday, May 1, 2013

PDF in a Bottle - creating PDF using xtopdf, ReportLab, Bottle and Python

By Vasudev Ram





pdf_bottle.py is a program I wrote that allows you to create a PDF file from text, over the web, by entering your text into a form and submitting it.

Here is the program:
# pdf_bottle.py

# Description: Program to generate PDF from text, over the web,
# using xtopdf, ReportLab and the Bottle web framework.
# It can be used to create short, simple PDF e-books.
# Author: Vasudev Ram - http://dancingbison.com
# Copyright 2013 Vasudev Ram 
# Tested with Python 2.7.

# Version: 0.1

# Dependencies:
# xtopdf - https://bitbucket.org/vasudevram/xtopdf
# bottle - http://bottlepy.org
# ReportLab - http://www.reportlab.com/ftp/reportlab-1.21.zip
# Python - http://python.org

from PDFWriter import PDFWriter

from bottle import route, request, run

@route('/edit_book')
def edit_book():
    return '''
    <form action="/save_book" method="post">
    PDF file name: <input type="text" name="pdf_file_name" />

    Header: <input type="text" name="header" />

    Footer: <input type="text" name="footer" />

    Content:
    <textarea name="content" rows="15"   cols="50"></textarea>

    <input type="submit" value="Submit" />

    </form>
'''

@route('/save_book', method='POST')
def save_book():
    try:
        pdf_file_name = request.forms.get('pdf_file_name')
        header = request.forms.get('header')
        footer = request.forms.get('footer')
        content = request.forms.get('content')

        pw = PDFWriter(pdf_file_name)
        pw.setFont("Courier", 12)
        pw.setHeader(header)
        pw.setFooter(footer)

        lines = content.split('\n')
        for line in lines:
            pw.writeLine(line)

        pw.savePage()
        pw.close()
        return "Done"
    except Exception:
        return "Not done"

def main():
    run(host='localhost', port=9999)

if __name__ == "__main__":
    main()

To run it, you need to have Python, the open source version of ReportLab, my xtopdf toolkit and the Bottle Python web framework installed.

Here is a guide to installing and using xtopdf.

For help with installing the other products, consult their respective sites, linked above.

Then run the program with this command:

python pdf_bottle.py

Then, in a browser window, go to localhost:9999

Enter the details - PDF file name, header, footer and text content - in the form, then click Submit.

The PDF file will be generated in the same directory from where you ran the Python program.

This is the first version, and has been tested only a bit. It you find any issues, please mention them in the comments.

Various improvements are possible, including sending the generated PDF to the user's browser, or providing a link to download it (better), and I'll work on some of them over time.

P.S. Excerpt from the Bottle framework site:

[
Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library.

Routing: Requests to function-call mapping with support for clean and dynamic URLs.
Templates: Fast and pythonic built-in template engine and support for mako, jinja2 and cheetah templates.
Utilities: Convenient access to form data, file uploads, cookies, headers and other HTTP-related metadata.
Server: Built-in HTTP development server and support for paste, fapws3, bjoern, Google App Engine, cherrypy or any other WSGI capable HTTP server.
]

- Vasudev Ram - Dancing Bison Enterprises

Wednesday, November 28, 2012

PyBooklet, to create PDFs with 2 pages per sheet for printing

yedderson/PyBooklet · GitHub

Interesting idea.

PyBooklet may be a useful complement to my PDFBook utility (a part of my xtopdf toolkit), which can create PDF books from a set of text file chapters, and other such tools, to create printed books from PDF files, with less use of paper, which is better for the environment.

- Vasudev Ram
www.dancingbison.com

Thursday, November 22, 2012

The Readium project: open source EPUB 3 reference implementation

Readium | Digital Publishing meets Open Web

One of their goals is to provide an open source reference implementation of an EPUB3 reader in the browser. They have a Chrome extension which does that.

Excerpt from the site:


Readium Open Source Initiative Launched to Accelerate
Adoption of EPUB 3: ACCESS, Adobe, Barnes & Noble, Copia,
Google, Kobo/Rakuten, O’Reilly, Samsung, Sony, others
support project to advance universal digital publishing
format
New York, NY, February 13, 2012 -The International Digital
Publishing Forum (IDPF) today announced the Readium Project,
a new open source initiative to develop a comprehensive
reference implementation of the IDPF EPUB® 3 standard. This
vision will be achieved by building on WebKit, the widely
adopted open source HTML5 rendering engine. A quote sheet
with quotes from the following is available at http://idpf.org/
readium-support : ACCESS, Adobe, Anobii, Apex CoVantage,
Assoc. American Publishers (AAP), Barnes & Noble, Bluefire
Productions, BISG, Copia, DAISY, EAST, EDItEUR, Evident Point,
Google, Incube Tech, Kobo/Rakuten, Monotype, O’Reilly,
Rakuten, Safari Books Online, Samsung, Sony, VitalSource,
Voyager Japan. For more information about the project,
including how to participate and links to downloads and source
code, visit http://readium.org .
)

Wednesday, October 24, 2012

epubmaker, Project Gutenberg tool to convert between HTML, ReST, to EPUB, Kindle, PDF

By Vasudev Ram


epubmaker is a Project Gutenberg tool to convert HTML or restructured text to EPUB, Kindle, PDF formats.

- Vasudev Ram - Dancing Bison Enterprises


Monday, October 15, 2012

O'Reilly Bookworm closed but other options exist

http://oreilly.com/bookworm/index.html

Inspired by nature.
- dancingbison.com | @vasudevram | jugad2.blogspot.com

Converting PDF to EPUB ...

By Vasudev Ram


Had a need recently to convert a PDF file to EPUB format to read it on my Android mobile (because I tend not to like heavyweight software such as that from Adobe, particularly for mobile, and I have FBReader on my mobile).

So googled for "PDF to EPUB" and found a few links:

http://www.2epub.com/

http://lifehacker.com/5509965/how-can-i-convert-pdfs-and-other-ebooks-to-the-epub-format

http://ebook.online-convert.com/convert-to-epub

Checking out some of those methods.

- Vasudev Ram - Dancing Bison Enterprises


Saturday, September 22, 2012

How to create an ebook with Pandoc, the swiss-army-knife conversion tool

By Vasudev Ram


Pandoc is a tool that lets you convert many document formats to many other document formats.

I had blogged or tweeted about Pandoc some time ago, but saw this feature only today:

Pandoc can be used to easily create EPUB format ebooks.

I was interested to see that the process of creating an EPUB ebook using Pandoc is similar (in one respect only, that is one book chapter per file or directory *) to the process of creating PDF ebooks with xtopdf, my PDF creation toolkit.

Of course, the Pandoc method supports many more features (including markup, metadata, etc.) than xtopdf does. But xtopdf is very easy if you just want a simple set of text chapters converted to a single PDF ebook.

* One chapter per file for xtopdf, one chapter per directory for Pandoc.

- Vasudev Ram - Dancing Bison Enterprises



Sunday, September 9, 2012

Leanpub, publish ebooks early/often, higher royalties

By Vasudev Ram


LeanPub.com lets you publish ebooks early and often (i.e. versions of an evolving book) and earn higher royalties.

Their tagline:

"Publish Early, Publish Often

Self-publish your book as you write it, and earn great royalties."

Interesting idea.

They give 90% royalties. They take a 10% cut plus 50 cents.

- Vasudev Ram - Dancing Bison Enterprises

Friday, July 27, 2012

The C Book - free book on the C language

By Vasudev Ram


Saw this via a Zed Shaw site.

The C Book

It's a free book to learn C programming. There is both an online HTML version and a downloadable PDF version. Scanned initial parts of the book briefly, it seems good, though it is a bit dated - won't cover the latest additions to the C standard.

Yes, I know C is old, and there are tons of other resources already about it, but it's still a great language and I'll always like it (it was one of the first languages I learnt, and I used it a lot, and owed my living a good amount to it), and there are still lots of people who will still be new to C and want to learn it, so I'm blogging about it. So there :)

- Vasudev Ram - Dancing Bison Enterprises

Monday, July 2, 2012

Why get it free when you can pay? :)

Why Louis CK and Amanda Palmer are the future of content | Tech News and Analysis

Nice one. I should mention that I like this approach, am not against it, as may seem from the title, to some people. Basically, I'm in favor of anything that works out well for all involved parties, and this is an innovative approach. Also see Paulo Coelho on more on the same - publicising pirated sites for his ebooks resulted in more sales. I blogged about that quite a while back, maybe on my earlier blog Jugad's Journal.

- Vasudev Ram
www.dancingbison.com

Saturday, April 21, 2012

Stimulating links on selling tech ebooks and pricing


Here they are, below:

The links are not all about the exact same topic, but do overlap some; the first is a story of a guy's experience selling his tech ebook (with moderate success), and I saw the other links in comments in the first link (a Hacker News thread).

http://news.ycombinator.com/item?id=3867463

http://sachagreif.com/lessons-learned-from-an-
ebook-launch/

http://blog.asmartbear.com/perfect-pricing.html

http://blog.asmartbear.com/higher-pricing.html

http://www.marketingquoteoftheday.com/pablo-
picasso-on-pricing-and-price-anchoring/

- Vasudev Ram
www.dancingbison.com

Monday, March 26, 2012

Rich-layout ebooks with EPUB3, HTML5 and CSS3


http://www.ibm.com/developerworks/library/x-richlayoutepub/index.html

The article is by Liza Daly, VP Engineering, Safari Books Online. It also links to an earlier EPUB tutorial by Liza, which uses Java and Python.

- Vasudev Ram
www.dancingbison.com
twitter.com/vasudevram