Monday, December 26, 2011

Review: Kindle Fire Book Experience

I like to read. To that end, I own a lot of books. My wife complains about the amount of space all my books consume in our home. Occasionally, this results in my having to clean out the shelves and remove the books I don't think I'll even read again. Trouble is, I think I'll always read them at some point in the future. Instead, I donate them to the local library. But then I get more books.

In the Star Trek original series episode Court Martial (1967), Jim Kirk is facing a general court martial for apparently sending a fellow officer to his death in a non-emergency situation (it's a trick, since the officer faked his own death to implicate Kirk as revenge for a problem that happened between them years before). Kirk's attorney is one Samuel T Cogley (played wonderfully by the late Elisha Cook Jr.) who has his own system of practicing law based on old fashioned, hardcopy books. When Cogley is explaining his system to Kirk, he asks, What's the matter? Don't you like books?" Kirk's reply is, "I like them just fine, but a computer takes less space." That's my theory behind reading on the Kindle Fire.

I'm actually a bit torn. Like Cogley, "I like books". I'm old enough to still think that a "real" book is better than an electronic copy, but I have to balance desire with practicality. The Kindle Fire will never be able to replace the feel or the smell of an old book, but the content and the magic will still be there on each page I swipe (instead of turn). The Kindle Fire has a 6.5 GB storage limit on its hard drive but Amazon offers free unlimited cloud storage for anything purchased at Amazon (you can store non-Amazon products in their cloud free too, but only up to 5 GB...to upgrade to 20 GB of storage for said-files costs $20.00 a year), so "book shelf" space doesn't seem to be a problem.

I was intriqued by Amazon's free lending library for Amazon Prime users. Since I have a month's free trial of Prime, potentially, I have access to thousands of library books which I can borrow from Amazon for free. This sounded fabulous, but there's a catch.

I fired up my Kindle (pun not intended) and on the main page, tapped "Books" and then "Store". On the Books page, there's menu on the right side and I tapped "Kindle Owner' Lending Library". A list of various categories (Fiction, Nonfiction, Comics & Graphic Novels, etc...) appeared. Once I made a selection (Fiction) I saw a list of books, some available through Prime for free, but nothing to indicate that they could be borrowed. I selected one at random and when the book's "details page" appeared, there indeed was a button that said "Borrow for Free". I scrolled down for awhile but didn't find anything that looked appealing (in spite of the number of books I own, I'm actually picky about what I read).

I decided to try "Comics & Graphic Novels" and received a bit of a shock. The "graphic" part has to do with sex. A huge percentage of this collection is virtual porn, with titles such as "Wicked Desires: Steamy Sex Stories Volume 1", "My Sister Bestfriend", and "Sex Messages, Social Networking, and BDSM". The actual comic books were neither DC nor Marvel and seemed to be rather seedy, off-brand tales from the 1950s and 60s. Anything worthwhile (Batman, Green Lantern, Watchmen) cost about $10.00 each. I also noticed DC but no Marvel titles, which was quite a let down.

I did discover one cool thing. Lots and lots of pre-1923 books that are out-of-copyright are available for free..not to borrow, but to own. I immediately downloaded a copy of Robert Louis Stevenson's Treasure Island and burned through the first two chapters. And at the risk of sounding like a TV commercial huckster, that's not all. Amazon also points you, via their website, to numerous library projects that offer over a million free titles. Projects such as archive.org and gutenberg.org, complete with instructions on how to access their content from Kindle Fire. I haven't tried this part out yet, but believe me, I will.

As with movies and TV shows, the number and type of books you can borrow or get for free through Amazon Prime or the Kindle Owner's lending library is limited. The comic book and graphic novel selection was particularly wanting and I was severely disappointed. I really think there needs to be an online archive project specifically for older comic books, since their physical copies won't last forever and the originals held by the publishers are reproduced and distributed at the mercy of those companies. I guess that's my problem, though and I suspect that availability of book and comic book titles is limited by licensing costs. Besides, Amazon and the various publishing houses have to make a buck somehow.

In spite of the roadblocks I encountered, I still discovered that I have access to a large selection of reading material. Not everything I want, but books that I can't find, even at my local lending library. Speaking of which, I can't wait to see how to actually borrow a digital book from my public library for Kindle Fire. In the meantime, I'm going to be happily making my way through Treasure Island. "Yo ho and a bottle of rum, mateys."

Oh, and if you liked this review, make sure to catch my other Kindle Fire review on my experiences with movies and TV shows.

Sunday, December 25, 2011

Book Review: Sams Teach Yourself TCP/IP in 24 Hours (5th Edition)

Author: Joe Casad
Format: Paperback, 544 pages
Publisher: Sams; 5th edition (November 4, 2011)
ISBN-10: 0672335719
ISBN-13: 978-067233571

I've been spending a lot of time with TCP/IP and particularly IPv6 in the past few months (I can't tell you why right now, but soon). When I saw Joe Casad's book Sams Teach Yourself TCP/IP in 24 Hours was in its fifth edition, I wondered how it compared to my experiences in researching various aspects of internetworking. One way to find out for sure is to request a review copy from the publisher, so here I am and here it is.

I'm a big fan of the "Sams Teach Yourself" books. I've had good experiences with them in the past and they usually offer just the right amount of learning, broken up into correctly sized bites. They also usually build one "hour" upon another so that by the end of the book, you really have learned something. There is no "who is this book for" section in the front matter, but this series is typically tailored for the beginner. How much of a beginner do you have to be? The first hour is called "What Is TCP/IP?". The first questions asked are, "What is a protocol?" and "What is a network?". Pretty basic stuff.

This series is designed, as I'm sure you guessed, to be a learning series. After the chapter's main content, there's a Q & A section and a Workshop section which is made up of a brief quiz (4 or 5 questions) and a short series of exercises. Appendix A in the back has all the answers, so you can check your work or have a peek if you really get stuck. Just for giggles, I went through the Workshop section of Chapter 14: TCP/Utilities and it seems like it's pretty standard material, if you know much about networking. Questions have to do with what commands you would use to view a computer's ARP cache or to see which hosts have made TCP connections to your computer (this all assumes a Windows PC) and exercises focused on ipconfig and ping. Not super challenging, but if the goal is to teach a networking newbie, this is at the right level.

I guess I shouldn't have been surprised that only one "hour" was dedicated to IPv6 (Hour 13) or that there were Exercises assigned to this chapter, but no answers for them in the Appendix. There are two good reasons for this. One is that a newbie will have their hands full with IPv4 and the other is that most folks still consider IPv6 really new (the "newness" is an illusion as IPv6 standards have been developing for years and many ISPs have accelerating their adoption of the next version of IP recently). The downside to this "neglect" in the book is that newbies are the perfect audience to learn IPv6 from scratch, at least at the level of concept. If you've got a couple of Windows 7 computers, you can ping their IPv6 addresses or ping your own localhost address (ping ::1).

On the up side, this TCP/IP book covers a lot more than TCP/IP at the level of the protocol including DNS, Routing, SOAP, Email, and "the Cloud". That sounds impressive and from the neophyte's perspective it is. However, because the book is addressed to the beginner, that's about as deep as you go into any of these topics. To be fair, that's a deep as this book should go, but that also means if you have any networking experience at all and you don't need a ground-level review, this book will be too light for you.

If you are a person who wants to learn basic networking (not particularly for how to set up two or three computers for wired/wifi in your home) with an eye on something a little more advanced like CompTIA's Network+ and a little later on Cisco's CCNA, then Casad's book will certainly give you a leg up. If that's where you are or where you want to go, I'd recommend Sams Teach Yourself TCP/IP in 24 Hours. If you have some experience and are looking for a book with more "meat" to it, you'll need to look elsewhere.

Addendum, 12-26-2011: Regarding IPv6 deployment, I just found this article at InfoWorld: IPv6 due for wide deployment in 2012, experts say

Friday, December 23, 2011

Review: Kindle Fire Video Experience

Recently, I was given a Kindle Fire and after registering it and setting up WiFi at home, I decide to try it out. Since I've got a free month of Amazon Prime service with my new Kindle Fire, I thought I'd take the video experience for a spin last night. I found out that not all movies and TV shows are free with the Prime service (alas) but some really good ones are. All old Twilight Zone episodes are free with Amazon Prime. I watched the very first Twilight Zone ever, starring Earl Holliman (points if you know who that is without Googling). Steaming via WiFi was fast with no service interruptions, so I could really lose myself in the show. Image was crystal clear but you might want to keep low lighting in the room because reflections are a problem.

I made an interesting discovery watching that episode from 1959. It was filmed at the same Universal Studio backlot as the town square scenes from the Back to the Future (1985) films. The courthouse with the clocktower was a high school in the TV episode and Mel's diner (later a gym) was a police station. The incredible irony is Marty goes back to 1955 but the place existed for real as early as 1959 (and probably before). Great stuff for a trivia nerd like me. There's more tidbits I found in other episodes, but they're kind of obscure unless you're into old science fiction films.

The two other classic TZ episodes I watched starred the wonderful actors Burgess Meredith and Agnes Moorehead (one per each episode). Then I decided to watch the two-hour premiere episode of Star Trek: Deep Space Nine, which I haven't seen in years. I really had a lot of fun with the scenes I remembered and particularly with the scenes I didn't (I completely forgot Patrick Stewart guess starred).

The 7 inch screen is a little small, but the video experience was still OK. Sound via ear buds worked fine. I did notice feeling a little vertigo when I moved the Kindle closer and then further away from my eyes during the shows. I don't recommend walking around while watching as it gets to be disorienting. I finally put it on the bed so I had a stable platform for the Kindle.

Searching for shows and films worked well, The search feature has an auto-complete, so you don't have to do a lot of typing. I did notice that auto-complete would generate search results (such as "return of the creature", which I mistakenly thought was Revenge of the Creature [1955]) that when selected, produce no actual result (the film doesn't exist in the Amazon archives, apparently).

I'm sure there's a reason for it, but I couldn't figure out why some shows were offered via Prime and others weren't (probably licensing, but who knows?). For instance, all old Twilight Zone episodes were available but no old Outer Limits shows were offered through Prime. Just for giggles, I tried to find the original premiere episode for Lost in Space but it's not available through Prime, either.

Except for the small screen size and the need to keep the Kindle Fire pretty still while viewing, I can't complain about my video experience. You can control the volume of the show and pause and play at will, just by tapping the screen to show the controls. Despite the limitations on selection, I still found plenty of interesting viewing choices. Very nice for my very first tablet experience. I'll have to try out the lending library next.

Oh. Does anyone know a good way to read comic books on a Kindle Fire? Just asking.

Saturday, December 3, 2011

Review of CoffeeScript: Accelerated JavaScript Development

It's been awhile since I've sunk my teeth into a good book review so I'm finally glad to get my appetite back and start consuming Trevor Burnham's CoffeeScript: Accelerated JavaScript Development book. I'm actually just as interested in trying out CoffeeScript itself as in having a look at what the book has to offer. Well then, let's get started.

First off, before even getting into the book, what is "CoffeeScript"? For a quick and dirty definition, I hit up Wikipedia:
CoffeeScript is a programming language that transcompiles to JavaScript. The language adds syntactic sugar inspired by Ruby, Python and Haskell to enhance JavaScript's brevity and readability, as well as adding more sophisticated features like array comprehension and pattern matching. CoffeeScript compiles predictably to JavaScript and programs can be written with less code (typically 1/3 fewer lines) with no effect on runtime performance. Since March 16, 2011, CoffeeScript has been on GitHub's list of most-watched projects.
I suppose I could say that if you don't know what CoffeeScript is, you shouldn't be reading Burnham's book, but that's probably not true. According to the "Who This Book Is For" section in the Preface:
If you're interested in learning CoffeeScript, you've come to the right place! However, because CoffeeScript is so closely linked to JavaScript, there are really two languages running through this book - and not enough pages to teach you both. Therefore, I'm going to assume that you know some JavaScript."
The author goes on to say that even if you know just a bit of JavaScript, you should be OK, but rank novices at the language might want to get to know a bit of JavaScript before tackling CoffeeScript. Also, since Ruby inspired a lot of the features in CoffeeScript, having a bit of Ruby background is a plus.

A couple of other "support" features before diving into the book and CoffeeScript. The sample code used in the book can be found on the book's official page at Pragmatic along with links to the errata, the discussion forums and of course, how to buy the book in hardcopy, ebook, or both formats.

How to get CoffeeScript.

I chose to use Ubuntu for my "testing platform" but was running Ubuntu's last LTS version, which doesn't support installing CoffeeScript, even in an exceptionally painful manner. Therefore, I upgraded my Ubuntu box to 11.10 (Oneiric Ocelot), opened the Ubuntu Software Center, and searched for CoffeeScript. It was discovered in no time and I installed it with no difficulty. Notice that this means I completely blew off the instructions for installing CoffeeScript as found in the first chapter, but since the book was published last August and the production version of 11.10 didn't become available until October, I figured, "what the heck". We'll see if my impatience will come back to bite me in the rear.

So now I have CoffeeScript. How am I going to use it? Oh, yeah. I have this book.

Anxious to "meet coffee", I opened a terminal window and just for giggles, typed "coffee -v" to see what version I had. So far, so good, I have version 1.1.1, the same version used in the book (the latest version as I write this blog post is 1.1.3).

There are all kinds of text editors you can use with CoffeeScript, but the author, apparently being a Mac guy, prefers textmate. Fine and dandy, but I use Ubuntu and prefer Vim. Apparently, there are textmate plugins for a wide variety of text editors including Emacs, gedit, jEdit, and of course, Vim. You can choose to go through the time and effort of adding the plug-in but you don't have to. As it says in the book, any text editor will do.

I have to say two very good things about this book. First off, the author obviously knows CoffeeScript. This is evidenced by the apparent ease at which he explains the concepts and the whirlwind tour he takes the reader through. The whirlwind tour is the second good thing since the reader gets started programming right away and dives into a practical project. If you are a beginning web developer, this book is well suited to your experience level. Unfortunately, for the beginner (and probably more advanced readers), the book has some drawbacks. I'm not sure Burnham knew exactly who to write the book for. At some points, you need to understand some JavaScript to know what's going on and at others, the author goes to some length to explain aspects of HTML and CSS (which I would presume the reader should know if they're taking on a web development programming language).

I don't mind books for beginners and in fact, I encourage them, and as an author, I can certainly understand when a publisher asks that you limit your page count to under 150 and thus limit the scope of your book, but it's as if Burnham couldn't decide how to best make use of his 138 pages. While it's good not to overwhelm novice programmers with a lot of details, beginners also tend to get confused easily if tasks and concepts are not sufficiently explored. Based on his writing style and presentation, it seems like Burnham is probably a very likable and knowledgable person, so I hate to give his book a less than stellar rating, but with CoffeeScript, JavaScript as well as jQuery, HTML, and CSS all tossed into the middle of the salad, it was hard to see the overall focus of this small text.

I do like that the book devoted itself to creating a single product (a simple game) throughout the chapters and allowed the reader to make and refine this game as a way to learn basic CoffeeScript, but in my opinion, the book is as frustrating as it is illuminating. If you're interested in learning CoffeeScript and you have at least a little programming experience, I won't say not to buy Pragmatic's CoffeeScript book, but I would recommend also spending a lot of time at coffeescript.org which, in and of itself, isn't a bad way to learn this language.

Tuesday, October 11, 2011

Review: DNS & BIND on IPv6

Author: Cricket Liu
Format: Paperback, 52 pages
Publisher: O'Reilly Media (May 27, 2011)
ISBN-10: 1449305199
ISBN-13: 978-1449305192

I have a relationship with a number of publishers whereby I can request review copies of their books and then, after going through them, write my reviews. This is a perfectly normal transaction and a win-win for both the reviewer and the publisher. The publisher gets some free marketing and the reviewer gets a book.

I requested Cricket Liu's DNS & BIND on IPv6 from O'Reilly...twice, along with several other titles. They never came and never came and never came, which is unusual, especially after they told me they'd sent the package twice.

Ordinarily, I would have moved on, but I really have an interest in IPv6 and Liu is the DNS and BIND guru, so I did something I normally wouldn't have done. I bought the book. I had a gift certificate so technically, I wasn't out-of-pocket, but a little less than $30.00 for 52 pages is still a tad spendy (as you can tell, I live on a budget).

All that aside, when the book came, I tore into it with a passion.

Liu's book, and a number of other similar "thin books" being put out by O'Reilly are really more of an appendix to larger tomes. Just imagine the content of DNS & BIND on IPv6 fitting into the back pages of DNS and BIND 5th Ed. (2006). I can imagine when the 6th edition is published, the IPv6 book content will be folded in, but that's just my wishful thinking.

Don't expect a lot of background from the IPv6 book. It assumes that you are well versed in DNS and BIND and don't need a lot of hand holding. In fact, you are expected to know a fair amount about how IPv6 works before beginning to read as well. The "background to IPv6" part of the book is barely a page long, then you launch right into IPv6 forward and reverse mapping.

If you are a DNS administrator and just need to understand how IPv6 figures into your job, this book is a good introduction. Like the other books in this series (last August, I reviewed Migrating Applications to IPv6 which is only 50 pages), the limited page count allows the reader only a taste of the topic at hand. You're not going to dig very deep (slight pun there for dig fans). Actually, a certain amount of the content can be traced back to RFC 1886 which is the IETF documentation for DNS Extensions to support IP version 6.

I was just a little disappointed that Liu didn't mention that RFC 1886 has been obsoleted by RFC 3596, especially since the latter RFC was released eight years ago. It may not have made any difference in how he wrote the book, but keeping up with standards is the lifeblood of understanding IPv6 implementation.

Still, the book doesn't disappoint as long as you keep the intended audience and scope in mind. If you're a DNS/BIND administrator and you need a brief ramp up on IPv6 and name resolution, Liu's book is the source to check out.

Friday, October 7, 2011

31 Days Before Your CompTIA A+ Exams (2nd Edition)

OK, I realize that the name on the cover says "Ben Conry" and he wrote the original content that was submitted to the publisher, but for unknown reasons he abruptly dropped out of the project. Meanwhile, the technical and production editors had marked up his content with a ton of questions and proposed changes and somebody had to deal with them.

Enter "me".

If you go to page "v" in the frontmatter, you'll see "About the Author" which tells you about Ben and then you'll see "About the Contributing Author" which is my bio. I don't get "cover credit" because the primary content isn't mind and I was brought into the book late in the game, on the other hand (sorry, Ben), I had to "fix" a lot of the content so it would make sense in relation to the current A+ exam domains. Hopefully, this will make the book more successful on the market, but you, the reader, will have to judge that for yourself.

If you're studying for the A+ exams and you want to give yourself an intense 31-day review prior to exam day, please pick up a copy of 31 Days Before Your CompTIA A+ Exams (2nd Edition), published by Cisco Press.

Please keep in mind that you must do your primary studying from some tome like Mike Meyers's CompTIA A+ Certification All-in-One Exam Guide, Seventh Edition or the McGraw Hill book CompTIA A+ Certification Study Guide, Seventh Edition (I wrote the companion to the McGraw Hill publication: CompTIA A+ Certification Practice Exams).

After studying with one (or more) of these "big books" and then using the "31 days" book, take the exam, then let me know how you did by commenting on this blog. I also encourage you to post a review on Amazon (be nice) to let others know how well the book helped you out.

Good luck to all A+ test takers. Cheers.

Monday, September 26, 2011

How Can These Books be Banned?



I know this is a little off topic for this blog, but when I "re-invented" it, my intention was to broaden its scope. I came across a link to libraryland on NPR this morning and followed the link to the 2011 Banned Books List. I've read a lot of these books. I seriously doubt they're banned in the U.S (unless we're talking about public school libraries and such). or in many western nations. Too bad NPR or Libraryland failed to run even a small explanation about where these books are banned and under what conditions people are forbidden to read them.

Wednesday, September 14, 2011

Recovering from the Windows 7 Red Screen of Death

OK, this isn't really how my Windows 7 Professional screen looked last Sunday evening after "the disaster", but I'm not really an artist. The screen looked more or less like the usual desktop except everything had a reddish cast and it resembled an out-of-tune TV image from the 1960s (back in the day when you had to manually fine tune your TV to better pick up a local station).

Here's the background.

I was doing some work in my home office under my desk in the nest of power and network cables when I accidentally hit the power switch to one of the surge protectors. Among other devices, my Windows 7 machine was connected to this unit. No big deal. I've done this a thousand times. I turned the surge protector back on, hit the power button on my Windows 7 machine, and figured all was well.

Wrong.

I got an message saying a serious error had occurred and that I should boot into system recovery using the Windows 7 install disc to repair the damage. Fool that I am, I just rebooted to see if that would fix the problem. It didn't. Since I could still get to the desktop, I accessed System Restore and rebooted back in time a couple of days figuring that would do it.

Nope.

I broke down and got the repair disc and used it to reboot the machine.

When I got to the System Recovery Options screen, I clicked Startup Repair as the most logical option. It went through its routine saying that it might fix the problem and reboot once or need to reboot several times before the error was fixed. After the first reboot, the problem was still with me. I tried again, but had no better luck. I was cursing the fact that I had no backups of my machine to restore it in case it was completely hosed.

I powered the unit down and opened up the box. I made sure the SATA drive connections were solid and that all of the RAM sticks were firmly in place. This proved to be a vain effort, but it was worth a shot.

Rebooted using the disc and ran Startup Repair again, looking for the "Startup Repair could not detect a problem" message, but no such luck. Finally, at the end of the routine, I clicked the "View diagnostic and repair details link". All of the tests were OK except one. The machine couldn't find a valid boot partition.

Oops.

I copied the exact error message down and Googled it, which lead me to sevenforums.com.

Basically, forum user SIW2 saved my ass with this:
Boot 7 dvd to system recovery options command prompt. Type:

Diskpart

lis vol


( find the vol letter e.g C or partition number e.g. 1 for the system partition )

sel vol C ( or sel vol 1 , obviously use the correct letter or number)

act

exi
I followed his advice step-by-step praying all the time that God would be merciful. After I was finished and closed the command prompt, I removed the disc and rebooted the machine.

Ta-da!

It's alive!

Moral of the story is that bad things can happen under mundane circumstances and back up your frigging computer! The other moral of the story is never, ever throw away, lose, or misplace all of the discs that come with your computer. You never know when you'll need to lay your hands on them quickly.

Oh, there really is a Windows 7 Red Screen of Death, but it's not exactly what I experienced.

Wednesday, September 7, 2011

Book Review: HTML5 Media

By Shelley Powers
Paperback: 138 pages
Publisher: O'Reilly Media; 1 edition (August 17, 2011)
ISBN-10: 1449304451
ISBN-13: 978-1449304454

I understand that O'Reilly is publishing a series of hardcopy and ebooks that sport a rather modest page count in order to get the material to market very quickly. Shelley Powers' HTML5 Media is one of them. Please keep in mind this book isn't intended to teach you everything you want to know about HTML5 but rather, to show web developers how to insert HTML5 media elements into web pages using the new video and audio elements.

The book's front matter states that the target audience is web developers, authors, and designers who need to ramp up to using HTML5 video and audio elements fast. Hence the size of the book. No one wants to read through 800 pages when they need to do anything fast. Powers' book, with its scant 138 page count, is guaranteed to be a fast read...maybe. Actually, that depends on how much you already know. While the book doesn't require you have a lot of experience with actual video and audio files, you will need a background in CSS and JavaScript for this to make the most sense to you. Of course, if you are a designer or developer, that should go without saying.

While sample code is available, sample video and audio files are not. It's sort of a BYO...F (for files) affair. This is to keep the size of the downloadables manageable, so be prepared to have video and audio material of your own available (if you don't have much on hand, don't worry. Powers provides a number of resources where you'll be able to access what you need).

It's not just about the HTML...it's about the browsers. You can be fabulous HTML5 designer but if your browser (or your customer's browser) doesn't support the audio and video elements, you might as well not bother. IE9 or later is required, but you can also work with Firefox 3.5 or Chrome 6 and do just fine. If you keep your browsers current, you have nothing to worry about.

I got to work right away with what I learned on page 2, creating a basic audio page and, by adding the controls attribute to the audio element, I could play a sample mp3 I had on my computer (Sleep Away by Bob Acri using Chrome 9.0 on Windows 7, in case you wanted to know).

With my first minor success completed, I decided to download the sample files for the book and went back to the preface to look for the link...and didn't find it. I found the usual boilerplate text under "Using Code Examples" and while Powers says in the "Examples" section that there is a downloadable, I couldn't see where she provided the URL. Fortunately, I had already looked up the book's site at oreilly.com and easily found the correct zip file (and remember, when you try to work with these files, you'll need to provide your own video and audio material and change the default names to the names of the files you're working with in the sample code).

The book presents its content in four chapters which covers the default use of the video and audio elements, customizing the media elements (this is where CSS and JavaScript experience starts to come in handy), and other, more advanced material, including media elements in SVG documents.

Frankly, I found working with this book to be a blast. It's short enough to not be overwhelming to the reader and to impart a real sense of accomplishment very quickly, but dense enough to provide practical information that can be leveraged into actual, real-world web projects (not all books do this). Doing a bit of research, I took a look at some of the other books Powers has written including Learning JavaScript, 2nd Edition and JavaScript Cookbook. HTML5 Media is another fine example of her writing and another fine book from O'Reilly.

If working with media files in HTML5 sounds like something you want or need to do, I'd recommend picking up a copy of this book.

Tuesday, September 6, 2011

Book Review: Learning Perl, Sixth Edition

Paperback: 390 pages
Publisher: O'Reilly Media; Sixth Edition edition (July 1, 2011)
ISBN-10: 1449303587
ISBN-13: 978-1449303587

It's been around awhile...the Learning Perl book I mean. Now in its sixth edition, this O'Reilly classic is still going strong. But first things first.

Who is this book for? You don't find out until the first page of Chapter 1, but it's called "Introduction", so I guess that's OK. Is this book for you? Depends. According to page 1, "This is not a reference book. It's a tutorial on the very basics of Perl, which is just enough for you to create simple programs mostly for your own use." In other words, you'll learn Perl but not much more. The reader is presumed to know some programming and is someone who specifically needs to learn Perl. Beyond the basics, don't expect much out of Learning Perl, but that's not a fault of the book. That's its nature. Anything else you need to know, you'll have to get somewhere else. That said, you start learning Perl here.

Why a Sixth edition? That's easy to find in the front matter of the book. The changes are all laid out in the "Changes from the Previous Edition" section. The book's been updated for Perl 5.14, but that's on the cover. Keep in mind that some of the book's sample code will only work with 5.14, so if something seems "broken", check the version of Perl you're using (this section in the book tells you how to do that). Not all of the sample code requires the latest version of Perl, though. A lot of it will work with older versions.

I loved the line in the Preface that said, "We can't give you all of Perl in just a few hours. The books that promise that are probably fibbing a bit." That's the reality of learning how to program in Perl or any other language. I love the honesty. Like Edna says, "I covered the basics." (If you don't know who I'm quoting, turn in your geek badge now).

Now that you know who this book was written for and what it won't teach you, what will it do for you? If you're at all familiar with the prior version, you can expect this book to maintain the same level of excellence as edition five. About the only complaint about that book was that it was too basic, but I've explained that already. The sixth edition is an update on a time-honored Perl book that is designed to just open the door to programming in Perl.

Each chapter provides the conceptual information for the topic at hand and ends with a set of exercises allowing the reader to practice what they've learned. The book doesn't leverage each chapter to allow the reader to build a larger project as they progress through the book. That's often the frustration when I go through beginners books, because I want the programming to actually do something. If you get that feeling, remind yourself about the book's caveat and then keep going.

If you are an experienced coder, this book might seem a little elementary for you, even if you don't know Perl, so there may some parts you'll skim through, but if you need a ground level foundation, Learning Perl is the place to come.

Not much more to say. What you see is what you get. If you want to learn Perl and already know a little about programming, buy this book. It's a good investment in your precious time and your hard earned dollars.

Wednesday, August 31, 2011

Learn to Program Online at Codecademy.com

My friend Judah Himango suggested that I look at the Codecademy.com site. It's just about the easiest way to learn JavaScript anyone could imagine, and it's relatively fun, too. There is a bit of a hook involved. Although you can start the lessons without creating an account, after a few lessons, you are offered the opportunity to either create an account (it's free) or lose your work to date. I created an account.

Once I did, I could continue with the lessons, quit with I got tired/bored (my work was saved automatically), and then sign in later to continue with my saved work. On signing in, you are shown a summary of the lessons you've completed and which ones you have yet to start. After you successfully finish so many lessons, you "earn" achievement badges. For making it through the first four of eight lessons, I earned two achievements.

The lessons are fun, easy, but inflexible. If you deviate from the lesson in the slightest way, you will get an error message. While a hint is provided with different steps in each lesson, if you get stuck, you don't get any other help except to offer feedback about the lesson. There's no way to just get the full solution presented to you. That's good on the one hand, because you aren't tempted to give up too easily and it "forces" you to try and figure out what went wrong. On the other hand, it you truly get stuck...you're stuck. Lessons build on one another (which is a good idea) so if you can't figure one part of a lesson out, you won't be able to just skip it and move on.

The scope of the course, "Getting Started with Programming", only spans eight lessons, ending after the lesson on "while loops". There's no obvious way for me to tell after lesson eight if I'll be able to continue with what I've started to learn. I clicked the "Courses" link in the header menu expecting to see extended (possibly for pay) courses, but all that appeared was the eight lessons for the basic course.

Once you log out, you're returned to the start page. The other options on that page include subscribing to an email newsletter, and sharing your experience with your lessons on twitter and Facebook. Presumably, this is part of how Codecademy plans to market itself. Oh, there is a section called "Create a Lesson", so the Codecademy folks are interested in external participation in expanding their project.

Codecademy seems like it's a project in the making. Since they harvest your email address, both as a condition of creating an account, and during the pre-account lesson when you're asked to enter your email address, I expect that once Codecademy has a sufficient database of names, they'll advance to the next phase of whatever their plan happens to be. That could either mean further lessons will be for a fee or they may continue to offer more advanced lessons without charging.

I'm hardly the first blogger to post a review. About two weeks ago, TechCrunch published their write up on Codecademy, including a talking to Codecademy co-founders Zach Sims and Ryan Bubinski. Sims commented several times on the TechCrunch blog including, "Hi everyone - we might be a little slow right now but we're working on getting things faster. Thanks so much!"

Other thoughts: The "subtitle" of the course "Getting Started with Programming" is "Time to become a coding ninja". That sounds as if Codecademy's intent is to encourage its students to become proficient and even expert at coding. Three things will have to happen. The first one is obvious. They'll need more lessons. A lot more lessons.

The next two points I take from my own experience. You can't really learn something unless you do it all the time. People don't learn to read and write when they do it only occasionally. They need to practice reading and writing all of the time until it becomes second nature. Even if you teach someone the basics of programming, if they don't have any way to apply it on a frequent basis, they'll lose those skills again. Building in some form of continual practice with periodic refreshers of material covered previously will help.

Finally, students will eventually have to learn to "build" something practical. Learning how to determine the length of a string is fine and dandy, but so what? How does that figure into writing a program that actually does something? Lessons will eventually have to lead to practical projects so that at some point, the students will be able to program independently.

Of course, the real power in any programming language is its libraries, so learning JavaScript will have to turn into something like learning jQuery. Another things to consider is whether or not JavaScript will be the only programming language Codecademy chooses to teach. A lot can be done with JavaScript but hardly everything. A server-side language such as PHP might make a good addition. Beyond that, it just depends on what sort of long-term goals Codecademy has for its project.

Presently, although Codecademy has gotten a lot more attention than they expected in the short amount of time they've been online, I'm sure they'd love more. If you know little or nothing about programming but would like to learn in an interactive environment, go to Codecademy.com and try it out.

Saturday, August 13, 2011

Migrating Applications to IPv6: A Review

Paperback: 50 pages
Publisher: O'Reilly Media (July 7, 2011)
ISBN-10: 1449307876
ISBN-13: 978-1449307875

This wasn't what I expected.

I have an interest in migration from IPv4 to IPv6 for reasons I can't really explain right now, but I thought that reviewing Dan York's book Migrating Applications to IPv6 would hone my thinking and expose me to a different way of looking at IPv6. After all, most of us think of implementing IPv6 on an internetwork. We think of the expanded IP address space and the changes in DNS records, how routing mechanisms will change in IPv6 implementations and so on. We don't really think about how the change will affect applications. You might not have thought that IPv6 would change anything about how you write applications. Dan York's book gets you to think again.

But in only 40 pages?

Actually, the content of the book is only 34 pages. That's like a short chapter in just about any other IT book I've ever read or reviewed. Something made me decide to check around at other books on IPv6 recently published by O'Reilly. There's a trend.

Cricket Liu is something of a mainstay at O'Reilly in terms of her DNS and BIND book (in its 5th edition as of June 2006). Her DNS and BIND on IPv6 book was published at the end of May this year. It's only 52 pages long with about 37 pages being actual content. Planning for IPv6 by Silvia Hagen will be published at the end of August and it's a total of 82 pages long. If you put these three books together, you might have the start of an actual IPv6 book based on the most recent IETF RFCs for IPv6 implementation, but I'd certainly expect more to round out the subject.

Each of these three books runs a little over $25.00 each, but you could also buy Hagen's IPv6 Essentials book (published in 2006), with a full 448 pages of information, for only about ten dollars more. I looked through the front matter of York's book trying to find some reason for it's "mini-format". I couldn't find anything. I've never seen a complete book from O'Reilly before that was so thin on content. I had expected an in-depth treatment of the topic but what I found was a "pamphlet" of introductory ideas, tips, and tricks.

York's book does address, in a very compressed space, a number of issues that you will need to consider as an applications developer, and they all have to do with how your application accepts, manages, and stores IP addresses and DNS records. If your app requires that an IP address be input, does it do so allowing enough space for IPv6 addresses? If your app manages DNS records, will it be able to accomodate both A and AAAA records (IPv4 and IPv6 respectively)? Does your app expose any APIs that have an IP address format dependency? As a developer, if you haven't asked yourself those questions before, this book will help you find the answers.

Is the information in this book useful? Yes. I found the content, what there was of it, well written, insightful, and knowledgable. Is it worth 25 bucks? That's hard to say. If I wanted information on application migration, DNS and BIND, and general IPv4 to IPv6 migration planning, would I pay over $75.00 (for the three books I just mentioned) for a total page count of only 174 pages, no matter how well written or useful, when a full-sized book of almost 450 pages is less than half that cost?

Sorry, but I'm having a tough time trying to figure out what O'Reilly's strategy is here. When I requested a review copy of York's book from O'Reilly, I didn't give the page count a single thought. Now, it's all I can think about.

What happened, O'Reilly?

Friday, August 12, 2011

Cloning a Hard Drive with Acronis True Image Home 2011

I bought a Windows 7 Professional 64-bit PC from Dell about a year and a half ago and made the mistake of choosing an OS drive with insufficient room. Needless to say, 18+ months later, it was filling up fast. Even storing all of my data and VMs on a separate (and much larger) drive didn't really help. Fortunately, the folks I work for in my day job had decommissioned a lot of hardware and computer parts and I was able to get my hands on a fairly good sized SATA HDD. Now all I had to do was figure out how to transfer Windows 7 from one SATA drive to another.

After doing a bit of research, including asking the fine folks at Certforums.co.uk for advice (one of the finest technical certification discussion forums on the planet), I chose Acronis True Image Home 2011 for the job. I had initially settled on Acronis' Migrate Easy product, since I didn't need all of the features offered by True Image, but True Image was $10 cheaper and I'm all about getting a bargain.

After stopping by my local computer parts and repair store to pick up a SATA data cable, I was ready to install the new drive and get to work. I reviewed both the online documentation and the User Guide. I felt I was ready to proceed. The process seemed quite simple and I anticipated the whole thing being done in an hour or two at most.

Boy was I wrong.

Setting Up the Hard Drive

After installing the drive, my PC didn't "realize" it was there (my bad), so I went into the BIOS and set the SATA channel the drive was using to Active. After booting into Windows, I used the native Windows Disk Management utility to set the drive to a simple NTFS volume. The computer could now "see" the new drive, so I was all set.

Downloading and Installing True Image

I downloaded and installed a fully licensed version of True Image to my computer. This part was flawless and went just as anticipated. Nothing more to see here. Move along. Move along.

My First Attempt

I opened True Image and, following the instructions, opened Tools and Utilities and then clicked on Clone Disk. The Clone Disk Wizard was easy enough to follow. I went with an Automatic clone mode, selected my source disk, my destination disk, and then started the cloning process. A notice balloon came up to confirm this, but a few seconds later, a second balloon said that I had to reboot or the cloning would abort in 10 minutes.

Like a good little drone, I rebooted my computer.

Nothing.

I logged back in and still nothing. Task Manager confirmed that the application and its processes were not running. I repeated my original steps after checking the directions again and got the same result. I chose the Manual process which let me choose the "move method" (Proportional was recommended since the original disk contents are distributed across the entire, larger space of the new disk). I then started the cloning process and unfortunately, got the same results.

Needless to say, I was getting frustrated at this point.

I went to the Support area of the Acronis website and searched their discussion forum (it was getting late and I doubted anyone would be around at their help desk for live chat). I found the thread Clone Disk Utility Doesn't Work which had only been started a few weeks ago so it seemed to be a good fit for my problem.

The general consensus in the thread was that I should boot the computer from the Acronis recovery disc rather than the OS, and then perform the disk cloning from there. Please note that this was not mentioned in the User Guide PDF but was mentioned in the online instructions. I went back into Tools and Utilities to perform this action but here, I realized that my computer's DVD drive wasn't a burner. In fact, of all the drives on my PC, including removable drives that have since been removed, my DVD drive was the only one the Acronis disc making software didn't see.

The advice I got from the Acronis discussion thread was to download the ISO file and make a disc from that. Fortunately, I had access to a PC at work where I could easily (I love Linux) burn the ISO to disc. I figured I was ready to do this right.

My Second Attempt

With recovery disc in hand, I got home after work. I changed the computer's BIOS boot settings to look at the DVD drive first, then booted from the disc I'd made that morning. The mouse becomes disabled when booting from the disc. There are some instructions that appear telling you how to use various key combinations in order to control the mouse using the numbers keypad. Unfortunately, they go by so fast that, by the time I could read them and attempt to follow the instructions, the computer booted into Windows.

I rebooted with the disc again. Using my arrow keys, I could choose three options: Boot into Windows (the default), boot into the True Image Main Page, or boot into Acronis True Image Report. I tried the Main Page and after receiving a message saying Acronis was loading, a stream of different paths scrolled across my otherwise black screen ending with a blinking cursor. After the line Using /lib/modules/nfs.ko , the computer simply hung with the cursor flashing at me, and leaving me hanging out to dry.

As I'm writing this blog, I found a separate Acronis forum thread that explains this error. The thread content also reminds me that the recovery disc should have had an option for True Image (Safe Mode) which was missing from the menu of options available to me when I used the recovery disc. This behavior was not reassuring.

I repeated the steps of booting with the disc using the True Image option and arrived at the same result. Just for giggles, I booted using the Acronis Report option, but nothing changed. At this point, I was nursing an increasingly dim view of Acronis, their software, and their dodgy documentation. Absolutely nothing is working out as Acronis has described.

I booted back into Windows to consider my options. Going back into the True Image menu in Windows, under Tools and Utilities, I saw an option to add a hard disk. Figuring I had nothing to lose, I "added" the new SATA disk to the computer. That part seemed to go fine and took just a few seconds. Then, just for the heck of it, I tried the cloning process again, duplicating the steps in the wizard that I took before, and using the manual option.

The notification appeared saying that the cloning process had started but then something different happened. A notice appeared telling me to reboot or the process would abort in 10 minutes, but it was a completely different balloon format, appearing in a different place on my screen. I thought this was oddly hopeful and I rebooted, removing the recovery disc before doing so.

Instead of the OS loading, a text-only screen appeared and information flashed by faster than I could read but stopping at "Operation 4 of 5: Copying Partition". Acronis was finally cloning the OS volume from the old to new disk and the information on the screen confirmed the disk types and sizes were correct. Two progress bars were slowly advancing (current progress and total progress). I sipped a glass of water and waited.

The User Guide for this product described the cloning process taking place entirely in the GUI, not in a text environment. The online help completely omits what happens after following the wizard instructions, so I had no idea if this was expected behavior or not. All I could tell was that the cloning seemed to be working.

Once the process was completed, I was prompted to shutdown the computer by pressing "any key".

Once the PC was powered down, I opened it up, removed the original OS hard drive and replaced it with the larger cloned drive. I booted the computer, got back into the BIOS, removed the option for the computer to recognize a third SATA drive on the channel I'd originally selected for the new drive, and then made sure the new hard drive would be the first boot order option.

Then I rebooted and Windows 7 came up beautifully.

After the OS and my desktop loaded, I checked in "Computer" and the OS drive was indeed the new one with plenty of room (the computer wouldn't have booted if it wasn't, but I wanted the satisfaction of seeing for myself).

Conclusion

I must say it worked, which is about the only positive I can write about Acronis at the moment.

While the discussion forum recommended performing the cloning process by booting from the recovery disc, this is absolutely not mentioned in their User Guide for the True Image product. There is also quite a bit of information that is assumed, including the fact that the user has to know to add the disk in the BIOS after installing it physically, and then how to format it in Windows.

After all of my failures, the "turning point" for me, was using True Image to add the SATA HDD. After I did that, the cloning finally worked. Neither the online nor hard copy documents mention adding the disk using the True Image tool at all. If, adding the disk using True Image is a required step, it should have been mentioned in the documentation. I ended up going through that step out of desperation.

My recommendation to Acronis would be to update their documentation to more accurately describe how their product works, including any caveats. It's either hopelessly out-of-date (sadly, documentation continues to be the left-handed, red-headed step-child of software companies), or it's just plain wrong. I write technical documentation for a living and the Disk Cloning section of the True Image User Guide could have been a lot better. If booting from the recovery disc is required, say so. If adding the new disk using True Image before trying to clone another disk to it is required, say so.

Please.

A process that should have taken an hour or two, took me two days. I don't have that kind of time to waste.

If Acronis wants some assistance writing help documentation, they can either hire me or they can find who wrote this tutorial for ComputerShopper.com, which does a fine job of explaining what really should happen, step-by-step (and alas, I found it after the fact), minus the apparent necessity of adding the disk using True Image.

Cheers.

Monday, August 8, 2011

The Python Standard Library by Example: A Review

Paperback: 1344 pages
Publisher: Addison-Wesley Professional; 1st edition (June 11, 2011)
ISBN-10: 0321767349
ISBN-13: 978-0321767349

Stop! If you are just beginning to learn the Python programming language, do not buy this book! This book was written for intermediate to advanced Python programmers who want to be able to put their hands on the Python standard library of modules (which is why I'd recommend buying the hard copy if you meet the qualifications). This is not a book that will teach you the first steps in programming in Python.

Another thing. Although the transition to Python 3 is coming along nicely, like the transition from IPv4 to IPv6, the future isn't here yet. This book was written showcasing the Python 2.7 library and this version of Python will likely be with us for some time. If you're looking for a Python 3 library resource, this book isn't for you.

I'm sure other books have been spawned from blogs before, but I can't recall any right off the top of my head. The book you're reading about has its origins in Doug Hellmann's Python Module of the Week series, so you can always visit his blog to get an idea of how his book reads.

Like many other programming and technical books, it's not as if this information doesn't live elsewhere, but the information isn't particularly accessible in a single location. While every copy of Python ships with hundreds of modules that span a wide field of developers, tasks, and years, the documentation for these modules isn't particularly consistent. That's where Hellmann comes in. He provides one resource for Python module documentation in a consistent "voice", and demonstrates the how and the why of these modules in a straightforward, understandable way. If you've read Hellmann's blog (and if you're an experienced Python programmer, you probably have), you'll more than appreciate his book.

The vast arena of examples are clear but the sheer volume may be a little intimidating. Hellmann's book weighs in at a robust 1344 pages, but then it is "one-stop shopping" at its finest. Programming Python "from scratch" is fine and well when you're first learning the language, but the real power of Python is in the ease of use of its library. Having all that collected in one container is a terrific advantage and, not having to search the web for specific modules, you might just come across a few that you've never heard of before, inspiring you to take a different direction to solve a problem. If you're an experienced programmer, but not in Python, you could get by with going through this book to learn the language, but as I've already said, it's really written for people who already know Python.

This is another fine addition to the Addison-Wesley Developer's Library. If you're a Python programmer, you know you want this book. Go ahead and pick up a copy of Doug Hellmann's The Python Standard Library by Example. You can't go wrong.

Saturday, July 30, 2011

31 Days Before Your CompTIA A+ Exams (2nd Edition)

Product Description: This is the only A+ exam preparation guide that is mapped to several study resources. This new edition includes references to but is not limited to just the Cisco IT Essentials v4.1 course material to prepare for the new CompTIA 2009 A+ certification exams. Like all Cisco Press "31 Days..." exam prep books, it is organized by day, starting 31 days before the exam. Short, low-cost, and exceptionally readable, it gives you a highly-structured, simple tool that tells you exactly what to study each day to be fully prepared. 31 Days Before Your A+ Exams, Second Edition also contains easy-to-understand information on how to sign up for the exam, detailed explanations about what to expect during the exam, time-proven test taking strategies, and a tear out visual aid calendar. With these features, it is a true exam prep guide in every sense.

Ben Conry authored the first edition and much of the second edition of this book, but he needed some "backup". That's where I came in. Inside the front matter, you'll see me listed as "Contributing Author".

I'm no stranger to the CompTIA A+ exams and have previously authored PC Technician Street Smarts, Updated for the 2009 Exam and CompTIA A+ Certification Practice Exams (Exams 220-701 & 220-702). This is my first outing writing for Cisco Press and I hope it's not my last.

31 Days Before Your CompTIA A+ Exams (2nd Edition) will be available in October. Pre-order your copy now.

Thursday, July 28, 2011

Trying to get a look and feel

I know, I know...it's been forever. I've been working on other blogs and have woefully neglected my first effort. I've also been trying to figure out exactly what content I want to feature here. For awhile, I was doing technical book reviews more or less exclusively here, but I ran out of bandwidth to do that kind of writing. I've been pining to get back to something like that lately, but maybe not with such an emphasis.

I love reading. I really enjoy it. I also like to write about what I read, but I read all kinds of books. The theological tomes I'm reserving for another blog entirely so if that's not your cup of tea, you don't have to be concerned that such content will appear here. On the other hand, I'm having a lot of fun reading Ayn Rand's Atlas Shrugged. I have been trying to get together with a few other folks for a "book club" of sorts, but the priorities of the various members seem a bit scattered, so it's not as successful as I'd hoped. Even if the "club" doesn't continue, I now have the desire to expand my reading selections into other more "literary areas.

I've changed the theme and imagery of the blog significantly but I still don't know if I really like it. I'll probably keep tinkering with it, but expect new content to appear here pretty soon. I'll still review books on technical subjects I like, but I also want to talk about (even if it's just to myself) my other "biblio" interests.

Please stand-by. There is nothing wrong with your television set.

Thursday, March 10, 2011

Book Review: Computer Structure and Logic

Author: Pearson Certification Team
Format: Paperback, 496 pages
Publisher: Pearson IT Certification (January 28, 2011)
ISBN-10: 0789747936
ISBN-13: 978-0789747938

This is and isn't a book about computer hardware and software certification...sort of. OK, it's published by Pearson IT Certification and the authors are the Pearson Certification Team, but the content doesn't map to a specific certification or even a specific technology. That's a little unusual.

Most books on computer or IT certs focus like a laser on a particular exam. Often, but not always, technical certifications are tied to a particular company (Microsoft, Cisco...) and a particular technology (Windows, SharePoint...). However, the blurb on the back of this book says:
Your first step toward certifications from CompTIA, Microsoft, or Cisco...absolutely no experience necessary!
Really?

The book has a certain logic to it and an assumption. The assumption is that there are people out there who are interested in information technology certifications and a career in IT who pretty much have no idea how computers and computing technologies work. Usually (but not always) people who self-select for a career in a technological field have some prior knowledge about it or at least some sort of aptitude. This book assumes a target audience that doesn't.

The logic of the book is to take the reader to an absolute in-the-basement starting point regarding IT, and to build them up one subsystem and one chapter at a time. This isn't a reference book. For the reader to get anything at all from what's written here (assuming the readers are the target audience), they will have to start at the beginning and move through each chapter in sequence. No short cuts.

To that end, Chapter 1 is "Introduction to Computers". I'm not kidding. You start out with a high level view of the history of computing, beginning with the first computers created in the 1940s. That sounds as dry and moldy as week-old toast, but it's a necessary first step for a person who may not even know what makes a computer work on a fundamental level. What is a CPU? How does it interact with working storage (RAM) and input devices (keyboard and mouse)? Page 9, for example, includes a drawing of a cutaway view of an NMOS transistor. Now that's basic. So is the Chapter 1 section called, "What is a PC?".

Each chapter ends with a series of review questions immediately followed by an answer key that contains a brief explanation for each item. Chapters can contain one or more case studies and the solutions for each one can be found after the review questions and answers. This book reads less like a self-study guide for a computer certification and more like a beginning computing text book. I can see this book being marketed mainly to high schools, vocational schools, and possibly to universities with an eye on the very first freshman class teaching computer technology.

Chapters 1 through 6 are strictly focused on hardware (I/O ports, motherboards, CPUs) but Chapter 7 transitions the reader into the software part of the book by introducing BIOS and the boot process. After that, the remainder of the chapters cover operating systems, including Windows, Linux, and Mac, security basics, networking basics, and beginning troubleshooting skills. By the end of the book, the reader should have an elementary understanding of how modern computers work, including some networking fundamentals. This information can then be used to bridge the reader to further studies mapping to CompTIA A+ and Network+ exams (Linux isn't covered sufficiently to carry the reader into the Linux+ certification without a great deal of additional study).

From the CompTIA A+ and Network+ exams, I can see the reader, building on what they've learned, moving into the entry-level Microsoft Windows and Cisco certifications, but you are talking about starting the journey at the very beginning of the trail. I'm not sure I'd recommend this book for a person interested in certification self-study unless they were very disciplined and enjoyed learning "textbook-style". The book seems a better fit for a group learning experience such as a traditional classroom, or as a supplement for on-line education.

If you've tried the CompTIA A+ exam and felt you were in over your head because you didn't understand basic computer concepts, Computer Structure and Logic might be a good resource for you, but you should really want to learn computing in order to benefit from this book. Otherwise, the rather dry presentation, especially in the beginning chapters, will stop you cold.

Wednesday, February 2, 2011

Pragmatic Guide to JavaScript

Author: Christophe Porteneuve
Format: Paperback, 150 pages
Publisher: Pragmatic Bookshelf; 1st edition (November 22, 2010)
ISBN-10: 1934356670
ISBN-13: 978-1934356678

So there are just billions of JavaScript books on the market and if you are interested in this language, or learning more about this language, you probably own several. Why would you want to buy the Pragmatic version? What sets it apart from the rest of the herd? What does it bring to the table?

Good questions. But can Porteneuve's book provide the answers?

According to the blurb on the back cover, the book will get you up to speed quickly and painlessly with the 35 key JavaScript tasks you need to know. Task-oriented is good. You can't learn to use a programming language without writing the programming language. I am concerned about the phrase the 35 key JavaScript tasks you need to know. How does anyone know which tasks I need?

Often, my favorite part of a book such as this is the Who is this book for section. Here is where you'll find the "official" mission of the book and sometimes where you'll find the inconsistency between the book's stated purpose and how it's actually written. Here's the first sentence:
This book is not really intended to teach you "JavaScript the language".
What? That's not the impression I got from the back cover. As the "Who is this book not for section continues, it says that the language is pretty easy on its own so, if you know any programming at all, learning the basics (loops, variables, and so on) isn't much of a chore. The book even recommends the "JavaScript Core skills" section of Opera's Web Standards Curriculum.

So who really should buy this book?

Apparently, people who already have a smattering of JavaScript knowledge (or more), but who need a set of specific solutions to common JavaScript tasks. The tasks are collected into six different parts in the book, including Pure JavaScript, The DOM, Events, and Timers, UI Tricks, and more.

Each task is generally presented in a two-page spread, with the description of the task on the left and the code samples on the right. I say code "samples", because the "finished product" isn't presented on a silver platter for the reader, hence the need to not just know, but to be familiar with programming in general and JavaScript in specific right at the onset. Thus, you can think of this book as not for the JavaScript beginner, but as the next step in a JavaScript coder's progress in learning to apply practical solutions to JavaScript problems.

This is a good thing, since most beginner's JavaScript books focus on teaching the language but don't really teach you what to do with it. It would be really cool if a publisher like Pragmatic would publish a series of books on a language, starting with a complete beginner's primer, and then producing subsequent books aimed at different skill levels and applications for the language.

JavaScript really isn't just about the language. Except for very minor tasks, in production, you almost always are using a framework such as jQuery, Dojo, or MooTools. Although this book advertises itself as "framework agnostic", it (and the author, I suppose) tends to favor ProtoType as a framework. That said, it's not an exclusive ProtoType tutorial and does offer creative solutions to what are considered common problems.

Every book has a website, and this one is no exception. The book's official site is http://pragprog.com/titles/pg_js, where you can access the sample code, review the errata, and participate in forum conversations about the book's contents (though, there are only three threads, the most recent being November 2010 as of this writing).

Like all books that present specific tasks and solutions, Pragmatic Guide to JavaScript is limited by its own parameters. That is, it won't tell you how to solve problems beyond the 35 tasks presented in the book. However, the book also helps you learn different ways (hopefully) to solve problems you may have already confronted or with which you are currently struggling. Before buying, it's probably best to scan the table of contents and see if there are enough of the kinds of tasks that you need to explore. If so, pick up a copy and have at it...and have fun.

Tuesday, January 11, 2011

Review: Pragmatic Guide to Subversion

Author: Mike Mason
Format: Paperback, 150 pages
Publisher: Pragmatic Bookshelf; 1st edition (November 15, 2010)
ISBN-10: 1934356611
ISBN-13: 978-1934356616

I really like this book. It fits my needs perfectly. Let me explain.

I use Subversion in my day job as a technical writer for a software company. I use Ubuntu (9.10 Karmic Koala) and connect to the subversion repository via the shell. This is pretty much how the book was written, so all of the commands and tasks really fit my personal situation. Not only that, but the level of complexity (or lack thereof, if you're a total subversion guru) is right at my level.

OK, the book wasn't just written for me. Each task that is demonstrated in a bash shell is also presented in TortoiseSVN for Windows users and in Cornerstone for Mac OS X users. The book doesn't bias to only one interface, so a very wide subversion user base is served.

In general, a task is presented on two pages, both facing the reader, with the left page using narrative to describe the task, background information, and references to other relevant parts of the book, and the right page presenting the task. Each book section starts with a brief list of what it contains and provides the page numbers to how tasks are done in each of the interfaces, so you can easily skip over the bits that don't apply to you.

Pragmatic Guide to Subversion won't teach you how to be an expert subversion administrator, but it will teach you plenty about the hands-on of using subversion. You even get lessons on installing subversion, creating a respository, projects, and managing trunks, branches, tags, and more.

You can create a lab environment on your local computer or use the book's material to smooth over any rough spots in working with a production repository in a software development environment (like me). The book is simple, easy to read, and practical. If you work with subversion and keep having to bug the developers about how to manage your work in svn, go by the book and, as they say, RTFM.

Cheers.