I'm somewhat of a time-travel expert. Thusly, I will now explain something no one ever seems to understand.
The so-called "Grandfather Pair o' Docs":
My grandfather gave me a sweet pair of Docs. If I were to put on Grampa's Docs and then go back in time and steal Grampa's Docs before he could give them to me, he could never give them to me; clearly then I could not be wearing them. But I am.
Plus, once I steal Grampa's Docs, there are now entirely too many Docs. This cannot happen.
The Kindle is nice and all, but it's a lot of money for a dedicated device for reading books when I already have tons of devices capable of reading books. A screen, a wireless connection and a keyboard. That describes a Kindle. That also describes laptops, cellphones, iPhones, PDAs, etc.
If you want to sell lots more ebooks, I suggest you release Kindle software for some or all of those devices. Specifically I would suggest laptops and iPhones. The iPhone is my preferred way to read Kindle books (it is way smaller and lighter than Kindle, and I already have it with me all the time), but it'd be really swell if I could wirelessly purchase the books from you and not have to break the law in order to read them.
Now that Apple has 3rd-party apps for iPhone/iPod Touch, I HIGHLY recommend that you make a Kindle app for them. You'll sell bajillions more books than you already do. BAJILLIONS.
Update: This tutorial is largely superseded by the much nicer and easier 'Kindle For PC' method: see it here.
UPDATE 2: included Preston Lee's online PID generator.
D got a big fat tax refund, so she recently bought one of those new-fangled Amazon Kindle thingies for purchasing and reading books in an electronic form. (She loves it.)
I like to read books in an electronic form on my iPhone, but find that it's pretty hard to come by them legally; there are many different sellers and formats, some of which have certain books but not others. Sometimes they have the book, but not in a format I can do anything with. It's generally easier just to illegally download them from torrent sites.
Amazon has tons and tons of books available for Kindle, and have chosen the standard MobiPocket format as the one their reader uses, meaning it is theoretically trivial to purchase them and convert them to something else. Except that they won't sell them to you unless you have already purchased a $400ish Kindle on which to read them. Meaning you don't need to convert them...
In any case, now that our household has a Kindle, it frees me up to purchase books from Amazon in Kindle format without actually having a Kindle myself. I then just remove the DRM that Amazon puts in the files (to keep people from converting them, natch), and then convert them to HTML or txt to read in Books.app on iPhone. Want to know how to do the same thing?
Step 1) Find someone with a Kindle.
Step 2) On their Kindle, go to the Settings menu, and type '411' on the keypad. This will bring up a little information dialog with a bunch of things in it, of which you only need the Serial. It is a 16-character string of letters and numbers. Write it down.
Step 3) Ask the Kindle's owner to buy a book for you. Give them some money so you don't look like a mooch. Once you've given them the money, ask them to log in to their Amazon account and navigate to their 'Kindle Downloads' page from your computer. When they complain, mention that you've already given them money. The Kindle Downloads page will list all the books they've purchased, and yours should be right at the top. Click 'Download to computer' and you'll get a file named 'Title-of-Book.azw'
Step 4) Download MobiDeDRM.zip, which is a small suite of Python scripts that some kind soul wrote and then distributed through links that expire all the time and can be kind of a pain to track down. I've hosted them from my site so that they won't expire. This .zip file contains mobidedrm.py, mobidedrm2.py, kindlepid.py and mobihuff.py.
(These scripts require that you install Python on your system, which is something outside the scope of this howto. I'm on linux, but there's a Python for Windows called "ActiveState Python." Google will help.)
After unzipping the archive, open up a terminal window and pass the Kindle's serial # (which you previously wrote down) to kindlepid.py. Something like this:
python kindlepid.py XXXXXXXXXXXXXXXX
Where all those Xs are replaced with the Kindle serial number. It will return something that looks like this:
Mobipocked PID for Kindle serial# XXXXXXXXXXXXXXXX is Z1QFCDQ*74
where my 10-character gibberish string is replaced with the one you made note of in the last step. This will take about a minute, and when it finishes you'll see:
Decrypting. Please wait... done
Now you will have a decrypted MobiPocket-formatted ebook that you can read in any MobiPocket reader.
If, however, you want to convert it to HTML to read on any device you wish, you'll want to install MobiPerl. (This, of course, will require you to install Perl. MobiPerl's website will walk you through that.)
6) With MobiPerl installed, do this:
This will create a directory named 'unpacked' that will contain Title-of-Book.html
Things that can go wrong:
Amazon seems to compress longer books in a slightly different manner than shorter books. If your resulting .mobi file and/or .html file are oddly gibberishy (for example, if the first line starts in the middle of a sentence, and clearly not the beginning of the book), let's go back to step 5.
Step 5b) These 'huffdic-compressed' books require a slightly different script to remove the DRM. Do this:
This script will output the .html file in the directory from which you are running it.
All in all, this is as much of a pain as it looks, but the selection and availability of books on Amazon makes it worthwhile to me. They have far more books than The Pirate Bay does, and I feel better paying for them
Update: several readers have alerted me that there's a much newer version of mobiDeDRM available. You can download it here.
I've been recently toying with OpenID stuff, and found that it is far more useful than it seems at first glance. What's not apparent is that if you have a website, you can configure things to use its URL as your OpenID even if you're using AOL/LiveJournal/MyOpenID.net/etc for your OpenID authentication. This allows you to re-configure it at a later date using any service you'd like, without having to change your OpenID sign-in info. It doesn't get much more "open" than that.
It's kind of complicated, and it requires a fair bit of reasearch to find the info you need to make it work, so people who are aware of this functionality probably don't care enough to do the work. It's with that in mind that I've done the research and created a little configurator-thingy to make it as easy as possible for anyone hosting a website to set this up.
Introducing MOREopenID.org. One selection and two input boxes gets you one file to upload to your server and a short block of tags to paste into your website's head section, putting you in complete control of your OpenID identity forever. If you decide to change OpenID providers at some point, simply come back and do the steps again.
Things are still pretty rough at this stage, so I'd appreciate it if you wouldn't social-network it to death (yet) or anything, but I'd be much obliged if you'd try it out and give me feedback on what I should do to make it better -- and especially so if you have any problems. If any part of it at all is confusing, I would like to hear about it.