Sunday, August 30, 2009

The Official Ubuntu Server Book

Authors: Kyle Rankin and Benjamin Mako Hill Format: Paperback, 528 pages Publisher: Prentice Hall PTR; 1st Pap/Cdr edition (July 27, 2009) ISBN-10: 0137021186 ISBN-13: 978-0137021185 I've had this book for almost a month, but have waited to write this review until I could give it the attention it deserves. I'm a fan of The Official Ubuntu Book (now in it's 4th edition), so I eagerly approached Rankin and Hill's production, anticipating the same quality product the desktop Ubuntu book has consistently provided (and no, I didn't think the desktop book was "perfect"). Would this server book be equal to the task? My first assumption, without even opening the book, was that Ubuntu book or no, a server book needs to tell you not only about the ins and outs of the operating system and distro, but about configuring the various server roles (DHCP, DNS, File and Print, and so on). With that in mind, I opened the pages, and went in search of the target audience for this book. My search turned out to be futile, however. I did find a bunch of information I didn't always care to read in the Introduction, though. I expected the usual history lesson, "What is Linux?", What is Ubuntu?" and that sort of thing, but I also got a brief history of Mark Shuttleworth himself, the creation of Canonical, the Ubuntu Community, the various goals (philosophical and technical) and the Code of Conduct for the Ubuntu project. Of course, if that's tied to service and support, I suppose I want to know that sort of thing. Alas, the Introduction didn't explicitly say "this is who should read this book", so I'm left to believe,that the ideal reader is someone who understands or wants to understand the basics of server administration, with an eye on Linux and Ubuntu. Chapter 1 is the expected installation chapter, but don't rush in too fast. The book comes with CDs for Ubuntu 8.04 LTS as well as Ubuntu Server 9.04, for those of you who want to choose between stability and the latest and greatest. This shouldn't affect the installation process as such, just be aware of which version you want to install ahead of time. The Preface does include some additional information about the CDs, including the fact that they harbor the 32-bit versions. Ubuntu server 8.04 and 9.04 both have 64-bit versions as well, but you'll need to download the ISO images from http://ubuntu.com to acquire them. That folds back into the first few pages of the Installation chapter, since you have to "get ubuntu" before installing it. If this were a desktop installation, I probably wouldn't pay too much attention to the installation chapter, assuming I wasn't going to do anything fancy. Since this is a server though, you might (as I did) want to read through it, with an eye on any "gotchas" you'll run into, such as setting up server roles, during the install process. Even going through just this chapter, I got the impression that the book is geared for the newbie (or wannabe) Linux server administrator. If you have some experience in the Linux server (or just the server) admin arena, the challenge for you might only be getting up to speed with Ubuntu's tips and tricks. Although the TOC isn't set up this way, the book actually does seem to be divided into major parts. Chapters 1 through 4 appear to be dedicated to the installation and and set up of the basic server. Yes, you are asked to select a role during the installation process, but before you get that far, it wouldn't hurt to take a look at Chapter 5, since it discusses the details of Ubuntu server roles. Then return to Chapter 1 and see about the actual installation process. If you consider server roles a major "part", all that's contained in chapter 5. The rest of the book (Chapters 6 through 12) seems to be the server administration section, with chapters for security, backups, monitoring, virtualization, and so on. Chapter 13 covers how to get help from paid support, forums, mailing lists, and so forth. In addition to the standard edition of this book, there's a Barnes and Noble special edition that offers Chapter 14 "Basic Linux Administration", as well as an Appendix with a collection of "tips and tricks". The additional content is more "generic" Linux server and not Ubuntu-centric by any means. If you are indeed a Linux server admin newbie, this special edition might be a way for you to get the biggest bang for your buck. The quality of the writing and information seem on par with the desktop Ubuntu book, and while I welcome an "Official" book dedicated to the Ubuntu server, don't expect to become an expert by the last page. This book will get you started on the path of the server admin, but content that's contained in single chapters in the Rankin/Hill book, is available in much more detail in whole books and other resources (DNS and BIND, for example). Don't imagine that a chapter on backups and a chapter on recovery gives you everything you need to know, if you're serious about all this. If you use this book and the discs it contains, to set up your own Ubuntu server, for work or for fun, realize that it's only the beginning.

Monday, August 17, 2009

Book Review: Head First Networking

Authors: Al Anderson and Ryan Benedetti Format: Paperback, 536 pages Publisher: O'Reilly Media, Inc. (June 4, 2009) ISBN-10: 0596521553 ISBN-13: 978-0596521554 Head First Networking, eh? I'm familiar with the Head First series, having reviewed a number of such books before. Head First books are generally successful at teaching a technical topic to a moderately to severely distractable person. I was curious how teaching networking would fit the bill, particularly since "networking" as a technology, is so vast. Head First books tend to be beginners books, so I wasn't expecting a huge amount of detail or advanced knowledge. The typical audience for this series is late high school/early college, so I thought at best, the content would more or less map to CompTIA's Network+ certification. The authors both have "day jobs" at Salish Kootenai College, but I was surprised to discover only one of them currently works in IT. Al Anderson is the Director of Academic IT Services at the college, but Ryan Benedetti teaches Liberal Arts. I suppose one was responsible for the technical content, and the other was responsible for knowing how to write. That's just a guess, though. Actually, Benedetti was Department Head for an IT group in a previous life, according to his bio, so he does indeed know that side of the street. In the Who is this book for? section, I was surprised to see the initials "CCNA" even mentioned. Apparently, one of the goals of the book is to be a resource for students who have earning Cisco's CCNA certification as a goal. So much for my Network+ assumption. The Who should probably back away from this book? portion, does say that people who already have their CCNA or CCNP need not bother with this text, which makes sense. Like all Head First books, this one includes made up scenarios that the reader has to investigate and "solve", using the technologies featured in the book. In a programming book, and especially languages like Python or Ruby, not much is required to participate in the exercises, besides a computer that has those programs installed (and Linux has them on board by default). Having all the equipment you'd need to network even a small business would cost quite a chunk of change. The starter problem in the book's first chapter requires the reader to work on networking issues for "Coconut Airways". The first problem is the "nest of snakes in the server closet" issue (and if you've ever worked in IT at all, you know what I mean), so not much of a cash outlay at the onset. The CAT 5 cable and RJ-45 connectors seemed logical, but I was surprised to see that the authors tossed in Coaxial cable problems and solutions. I'm not sure if the current Network+ exam still includes Coax cable and BNC connectors, but I seriously doubt any real-life networks still use such antiquated cabling. In fact, CAT 5, while common, isn't the only "CAT" cabling solution a novice network tech would run into. I was beginning to wonder if the book also included Token Ring. Sure enough, it's mentioned in the index, and I was directed to page 473. Arriving on that page, I was further confused and dismayed when I arrived on said-page, only to discover the instructions for installing Wireshark on Mac OS X and Linux (Ubuntu). I did finally locate a diagram of Token Ring topology on page 471, but that technology wasn't mentioned elsewhere in the book, that I could find. I was pleased to see that Windows, Mac, and Linux were all included. After all, they all have to be networked. Certainly Ubuntu is the most commonly used Linux distro currently available (sorry Red Hat and SUSE), so it would make sense to include it for an audience that probably has limited financial means. Speaking of finances, I ran across a price list for Cisco IOS simulators, which seemed a tad advanced for a beginner's networking book. Cisco IOS commands are quite arcane, and usually basic networking is a prerequisite for even considering entering the Cisco realm. Of course, I found this in the appendix dedicated to "leftovers", or the things the book didn't really cover. A fair amount of the book covered the physical nature of networking, but packet analysis, routing (at least the concepts, if not the practice), and DHCP are also found between the covers. DNS is left for the appendix section, and even then, all that's presented is how to install BIND on Windows, Mac, and Linux. Kind of pointless, unless you teach the reader what to do with it after it's installed. Even for a ground-level beginner's book, I was a little disappointed. Too much space seemed to be dedicated to obsolete networking technologies and equipment. There were a few errors (such as the aforementioned page numbering) that I thought the editors should have caught (although that's what errata is for). All in all, this book will give the student a basic foundation in networking, but the reader will still need to pick up some additional materials and get their hands dirty making cables and networking computers, before it'll really mean anything.

Sunday, August 9, 2009

Python Essential Reference, 4th Edition (Developer's Library)

Author: David M. Beazley Format: Paperback, 744 pages Publisher: Addison-Wesley Professional; 4th edition (July 19, 2009) ISBN-10: 0672329786 ISBN-13: 978-0672329784 The key feature of this edition of the reference guide, is the presence of both Python 2.6 and 3.0. If you're savvy enough to be reading a review about a Python reference text, you know that Python 3.0 breaks backwards compatibility. This is a big deal in terms of how Beazley chose to update his book. To quote, "...I have chosen to omit features of Python 2 that have been removed from Python 3". Beazley also doesn't include those features in Python 3 that haven't been back-ported. This approach is the author's attempt to make the book equally serve programmers using 2.x vs. 3.0. Not that this is the only update the text has to offer. Beazley includes Python's newer features, particularly related to functional and meta-programming, resulting in the expansion of the chapters on functions and object-oriented programming, covering, for example, coroutines, decorators, and generators. The library chapters have also been updated to include modern Python modules, and the code examples and fragments reflect these upgrades. The book doesn't reinvent the wheel (just about a ton of documentation on Python already exists), but the advantage of this book is its organization, and the fact that all the data is located in the pages between the book's two covers. Keep in mind, that this isn't a tutorial, but a reference guide. While an experienced programmer could probably learn how to program in Python from this book, someone just learning programming probably could not. Chapter 1 is a self contained Python tutorial, but it's less than 20 pages long, and meant to bring an experienced programmer who's not experienced with Python up to speed. There are plenty of other good books on the market that teach Python, such as Practical Programming: An Introduction to Computer Science Using Python and Programming in Python 3 (depending on your perspective and requirements), so don't rely on Beazley's book to teach you Python from scratch. Actually, one of the few disadvantages of a hard copy book, is that it's not searchable the way the web is searchable. That said, you can still reasonably expect to hone in on what you're looking for, thanks to the excellent organization of the book. You do however, have to depend on the TOC and index. The only appendix in the book is Python 3. As appendices go, it's not too long, at just under 20 pages. It starts out with the $64,000 question: "Who Should Be Using Python 3?" Some Python programmers might be asking questions like, "if it ain't broke, why did you fix it?" With documentation still a bit lacking for Python 3, and major Python libraries and frameworks not yet ported to the latest version, using Python 3 might seem more of a "broken" than a "fix". While these issues are likely to be remedied with the passage of time, is there a justifiable reason to use Python 3 now? According to the author, in its current state, Python 3 is suitable only for experimental use by veteran programmers. For stability and usability, Beazley recommends sticking with Python 2.x in production environments. While the main body of the book attempts to blend the features that are workable in both versions, the appendix lists those features that are only supported in Python 3. This is just a brief introduction to Python 3. For more details, see Programming in Python 3. The ultimate strength of this book isn't just what's been updated, but what has stayed the same. Beazley writes and maintains a really great Python reference. The reviews for the 3rd edition are off the charts, and there's no reason to believe that the current edition won't garner the same accolades. Programmers who are heavily into Python or are trying to learn, will find themselves thumbing through this text often, to put their fingers on this particular detail or that. Time to put away your dog eared copy of the 3rd edition. The new replacement is here.

Friday, August 7, 2009

Agile Project Management: Creating Innovative Products

Author: Jim Highsmith Format: Paperback, 432 pages Publisher: Addison-Wesley Professional; 2nd edition (July 20, 2009) ISBN-10: 0321658396 ISBN-13: 978-0321658395 I'm at a slight disadvantage in not having read or reviewed the first edition of this book. Based on the reviews of the first edition though, it seems to have been very successful with its readership. This second edition is touted to have been updated with newer techniques for larger projects. I can only imagine that was some of the feedback from people who liked the previous incarnation, but wanted to apply it to broader contexts. We'll see how this edition presents to the first time reader. This book is part of the publisher's Agile Software Development Series. That means, while this book can stand on its own, it is part of a larger body of information regarding agile development in general. The target of this book, is the application of agile development to product development. That would seem sort of like a "duh", since the idea of the agile process in general, is to become more effective at developing applications as products. I imagine however, that this book is specific to the "nuts-and-bolts" of Agile in the real-world environment, as opposed to pure "theory". There doesn't seem to be a way to read or review this book without mentioning the connection to the Agile Alliance. Author Jim Highsmith "is a founding member of the Agile Alliance, co-author of the Agile Manifesto, and director of the Agile Project Management Advisory Service for the Cutter Consortium", according to his bio on the book's back cover. Like most technical books, the author has leveraged his "day job" heavily to produce the book now sitting beside my keyboard as I create this review. In fact, this "leveraging" has been infused into virtually every part of Highsmith's text. My first piece of advice is "hands off" this book, if you don't have the faintest idea about software development in a production environment. Maybe I'm being too harsh, but if you are the casually curious sort, who thinks it would be "cool" to learn about Agile, you may find yourself in way over your head, if you tackle this book cold. I can see Highsmith's text being more aimed at the development team at my day job, since portions of this book remind me of conversations I've had with some of the programmers there. This book is best used by an individual or group, that has a business need to develop or enhance an Agile process in a production environment (and if, at this point, you need to ask what Agile Software Development is, take some time, do some research, and come back when you're ready). Despite the nuts-and-bolts promo, Chapter 1 does start out at a high level, explaining concept and process. The Agile Alliance and Agile Manifesto are referenced heavily, as are some practical business examples. Agile is presented both as a process and as a movement in this chapter, and the reader who is part developer and part business manager will have the greatest ability to benefit from the material. The book operates like a set of building blocks, constructing the structure of Agile, one chapter at a time. Don't look for a quick fix or speedy reference guide here. This book is meant to be read cover-to-cover, consumed like a multi-course meal. Nothing can be skipped, particularly if you develop software products and are serious about integrating Agile into your world. Each chapter ends with a "Final Thoughts" section, summarizing the content. The content itself is hardly what you'd call "entertaining" (some books are written that way), so I recommend not only a strong interest in this topic, but reading it while your mind is alert, or at least fully caffeinated. On the other hand, each chapter begins with a hypothetical conversation between two project managers, so Highsmith does provide a more personal element for your consideration. The "Principles to Practices" section in Chapter 4 got my attention, because that's what this book is all about, and not just regarding the development of a software product. Agile is as much about people and teams as it is about what they create. In fact, it's all about the flow of information and activity between the different groups and stakeholders in the process. I was very appreciative of how the book took time to describe and illuminate the interaction between the products, the players, and the principles of Agile development. While on the one hand, I experience this book as well rounded, on the other hand, and I've mentioned this before, it has its biases. That isn't bad, but it does mean that not everything Agile is included. Agile Project Management (APM) is greatly emphasized as a framework, but that means other Agile frameworks aren't available in this text. The book teaches its own flavor and brand, rather than a truly generalist approach. This particular "brand" may or may not work for any given reader's particular business needs or organization. Of course, that's like saying, Microsoft Windows may not be a good fit for a particular company's business model (and it may not). Biasing content isn't to be avoided. Just be mindful that you're looking at only one neighborhood in a larger community. I suppose that's why this book is part of the Agile Software Development Series. The prudent reader will want to sample other series items. Some months ago, I reviewed O'Reilly's The Art of Lean Software Development which, if you don't feel up to Highsmith's book at the moment, might be more appropriate as an introduction of both theory and practice. That said, project and development team managers should be well-positioned to take advantage of the wisdom and experience presented in Agile Project Management, as a way of garnering a better understanding of Agile methodologies in project management.

Tuesday, August 4, 2009

The Secret of Obama's Popularity

Despite the fact that his popularity in the polls has dropped a bit lately, Barack Obama is still just about everyone's favorite President. In fact, he seems to remain amazingly popular no matter what he does. I mean it. I think the guy could say he hates babies, and burn the American flag on the front lawn of the White House, and the majority of Americans (and certainly the Muslim world in the case of the latter example) would still say he's great. What's this guy's secret? How does he get everyone to love him, regardless of his actions? Let's take a brief look at some of the events that I, in my humble opinion, think should make most reasonable American citizens (regardless of their politics) cringe. The most recent event that caught my attention, happened yesterday morning (or at least that's when I read it in the news), when two top White House officials stated that it was likely the President would have to raise taxes for the middle-class, to pay for his health care reforms. President Obama has since gone on record as saying he will not raise taxes for people making $250,000 or less a year (I consider myself middle class, but I don't make nearly that much), but of course, the rich are still up for grabs. I suppose (cynic that I am) that Obama could have had his officials release their "information" as a trial balloon to see how people would take it, then when the public balked, he went to the media and repudiated that statement. In fact, an Associated Press analysis said that raising taxes on the middle class would "be blow to his (Obama's) re-election chances in 2012 and would prove noxious to his party in the 2010 midterm elections". But people still want health care reform; they just don't want to pay for it (as if we won't in the end, anyway). Not too long ago, Obama gave an extremely attention getting speech in Cairo to the "Muslim world" in an attempt to repair U.S. relations with Islam. I suppose the assumption is that Obama's immediate predecessor, George W. Bush, deeply insulted Islam, widening the gulf between "us and them" (never mind that Islamic terrorism has been going on much, much longer than the wars in Iraq and Afghanistan). In President Obama's speech, he not only "made nice" with Muslims, he seemed to completely identify with them (which is rather odd for a guy who supposedly is a Christian). According to Washington Post commentator Frank J. Gaffney Jr, "Mr. Obama referred four times in his speech to 'the Holy Koran'," which is a reference typically used only by Muslims. Obama also said "I have known Islam on three continents before coming to the region where it was first revealed." Caffney said the term "revealed" "is a depiction Muslims use to reflect their conviction that the Koran is the word of God, as dictated to Muhammad". After invoking the names of the Prophets Moses, Jesus, and Muhammad, Obama used the phrase "peace be upon them", which is only used by Muslims to bless deceased holy men. The American (and Christian) President seems to be at least bending over backwards, if not deliberately adopting a Muslim world view to forge an alliance with the Islamic world. While in and of itself, fence mending isn't a bad thing to do, should the American President surrender his stated national and religious identity to accomplish this task? Would Mr. Obama refer to the "Holy Torah" and say "Blessed is He" after invoking Jacob or Moses when talking to Jews in Israel? Speaking of which, the Cairo speech didn't do anything to score points with Israeli columnist Naomi Ragen in her June 10th commentary. She states that, beyond forging new bonds with Islam, terrorist organization Hamas (yes, the same Hamas that holds the people of Gaza in a concentration camp of terror, and who has retained IDF soldier Gilad Shalit as a captive for over three years now) has gained new hope for their cause (the destruction of the State of Israel and the expulsion or murder of all Israeli Jews) by the Obama speech in Egypt. Of course, President Obama's stance on Israel's continuing to build settlements in their own country hasn't exactly endeared him to our long-time ally, and the only democratic nation in that region. Washington Post columnist Charles Krauthammer states that Obama claims "that American foreign policy be conducted with modesty and humility", yet the President seems to experience no hesitation in dictating conditions and terms about the internal matters of only one country on the planet: Israel. Doesn't that seem like the President is talking out of both sides of his mouth? On a somewhat lighter note, Mr. Obama had a small social gathering at the White House last week. With Vice-President Biden, Obama welcomed "black scholar" (sorry, but that's how the news media continually refers to him) Henry Louis Gates Jr. and Cambridge Police Officer James Crowley over for what is sometimes (but incorrectly, according to Obama) referred to as the beer summit. This was Obama's response to his criticism of Officer Crowley's actions in arresting Gates as "stupid". Numerous police agencies immediately objected to Mr. Obama's comments and demanded an apology. Other Cambridge officers, including an African-American officer who was at the scene of the arrest, supported Crowley and said that he acted in a completely appropriate and legal manner. The entire event has been used as fodder for various political cartoons and late night show comedians. Yet, has the President's reputation and credibility been damaged all that much? Iranian President Mahmoud Ahmadinejad has certainly gotten into some hot water after the recent elections in that country, and though protests continue, Ahmadinejad has been endorsed by Iran's Supreme Leader. According to one political cartoonist, it seems amazing that one President should be completely rejected for his unpopular behavior while another is wholeheartedly rewarded. What is Barack Obama's secret? How does he always come out smelling like a rose (yes, I'm exaggerating, but not by that much)? Why does it seem that in the eyes of the majority of Americans, this guy can do no wrong? Actually, the answer is simple. It's because of George W. Bush. By the time Bush left office, he was one of the most loathed Presidents who had ever served his nation. I remember that his one and only public appearance in Canada, after leaving office, was a dismal failure. People were standing in line to insult, scream at, and generally spew hate and evil in his direction. Bush has wisely kept a low profile since then and probably should for the foreseeable future. Bush was so disliked by the end of his second term, even by much of the GOP, that you probably could have gotten Jack the Ripper, Hannibal Lecter, or Lizzie Borden elected to replace him, if that was the only way to get rid of Bush (although Hillary Clinton apparently wasn't an option). Ok, that's not exactly fair. Obviously, people voted for Obama in overwhelming numbers for other reasons than he was just a warm body and looked cuter than Bush. He promised the American people something they desperately wanted after eight years of the Bush administration. He promised change. During Obama's campaign, I was trying to figure out exactly what sort of change he was offering. It never seemed very clear to me what his platform was, except that whatever Bush represented, Obama would do the opposite. That obviously seemed like a good idea at the time, but ended up (in my opinion) being the equivalent of a chicken in every pot and two cars in every garage. This isn't exactly a new trick. Politicians have been getting elected by promising people everything they want, probably since their has been such a thing as politics (which means, a very long time). Everybody wants to have all of their desires fulfilled, especially if somebody else says they'll do all the work and that they'll pay all the bills. That brings us right back to the present day. Obama was elected largely because he was going to be different than Bush and pretty much different than the Washington political machine that we've all become used to (party lines notwithstanding). That sounds good. I'd like to see a change from the status quo as well. It would be refreshing to have a President who really represented the people for a change, and not his (or her) political party (and personal agenda). Sadly, I don't think we have that kind of President. I'm not entirely convinced he always serves his party's interests (though most of the time, he does), but I am sure he serves his own internal agenda a great deal of the time. Messiah Obama has promised the country and the world that he would give them everything they want. He's an adept salesman and has managed to convince everyone that he could really pull it off. While reality is slowly dawning on America, the vast majority still see him as the greatest thing since the invention of the iPod. But what happens when someone like me does (successfully) criticize the President? What happens when someone questions something Obama has done that makes his supporters pause and register concern? They come back with "He's a lot better than Bush". That's the secret. That's the key to Obama's success. No matter what he does or how much of our money (which neither the national coffers nor we as citizens have) Obama spends, the response is "he's better than Bush". There still remains such a national "sigh of relief" that "Dubya" is no longer in the White House, that we tend to gloss over whatever "issues" Obama may have. We tend to see Obama through the lens of the Bush years, and that softens the view, obliterating the harsh wrinkles and scars, letting us see only the Obama beauty and charm. Reality check. Bush is gone. We can only hammer on what Obama inherited from the previous administration for so long. Bush inherited his mess from Clinton, and Clinton inherited his mess from Daddy Bush before him. The beat goes on. At some point, Obama has to be appraised as an objective person and President, independent of who or what came before him. Obama's actions are his own and need to be seen in that light, not in the comfortable glow of "Bush is finally gone". Given the American public's ADHD-like attention span, I'm surprised that the use of the Bush legacy has endured to this point. Love him or hate him, just look at Barack Obama for who and what he is, not who you think he's better than. Making him "the greatest President that ever lived", just because the guy who came before him was "the President you love to hate" doesn't cut it. It's not fair to the nation and it's not even fair to Obama. I was never a Bush fan. I'm a conservative, but I don't care about party politics. From what I can see, the two major political parties in this country are pretty much the same on the level of their process. Only a few superficial details are changed around. I look at the decisions Obama makes, the words he says, and how it all seems to add up. I don't think about Bush when I'm thinking about Obama. When I consider Obama's policies, it's compared to what I understand as "common sense" (if such a thing exists). All I'm saying is, don't love Obama because you hated Bush. Look at what Obama is doing, the result (not the promises...promises are worth the air they're printed on), and what it means. Does it really make sense for the President to plummet this country into the largest deficit ever, just to give the people what makes them feel good? Yes, fixing health care is necessary and it would be wonderful, but (how can I say this strongly enough?) SOMEBODY HAS TO PAY FOR IT! Seen in that perspective and in the light of what I've been trying to say, is Barack Obama really that terrific?