Wednesday, May 27, 2009

Review: The Twitter Book

Authors: Tim O'Reilly and Sarah Milstein Format: Paperback, 240 pages Publisher: O'Reilly Media, Inc. (May 26, 2009) ISBN-10: 0596802811 ISBN-13: 978-0596802813 This book is marketed to everyone who uses or wants to use twitter with an eye on being popular, either personally or professionally. I don't mean that in a frivolous way. Twitter has become an important tool for self-promotion of individuals and businesses. OK, I doubt that Bill Gates worries that the number of followers he has in any way affects Microsoft's profit margin (actually, I can't find the "real" Bill Gates on twitter, but there are a number of "parody" profiles with his name on them), however there are a number of "big bananas" on Twitter who tweet regularly for more than just a lark (if you'll pardon the "bird" metaphor). According to twitterholic, the top 20 twitter users include Barack Obama (number 1.), DowningStreet (number 2.), The Onion (number 6.), Guy Kawasaki (number 12.), and ESPN Headlines (number 15.). Adam Ostrow (alias @mashable), states that twitter saw a massive 752 percent growth in 2008 with no end in sight. All this would seem to indicate that twitter is "where the cool kids hang out". Reason enough to at least consider O'Reilly's and Milstein's book if you want to know more about twitter than just its name. The Twitter Book is easy to read in the extreme. It's general format is less like a standard book and more like an instruction manual "for dummies". I don't use the term "dummies" in the pejorative sense, but to indicate that the content is designed to be accessible to the widest possible audience. The book in fact, starts out with answering one of the mysteries to twitter newbies: what is a hashtag? The answer on page 3 is only a brief mention and suggests the reader will learn more in Chapters 1 and 3, but it is one of those little details that makes tweeting less than easy to understand. The actual Introduction section doesn't start until page 5 and goes into a brief history lesson of what twitter is and where it came from. As the reader moves through the book, screen captures abound. Text per page is large and limited, so like twitter tweets themselves, information is presented only in small, bite-sized, bits (although there are more than 140 characters per page, fortunately). Pages 9-17 address what a lot of people might want to know about twitter: What's it good for? Turns out "ambient intimacy" is the number one use (at least in terms of being presented first in the list) of twitter; having "lightweight but meaningful" conversations. My personal opinion is that not all tweets are "meaningful", but they certainly are lightweight. If you can talk like a T.V. sound byte, you can successfully tweet on twitter. Chapter 1 gives the reader the basics required to get started using twitter (which at ground level, isn't really such a chore). If you've created a personal account on any social networking or similar site, you can create a twitter account. Of course, there are probably people who would use twitter who might not also use Facebook, MySpace, and so on, so including such basic instructions is a good idea. Since attracting followers is a main goal, page 23 covers creating a "compelling profile"; something that will draw others to you. I've been using a lot of twitter-specific terms in my review thus far and, if you're not familiar with twitter, you may be having difficulty following some of my content. Fortunately, page 25 defines the term "following" and many more "jargon" definitions follow. Believe it or not, compressing what you want to say into 140 characters (including spaces) isn't always easy. The book provides helpful little hints (everything seems diminutive when describing twitter) on how this is accomplished. The long and the short of Chapter 1 will get you going quite well as a twitter user, but wait! There's more. Chapter 2 covers a variety of twitter related tools including search, finding people, following trends, and twitter clients for the desktop. TwitterGadget, the client I use (on Ubuntu) wasn't present, but it may not have been available when the book was being written. Chapter 3 goes to the heart of the matter: getting followers. Actually, the chapter talks about getting "great" followers, and tells you to get great followers, you need to be worthy of being followed. I thumbed through the basic suggestions and I probably don't follow a lot of them. I tend to either tweet too little (when I'm busy on projects) or to tweet too much (which is often). I suppose that's one of the reasons I don't have as many followers as the "big kahunas" (though I'm sure there are many other reasons). Of course, you have to really care about the number of followers you have for this to be important to you but then, isn't that part of what twitter is all about? Chapter 4 describes how to use twitter to promote your blog, website, events, and so on; using twitter as the link or lure to get people to enter the rest of your world. Chapter 5 emphasizes making twitter "personal" rather than tweeting dry, informational updates. The idea is that people will be more likely to follow you if you come across as a real human being (and there are bots on twitter). On the other hand, a large number of tweets about what color socks you're wearing or what you had for lunch can get a little dull. Chapter 6 presents data on using twitter to promote your business. This may be especially interesting to you if you have a small business you are trying to grow or are just launching a start up and are trying to attract some buzz. All in all, a worthy book though somewhat "lightweight" and definitely written with the traditional "end user" in mind. You may not end up reading the whole book and instead just focus on the parts of interest, though it's only 240 pages long and, with the large-print formatting and large number of images, it takes no time at all to burn through this work, cover to cover. If you are both interested in twitter and interested in the authors, you can follow them on twitter: Tim O'Reilly (@timoreilly) and Sarah Milstein (@SarahM) both tweet regularly. For that matter, your humble reviewer is @jamespyles on twitter. If you've heard about twitter and want to learn more, you can find out all the basics of the application and how to use it within the pages of this book. I wouldn't say it contains any amazing secrets, but it is a good, common sense primer for becoming active in twitter. Happy tweeting.

Friday, May 15, 2009

Learn to Program, 2nd Ed: A Book Review

Author: Chris Pine Format: Paperback, 200 pages Publisher: Pragmatic Bookshelf; 2nd edition (March 28, 2009) ISBN-10: 1934356360 ISBN-13: 978-1934356364 Amazingly, this is a "how to program" book that doesn't use JavaScript as the first programming language the newbie experiences. I'm intrigued. Of course, it's a second edition, so using Ruby isn't exactly new for the new person. I never read the first edition, so I'll have to rely completely on the text I have in my hand (uh...sitting beside me, since I'm keyboarding with my hands). Just looking at the TOC, I already like the book, since the "Getting Started" chapter includes how to get started using Windows, Mac OS X, and Linux. Truly an equal opportunity author. The first section of the Introduction showed me that author Chris Pine (as far as I know, no relation to the actor playing James Kirk in the current Star Trek film) is a person after my own heart. He compares the writing of instructions on making a PB&J sandwich to writing a computer program. One of my "issues" is writing good tutorials for the correct audience. The instructions on how to make a PB&J sandwich differ, depending on if your audience is a 5 year old child vs. a 35 year old adult, for instance. I heard something of my own "voice" in those particular paragraphs, as Pine outlined the set of instructions pretty much the same way I would. Pine almost immediately answered one of my questions (Why Ruby?) in the Introduction. The answer is completely pragmatic: "Ruby programs tend to be short". He compared the same task written in Java and Ruby. Ruby was just a little "blip" compared to the several lines of code Java required to do the same thing (print "Hello Word", as if that were inventive). In the "Getting Started" section, I ignored the instructions for installing a text editor and Ruby for Windows and Mac, and honed in on Linux. Easy stuff. Everything was already on my Ubuntu box. Time to move on to the first lesson. You can just about blink and be 4 or 5 chapters into the book. The tutorials for beginners are written in more less the same way, and with the same sort of problems as a lot of other beginning programming books. Integers, floats, strings, and variables are all delivered in short order. What's nice is that Pine's writing style is friendly and easy to read, and each of the beginning chapters are relatively short. This makes the learning, particularly for the programming newbie, go by fast and gives the sense of quick and easy learning early on. Of course, while you may cruise through the first 4 chapters at warp speed, Chapter 5 starts only on page 25, meaning you have a way to go before getting through all the material. I noticed a few, very minor omissions (actually, one "omission" was explained, and was only an omission in the instructions if the reader didn't actually read Chapters 1 and 2). One exercise in Chapter 5 required the reader to increment a value by one, which hadn't been illustrated in the chapter material. On the one hand, if you have any programming experience, you can figure this out on your own. If not and it stumps you, the answers are easy enough to find in the Appendix. Pine made a point of saying the book was spawned from an online tutorial in part, because of the amount of emails he received citing various omissions. From that point of view, I can see that this book has been very finely honed from its earlier incarnations, including the first edition in all likelihood. That said, this particular bolt could have used a bit of tightening, but it was one, small bolt. One of the things that's different about Pine's book is that he explains technical terms and concepts as he goes along. Most books define terms such as "methods", "strings", "objects", and so on separately and then illustrate their use in examples. Pine often has the reader perform various tasks using methods, objects, and variables either without explaining what they are, or explaining them during the actual tutorial. He "took a breath", so to speak, at the beginning of Chapter 6 and more specifically defined what methods are. This is probably good for the reader who wants to get his or her hands dirty right away, but it's important to not only be able to write code and understand why it works, but be able to understand what different parts of a program are called. This is the language used by programmers to speak with each other about how code works. I'm relieved that Pine doesn't spend a ton of time defining his terms before getting to work, but still, the reader will really need to pay attention to pick out these little tidbits nestled in the text. The first 6 chapters of the book are pretty much a basics primer with no surprises. What you put in to your small, newbie programs is just what you get out. Pine introduces how to write an interactive program with Chapter 7, which starts the second half of the book. I noticed that the exercises at the end of Chapter 8 asked the reader to use what they've learned, not just in the chapter, but in prior chapters (the question was implicit though, and I would have preferred if Pine had spelled it out). Not enough tutorial books do this or at least, they don't do this well. Stuff you learn in prior chapters doesn't get practiced in subsequent chapters usually, so the reader forgets about them. You can't learn to program (or to do most anything else) unless you are constantly using what you've newly learned and then adding all that to what you're learning now. Kudos to Pine for this. Pine's tendency to define terms as he goes along, which I mentioned earlier, can get a little muddy at times. For instance, in Chapter 9, he starts out by describing and illustrating local variables without letting the reader know there's such a thing as global variables. You can still follow along and pick up the gist of the chapter, but it would have helped if Pine would have just defined the terms straight out here. There are several other places in the book where, if you aren't paying attention (a highlighter sometimes helps), you could miss out encapsulating the conceptual bits of the book into your memory. Having said all that, you also encounter another real conceptual explanation (they're rare) of local variables in Chapter 9 (particularly in the section "Experiment: Duby"; Pine has a definite sense of humor and it's evident throughout the book). I have to admit that I was a little surprised I could take my hands off the keyboard for 3 pages and just read something. No complaints either way, but the book was just so "hands on" (excepting that small bit in Chapter 6 I previously mentioned) up to this point. This is proof that explanations are necessary from time to time, and Pine does include more of these narratives as the book progresses. The author "declares" the readers as a "programmers" if they've made it to the beginning of Chapter 10. I suppose it depends on how you define "programmers", but I wouldn't get terribly excited if you find yourself staring at Chapter 10. You're not ready for your first programming job yet and, you can't do anything "practical" with Ruby yet (think of a real world problem that can be solved by writing a program...can you write that program yet?). Pine seems to be doing two things here. First, he's bolstering the reader's confidence and re-enforcing that the reader really has learned "stuff". Second, he's declaring that the reader has in fact, gone through the bare bones basics of learning Ruby. Actually, most of what the reader has learned at this point applies to many programming languages (methods, variables, and such). This is good and a step in the right direction, but don't abandon the rest of the chapters. It's more than just fluff and in fact, Chapter 10 is pretty much "review". As I said before, I approve of review. Even by the end of the book, the reader can't be expected to write programs in Ruby equal to a professional programmer. This book pretty much gets the reader's feet wet and that's about it. This is no insult to the author or the book. In 200 pages (actually, the practical instruction ends at page 149), I wouldn't expect any book to provide a complete programming novice with that level of expertise. Chapter 15 covers where the reader can go to look for help in expanding their knowledge of Ruby or just getting out of a jam. The first suggestion is to consult irb, which should have been installed when the reader installed Ruby. Since my Ubuntu 8.04 computer had Ruby already installed, I followed the instructions to invoke irb, but discovered that I needed to install it separately. No worries there. It was just a sudo apt-get install away. Pine also provides a couple of online resources and, I presume as a last resort, he put his email address on the final page of the chapter. As my last resort, I Googled "ruby forums" and discovered there's quite a bit more online than listed in Chapter 15. Once you get to this point in the book, explore the "interwebs". Of course, there are always other books after this one, depending on where you want to go next (Pragmatic's list of Ruby and other programming books is found after the index in this book). I noticed that there was no accompanying CD/DVD, which didn't break my heart, but there was also no website listed in the book to support what the author has written. In other words, there's no place (at least no place stated) to go to get the code samples used by Pine, and being able to download a book's code samples from the web is fairly standard for programming books. I thought about this for a second and realized there was nothing really lost here. First off, the code used in the book isn't incredibly long or complex, so the reader doesn't have to keyboard his or her fingers to the nubs performing the exercises. Second, the only way to learn to code is to code, so it's good practice for the reader to write each program listed to hone their newborn skills. Since this book started out as an online tutorial, I did wonder though if Pine had maintained anything online to augment his writing? The answer (though not in the book) is found at The Pragmatic Books for this book. Probably the most valuable resource is the Discussion Forums for this book. There, readers have already asked questions and the author is quite interactive with them. What I came away with is a basic understanding of the principles of programming, which I recognized from other languages. I also came away with an interest in learning more Ruby. It's actually a pretty good language for learning programming, which I hadn't previously considered. It's also in wide use in the industry and who hasn't heard of Ruby on Rails (though the "rails" part is yet to come)? Regardless of your motivation for learning basic programming, I think Chris Pine's book does a fine job as an introduction. It's basic, fast, and funny, and while not revolutionary, Learn to Program will definitely get you started in the right direction.

Wednesday, May 13, 2009

The Google Way: How One Company is Revolutionizing Management As We Know It

Author: Bernard Girard Format: Hardcover, 256 pages Publisher: No Starch Press (April 10, 2009) ISBN-10: 1593271840 ISBN-13: 978-1593271848 This is a very interesting read, but you may not know why you're reading it at first, or even exactly what you're reading. The title suggests that you'll learn the "Google way" of doing things and this is largely true. It also suggests that the "Google way" is a unique set of operations, philosophies, and processes that have resulted in Google's incredible success and that perhaps, by learning "the way", you may be able to replicate that success in your own efforts. Is that true? Probably not. Whenever I hear a term such as "the Google way" or "the HP way" or "the giant-Fortune-500-megahuge-corporation way", I think of the mechanics a large company uses to operate on a day-to-day basis. My understanding of these "ways" is that they result in an evolutionary slowness in getting even the most simple and mundane tasks done (I once waited months to be hired for a temporary job at a very large corporation because all such temp hiring decisions had to flow through the CEO, which is madness, but it was their "way"). The general theme of this book, is to describe for the reader the origins of Google and how the development of the "Google way" resulted in it's tremendous success, including possible future directions for the search engine giant. To accomplish this, Girard pulls not just from all of the publicly available information on Google and its founders, but interviews with former Google staffers, general history, philosophy, and classic corporate strategies. For instance, lessons learned by Ford's revolutionary creation of the assembly line, creativity and Edison, and the invention of the steam engine, are all brought into play to illuminate the various concepts and methods of developing something that had never existed before. Not that there weren't search engines before Google, but there was never a business model like "The Google Way" before Page and Brin created it, then brought in Eric Schmidt (formerly of Novell) to help continue nurturing it. Girard's book won't tell you how to create another "Google". It can't. One of the points I walked away from the book with, is that a unique set of situational and environmental circumstances had to occur for Google to be created in the way it was created, at the moment in history it was created. Those circumstances have passed and, while I'm sure it's quite possible to make another company at least as successful as Google in the future, it will not be created, developed, and operated, in exactly the same way as Google. It isn't enough that Page and Brin "bucked the system" to create Google, it was their specific approach in doing so (after all, not all rebels succeed just because they're rebels). Defying corporate "tribal knowledge" in and of itself wasn't sufficient to account for Google's success. Being a rebel in this instance, doesn't mean being chaotic or necessarily defiant. Page and Brin were extremely thoughtful in their approach, they just were thoughtful in a different direction than the traditional compass heading. You won't get an insider's view of Google from this book, at least not in microscopic detail. If this were a book officially sanctioned by Google, it would probably speak with a different voice, and one that more closely quoted the "party line" (all companies have a party line which is used by the company to publicly describe themselves, while not disclosing much of the actual inner workings). Girard's book sacrifices the "insider's look" of Google, at least to some degree, in order to be able to speak about Google with more latitude. I didn't get the feeling I was learning "secret knowledge" while reading, and as I mentioned, everything in the book is backed up by all of Girard's sources, listed in detailed notes. The part of the book I wanted to get to was Google and the future. This would be squarely Girard's opinion about what's next for this company; something he couldn't get directly from source information (though he could derive from it). Girard wrote the book as the current economic meltdown was beginning (it seems to have been finished slightly before Obama was elected) and he weaves this information into his projection of how Google might respond. It's probably still too soon to see if these projections are at all accurate, but time will tell. I found the book to be well-rounded in its coverage of the various aspects of "life at Google" and specially appreciated the scope of history and philosophy that Girard brought in to his work. It gave the lens used to view Google a better and sometimes unexpected perspective. Although the book isn't exclusively about how search works (though the topic is covered for obvious reason), I found I was glad that I'd read (and reviewed) Bill Tancer's (Hitwise Intelligence) book, Click: What Millions of People Are Doing Online and Why it Matters, because it expanded that particular dimension of Google for me while reading "The Google Way". If you find the "entity" of Google a fascinating topic and want to look "under the covers", I think you'll enjoy what Girard has created.

Sunday, May 10, 2009

Star Trek Reboot: A Movie Review

I was 12 years old in September 1966 when the original Star Trek television program premiered. It was totally awesome, especially for a 12 year old. Beyond my young boy's impressions and imagination, it was also awesome because it was the first Science Fiction television show that wasn't an anthology, but instead, told a continuing story with the same characters. Gene Roddenberry had created a universe that would live on for decades and ultimately, live on after him. Needless to say, what started for me at age 12 continued on through the rest of my life up to the present day. While I'm not as "obsessed" with the Star Trek franchise as I once was decades ago, I am still interested and entertained by the ships and the crews and, I possess an awful lot of trivia in my head about Star Trek. The J.J. Abrams film has all but made that knowledge obsolete because instead of extending that universe, he has recreated it. No, he hasn't completely recreated Star Trek as an entity, but he has done more than just retold a classic saga. He has also done more than just updated it for the 21st Century and all that special effects is now capable of (and the original series suffered from a greatly limited budget as well as limited technology, thanks to short sighted television network executives). The current Star Trek film isn't even a reboot, because rebooting implies a hard restart into the same environment. What the Star Trek movie does is recreate the characters, the Enterprise, Star Fleet, and everything else in a different image. While this image retains much of the dream Roddenberry created, it is also new life, new interactions, new characterizations, that "boldly go where no one has gone before". I'll pause here to echo what many other reviews have already said. The movie is action packed enough for even the most hyperactive movie thrill seeker, whether you're a Star Trek fan or not. Believe me, if stellar (literally) special effects, explosions, fabulous stunts, and warp driven roller coaster rides are your thing, this film is for you. I promise you will not be disappointed when you finish watching the film and I predict you'll want to see it again and again. In other words, the film is "bloody awesome!" There were things that bothered me, but then I'm detail oriented, science and technology oriented, and science fiction oriented. I won't go into the details because they'd give away too much of the story line, and I want you to be as surprised (shocked...maybe even horrified) as I was when I saw how much "history" had been changed. I will say that there was an absolutely unanticipated romance in the film. I won't say between who, but I never, ever saw it coming. I have no idea how it will be continued or resolved in a sequel (and this film demands a sequel...after all, without one, what would be the point?). The most "dead on" characterizations were "Bones" McCoy and probably Scotty, although Scotty was like "Scotty on speed" or "Scotty extreme". I say that in a good way. I really liked this Scotty, but he plays the role with a lot more energy than James Doohan ever did. Uhura, Chekov, and Sulu were probably the most different, but that may be because the roles were never used as much as they could have been in the original series. Spock was the same but different. He was a lot more raw as a Vulcan, still struggling with his human side and with his relationship with Kirk. Kirk was Kirk who isn't a total jerk. Well, he starts out as a total jerk, but the first 30 minutes of the movie goes a long way to explain why. I'll also use "raw" to describe Kirk. He's a "diamond in the rough" Kirk who is carrying a rather huge chip on his shoulder, which he makes use of in the numerous fight scenes he always seems to end up in. He's the irreverent, rule breaking Kirk, but one who hasn't yet hit 30. He's also a Kirk who is ultimately right about what he sees as the real problem and what the real solution is...he's just too young and impulsive to communicate it without getting himself beaten up (again and again) and blasted off the Enterprise (you'll have to see the film to see what I mean). Despite all of the differences, there are still a lot of references and connections to the "old" Star Trek. We get to see Kirk's final "solution" to the Kobayashi Maru "no-win" scenario, and there's a very nice interaction between young Kirk and "old" Spock that definitely hearkens back to the traditional past (or is that future?). I know, I know, time travel has been used again and again in Star Trek as a plot device, but in order to accomplish the purpose of this film (to jump start the Star Trek franchise), time travel is a necessary evil. Speaking of evil, I really had a tough time "feeling" the villain's motivation for all the bad stuff he does (and he really does bad stuff). Yes, the film explains why he's doing what he's doing and it makes sense, but it's like "so what, this is really necessary...you couldn't have dealt with it any other way?" And I have no idea why this particular band of Romulans from the future need to have a bunch of facial tattoos. I guess to make them seem more scary. All that aside, I had a lot of fun for a couple of hours this afternoon. I've been a Star Trek fan for over 40 years and this Star Trek is fun. I had to make my peace with the fact that, in order to accept the current Star Trek, I had to lay to rest a lot of old friends. A line in a lot of old westerns goes, "There's a new Sheriff in town". Yes indeed. The "star" is the same, but the faces and some of the behaviors, and a lot of how the universe unfolds in this Star Trek is different. Everything that comes after it will be different as well, so its also like saying goodbye to Picard, Data, Sisco, Janeway, and the rest. It's a brand new Enterprise (literally true, since this starship's maiden voyage is to launch right into the action in this film) and a new universe that unfolds as the film progresses and by the end of the movie, I realized, as I imagine you will, that Star Trek will never be the same again. Maybe it'll even be better. The word is given. Warp speed.

Friday, May 1, 2009

Check and Balances?

The news that Supreme Court Justice David Souter is planning to retire, started me thinking (yes, I know...quite dangerous, or at least annoying). If the three branches of Government are supposed to be independent, how come the President can pick his Supreme Court Justice? Sure, Congress still has to approve, but if both the President and Congress belong to the same political party, won't the Judge also be of the same ilk? Doesn't that slant Government to one view only? So much for the two-party system and checks and balances. Can anyone out there supply an answer to this quick question? Please post back a comment if you can. Thanks.