The Amazon Kindle as a Tech Device

I have always been intrigued by electronic books. I have moved away from a book shelf of technical manuals and gone to a disk full of pdf files that do the same thing. I was a long term Safari subscriber back when it was only O’Reilly books. As a developer, it was invaluable. The search capabilities were just what was needed to get started and find a solution to a specific problem. The ability to download a chapter was perfect. It allowed me to take some reference material with me when I was doing some consulting work or traveling. With the announcement of the Amazon Kindle 2, I thought it might be worth researching. Fortunately, I know someone who does not mind too much if I borrow her Kindle as long as I give it back when I get home from work. I’m glad my wife is very understanding.

Some of the features of the Kindle that I like are:

1) the ability to get pdf docs onto the device for display and searching. I can download manuals and tutorials on software. It becomes a portable library. I can download hardware and software documents that go in to more detail that I care about. Getting the pdf docs there is a little tricky. I wish you could download it and copy it via USB connection but it needs to be converted and Amazon has an automated way of doing this through email. If you email the document to your Kindle address, it converts it and puts it on your home page.

2) reading blogs from the device is very easy. You can define search patterns and blog links using the Google Reader and put this as a bookmark. The Kindle has a browser that allows you to pull in web content. The browser is not full function and does have some limitations. It does not do flash sites, does not support ActiveX, and has limited support for JavaScript. I tried posting this blog from the Kindle and could not because the login button would not work. It handled the username and password as expected but would not follow the Go button to pass these values. It also caches passwords and does not prompt for a password if you tell it to remember me on this device. This is a good and bad thing because the Kindle itself is not necessarily a secure device. I’m sure the corporate security guys would ban using it inside or outside the firewall to connect to corporate resources. Unfortunately, I haven’t figured out how to get VPN working on the device so connecting to corporate web sites hasn’t been a problem.

3) downloading training audio is supported but the mp3 player on the device operates like an old iPod Shuffle. There is no user interface to select what you are listening to and no way to rewind and listen to something that you missed. It is a neat feature and hopefully the v2 release will provide a richer user interface for audio.

4) I did a simple search in the Kindle store and there are a large number of Oracle books available, 98 using just the word Oracle. All but one on the first page was related to Oracle products. If I follow the related search for “oracle 11g” it returns 12 results. Following “oracle database” returns 59 results. Unfortunately, the $9.99 price tag for most hard cover books does not translate to technical books. The OCA Oracle Database 11g: Administration I Exam Guide, for example, is $38.87. This is understandable but I was hoping for a cheaper way of getting the book.

Overall, I want one. I like the idea of having a portable reference library in just under 11 ounces. Like the iPod, the cost isn’t in the device. The value is in the content and the ability to access information. I can see spending twice what the device cost for content. I can also see my wife wanting her Kindle back tonight so I better not get too attached to it.

creating and IRM service in the Amazon Cloud

Ok, I am a glutton for punishment. We don’t have any hardware to play with in our office. It turns out that very few people have extra hardware laying around. I guess I got spoiled working at a University for as long as I did. We always had something from the 90’s laying around that we could use to play with and when virtual machines became trendy, it was easy to get a VM to prototype anything that you wanted. Now that I have been at Oracle for a while, I find it a little difficult to find a VM to play with and test software. Thus my current project. How do you get an IRM server running in the Amazon Cloud and get all of the services running properly. I did run into a few challenges, the following describes many of these hurdles.

1) the software only runs on Windows. I am a Unix admin so I feel lost initially. Some of the things that I stumbled into are trivial issues for Windows admins. I had to start a Windows Server 2003 instance and get it running with remote desktop. Given that this is different from VNC, it took a little learning to figure out what ports need to be opened and how to connect. Needless to say, it would not work through the corporate firewall and I reluctantly had to spend hours and hours working from home instead of commuting to the office

2) I had to remove components from Windows to get things properly working. IRM does not install properly if .NET is installed. It works fine but it has problems installing. I had to look at Metalink and the forums to find this out. This was easy because I know how to remove components.

3) I had to add components to Windows. The IIS service with SMTP needs to be configured and running for the management interface to properly operate. I would have preferred running Apache but that wasn’t an option so I had to figure out how to first install then configure IIS. The installation was a little difficult because running in a virtual service, it is a little difficult to mount a DVD and point my instance to the software. Fortunately, Amazon thought of this and provides a snapshot of the DVD with SNAP ID snap-8010f6e9. This is the Windows Server DataCenter Edition of 2003. All I had to do was select IIS and SMTP service and begin the install. It did ask me to find a couple of files, but that was relatively trivial. Once I got the IIS service installed, I had to configure it to send email from a drop directory. At this point I went on the web and found http://fmuntean.wordpress.com/2008/10/26/how-to-configure-iis-smtp-server-to-forward-emails-using-a-gmail-account/ since I wanted to use my gmail account as a relay since Oracle only allows email to be initiated from within the firewall.

3) Once I had the web service up and running, I had to install a database. For this installation I installed the Oracle Database Express Edition. This is adequate for a test system but I might want to install Standard Edition or Enterprise Edition to make it part of my backup and failover strategy. This was relatively trivial but did require that I install the client side software to allow for ODBC connections. I could not get an ODBC connection when I default installed XE.

4) Once I had the web service and database up and running, I had to install the IRM server. This was relatively trivial as well. I did need to remember where I installed the IIS service and the pickup location for email as well as the ODBC connector for XE. Given that this was my first install, this is where everything went wrong. I could not get email to work because I forgot where I defined the pickup directory in IRM and IIS. I again had to search the web and look for ways of testing email drop directories. I got this working by simply creating a file in the drop directory which in my case was C:\Inetpub\mailroot\Pickup (tough one, I know) and watching to see if the file disappears and shows up in my email. Fortunately, it did because I configured the IIS server properly using the IIS Manager that gets installed with IIS. The next problem was where does IRM define the drop directory. I looked everywhere and had to ask the expert (Simon Thorpe) how to find it. It turns out that there is a file c:\Inetpub\wwwroot\SealedMedia Management\smpweb_config.txt that defines the drop directory. I would have never looked there. I installed the software in e:\Program Files\Oracle\Information Rights Managerment\IRMServer. I guess this is the difference from a program written for Unix and a program written to work with IIS. I would have create a symbolic link from the install directory into the IIS root and made it simple. Once I got this working, I was able to login and create an account. The account creation sent a confirmation email to the user (which I could verify) and everything looks to be working.

Now that I have the service running, I can let some local customers play with it. The management console and web console are good interfaces that allow me to define contexts and have them play with managing, sealing, and notifying people of changes. I don’t need to give them access to the operating system because the service is self contained. Overall this was a good learning experience.