Taking your developer library mobile with the iPhone
I have always been a big proponent of reading/understanding complex development topics really well before starting to use them in prototyping or a live environment. Developers/architects learn in different ways; however, I find myself uncomfortable coding something when I don't understand why/how things work. With all the information out there in the web 2.0 age (with all the development blogs), I still find that the best resources for information are books. I am in the process of starting my own book on a specific Business Intelligence topic and have learned to appreciate the dedication and time it takes to put a book together. The topic, individual chapters, code examples all have to flow and make logical sense for your desired target audience. Furthermore, books on development also have to go through a technical review process that can include multiple people. This usually makes a chapter or even several pages in a technical book much more valuable than someone's 2 a.m. rant on a blog.
Evolution of my technical resources
Phase I - Physical Resources
I started my technical library in late 1998 when I did some consulting work for BMG Online (They also owned booksonline.com which gave me access to many IT books that customers had returned or were defective). The only problem with all these resources is that they were physical and I had a pile of books under my desk at its peak (probably around 75). The other problem is that books aren't really portable and you just can't take 75 physical books with you.
Phase II - EBooks
In the last several years many publishers have started offering e-book versions of their books usually in PDF format. This format allowed the books to be stored on the network and located in multiple places (i.e., e-mail, network drive, internet drive, etc.). Ebooks also had some obvious nice features:
- If you wanted to print several pages out, you could easily
- You could share the books/some pages with your developer team(s)
- If there were a part of code you wanted to analyze, you could do it by simply selecting it and pasting it into Visual Studio and not have to download a seperate code zip file for just a snippet of interesting code
Phase III - Books on the Mobile & The Cloud
Having an ebook library that can be shared and on the internet is great; however, it does come with two drawbacks. The first drawback is that you still need a laptop/desktop to view ebook files. Secondly, you are still responsible for building your own library and creating a variety of feeds for reading yourself. Mobile devices and devices like the Amazon Kindle coupled with cloud services aim to solve some of these problems. This marriage of digital reader and service can bring entire massive libraries to your fingertips.
The Kindle and Kindle 2 from Amazon seem to be the rage in the recent months. Even many technical bloggers are talking about their new Kindle and how great it is. With the Kindle, you do not need a desktop/laptop to read an ebook online as the Kindle device is specifically geared for reading digital content online. I never have used the Kindle; however, I do like the concept as it is an evolution over having a bunch of PDF files on my HD or an internet drive. One of the issues I have with the Kindle is that you need to subscribe to feeds just to read blog articles. Even though they are nominal fees, I am not paying $1.99 to read Slashdot articles :) Furthermore, I do find having an entire seperate device just for reading ebooks a little overkill. This is why I have started porting my ebook library to the iPhone.
Google's approach is to index a great deal (if not all) of the books in the world at http://books.google.com and essentially brings a huge amount of books to your fingertips without having to own/download any of them. The great part about this is that they are now available on mobile phones as well.
Google Book Search also includes new titles like this:
Using your iPhone for your development library
Using GMail as your ebook storage and provider
For those who do not know, Gmail is fully integrated into the iPhone and provides you a decent amount of storage on the Internet that you can cache on the iPhone. This was my first stab at setting my developer library up -- by using Gmail on the iPhone to cache my attachments (which were PDF files) on the iPhone. I sent myself some e-mails and tagged them as an Ebook.
My Ebooks in my Gmail account
If you double click the attachment (if the file has been downloaded), then the ebook will launch in the PDF viewer.
The book (e-mail attachment) downloaded from my Gmail account and opened in iPhone's default PDF viewer
An Ebook opened in iPhone's default PDF viewer
I thought this was a great solution and started throwing all my PDF books into my gmail account...then came the issues. The first one I ran into was when I tried opening a large PDF file. I quickly found out the default iPhone PDF viewer cannot open PDF files over ~12 megabytes.
The second problem is that the default PDF viewer has really basic functionality. You can view the documents vertically/horizontally, zoom in and page by one page at a time. For a technical resource (some over 600 pages), we need a little more functionality beyond basic viewing. It would be nice to be able to open large documents, page faster, access Internet links embedded in the document, be able to jump to the current page where you left of reading and be able to bookmark certain key parts of the book.
Using a PDF Organizer on the iPhone
The great thing about the iPhone is that if we need some key functionality or need a software program to provide some functionality, we can head to the App Store and most likely someone is providing this functionality. This is what makes the iPhone superior over other devices -- that I can solve any problems I have with the device itself and not have to "sync" with my home desktop or install via a cable.
After doing a quick search on the App Store and checking out the reviews, I decided to go with the Felaur PDF Viewer as it had the highest ratings and it provided a lot of the functionality I wanted. The application (like most iPhone apps) was only $1.99 and I figured it was well worth the cost of trying it out. The only feature that was missing was the ability to click a link and be taken to a web page. The Felaur PDF Viewer allowed me to upload my PDF files for viewing by making the iPhone a web browser (pretty cool technique) and using my browser to upload the files.
iPhone App Store search on PDF files
The Felaur PDF Viewer works just as promised. Using the appliction, I can open large PDF files (The largest one I tried was about 30 megs), page quickly using a slider to acces any part of the book, add bookmarks to access any sections I want with one click of the button and if I close the book and do something else on the iPhone and open the book up, it remains on the page I was reading.
Screen shot shows the uploaded ebooks to the PDF viewer. They are stored locally on the iPhone's HD
Screen shot shows an ebook opened with the commercial viewer (Notice the slider bar so I can access any page quickly)
Another nice feature of the Felaur PDF Viewer is the ability to bookmark large resources. Screen shot below shows Jon Skeet's excellent C# with my bookmarks for reference allowing me to jump to any page
Now any of the technical books I have purchased are available to me online. I am a real big fan of the Manning books as they are quickly becoming one of the highest quality programming books out there (Reminds me of the quality Wrox (big red books) used to be in the late 90's and early 00's). Furthermore, all of their books are provided in physical and ebook format. They also have a MEAP program and it gives you the ability to access "in progress" books before they are officially released.
Not all the resources have to be purchased, nor do they have to be books to be high quality resources or valuable resources. Here are some other types of resources you could use:
Using Google Book Search for Technical Resources
Google has been scanning a huge amount of books and uploading them to the Internet and providing users the ability to view them. Google calls this project Google Book Search. They also provide a rudimentary way of paging and searching the books. What this means is that there is a huge number of books available online including many technical books. Furthermore, mobile access has started being offered to some of the books (I am sure that this will include all books in the future). Mobile access means that the book is formatted for a smaller screen. However, an iPhone or a mobile device with a full feature browser can browse the book just fine in the window. This is definitely the future in taking your technical resources online, as nothing needs to be downloaded or persisted to the hard drive. The books live "on the cloud" and all you need is internet access to start viewing what you want.
Browsing Google Book Search with the iPhone for technical resources
Google is touting its breakthrough agreement with authors and publishers to provide access to these books on the Internet. They have several access categories of books and the recent technical editions are all likely copyrighted. What is interesting is that Google's Book Search allows you to page through the book and randomly insert a statement that the book is copyrighted or these pages are missing. However, if you go back to the screen in a new browser window, you can go back and access that page again. (Hint: If you use a tool like Fiddler/Web Development Helper, it's not hard to see what is going on). Essentially, what I am saying is that even the copyrighted books are available for you to browse and download. I am not advocating this. In fact, I would be mad if I were an author and had my book up there and people reading it for FREE. I think that Google needs to address this loophole in Book Search.
In this article, I showed you how you can move your developer resources to electronic format and access them using a mobile device. For any developer that wishes to take his resources everywhere and access them anywhere, this is a must. There is so much out there to learn and consume. Combing the ability to consume resources using a local viewer or from "the cloud" using Google's Book Search service will allow you to consume more information. Having your resources organized on your mobile device will help someone who is an "information junkie" or who wants to be more efficient in accessing their resources faster. While this article targeted the iPhone device, I am sure you can do the same with some of the more recent mobile devices and Windows Pocket PC devices.
So what I am reading now?