Books: Nicholas Pileggi’s Wiseguy

Wiseguy Last summer while on vacation I was looking for a book to read. I remembered that the movie Goodfellas was based on a book, but couldn’t remember the name of the book so we stopped at Barnes and Noble to look around.

After an online search in the store, I found it. The book is Wiseguy, by Nicholas Pileggi. It took me about 2 days of on and off reading to finish it and I really enjoyed it.

The book chronicles the life of Henry Hill from childhood and his introduction to the Lucchese crime family, to life as a young adult as part of the “crew”, through his turning Federal informant and his eventual enrollment in the Federal Witness Protection program.

To say that the movie was “based” on the book is stating it a little lightly. The movie basically was the book, with a few characters renamed and combined. It was remarkable to me how closely Scorcese and staff followed the book while making the movie. At certain points I had to look at the cover to make sure I wasn’t reading the script!

Anyone who knows me knows how much I love the movie Goodfellas — its actually one of my favorite “mob” type movies. The book was really fun to read, especially as you start to realize that not much was changed, fact wise, in the making of the movie, aside from the usual collapsing of multiple characters and name changes and small embellishments (“Funny How??”).

Additionally, there is a ton of information on the web on the events and people that the book is based around. I’ve included a few here for those buffs who want to know a little something about the real events and people involved.

This book is really great for those of us who like a little reality dose with their mob movies.

The People of Wiseguy

Related Links

2004 Reading Frenzy – Part II (Music)

Steve Vai Ibanez JEMSince receiving an Ibanez JEM, from my family for my birthday last June, I’ve been trying to learn a little bit more about the guitar (and music in general) and consequently I have picked up a few books related to this subject. The one I enjoyed reading most is the book listed below by David Mead. I’m going to pick up a few more of his books as time goes on.

This is an area that I really struggle with, as I am not that structured of a thinker and get bored (and discouraged on this subject) very easily. I am hoping that the more I read about the subject, the more will sink in to my thick skull at a subconscious level. I’ve also started taking lessons. Now all I have to do is find some regular time during the week to practice …

General Guitar

100 Guitar Tips You Should Have Been Told by David Mead
Practical Pentatonics (Guitar) by Askold Buk – Tiny book, but tons of really good information.

Music Theory

The Complete Idiot’s Guide to Music Theory by Michael Miller (I’m only on Chapter 6 so far, but this is a very uncomfortable distance above my level)

Reference
The Guitar Book by Adam Kadmon
The Guitar Grimoire Scales & Modes by Adam Kadmon
The Guitar Grimoire Series – A Compendium of Guitar Chords and Voicings – by Adam Kadmon
The Exercise Book by Adam Kadmon

If anyone has any other reading recommendations on this subject, please feel free to shoot them over to me.

2003-2004 Reading Frenzy – Part I

Over the last year or so, I’ve been reading quite a bit. I’ve basically had three tracks of reading. The first track has been all management / leadership related. Since I’m in a management job, I figured I should learn the most I could about it. The second track has been technical, mostly centered around version control / software asset management, secure programming, and Python. The third track has been all music related, as I’m trying (once again) to learn the guitar.

Some of the reading that I have been doing from a business / leadership perspective has been very useful and I thought I’d throw these out here in case someone is looking for a good list of leadership material. The best of all of these so far is #1 on the below list. This is such a good book that I have distributed it to my direct reports and had them filter it down the organization. I highly recommend this book for anyone working in a team situation (and who isn’t these days?).

Hopefully this list will help those people who have been floundering around amazon.com looking for some useful books in the thousands now available on the subject.

  1. The Five Dysfunctions of a Team: A Leadership Fable by Patrick Lencioni
  2. Death by Meeting : A Leadership Fable…About Solving the Most Painful Problem in Business by Patrick Lencioni
  3. The Five Temptations of a CEO: A Leadership Fable by Patrick Lencioni
  4. Built to Last : Successful Habits of Visionary Companies (Harper Business Essentials) by Jim Collins and Jerry I. Porras
  5. Good to Great: Why Some Companies Make the Leap… and Others Don’t by Jim Collins
  6. Who Moved My Cheese? An Amazing Way to Deal with Change in Your Work and in Your Life by Spencer Johnson and Ken Blanchard
  7. Fourth Generation Management: The New Business Consciousness by Brian L. Joiner
  8. Demystifying Six Sigma: A Company-Wide Approach to Continuous Improvement by Alan Larson
  9. The One Minute Manager by Spencer Johnson and Ken Blanchard
  10. Gung Ho! Turn On the People in Any Organization by Ken Blanchard
  11. Slack : Getting Past Burnout, Busywork, and the Myth of Total Efficiency by Tom DeMarco

Practical Subversion by Garrett Rooney

Practical SubversionI received an advanced copy of Practical Subversion by Garrett Rooney and read through it over the weekend. Mr. Rooney is a contributor to the Subversion project and has authored the latest book about the software.

Before I actually talk about the book, I think it would be helpful to point out that while I did receive an advanced electronic copy of the book in order to review it (probably due to other postings related to Subversion on this site) I am not being paid to review it. My interests in agreeing to read the book and write about it are solely to point out valuable resources to help people looking to implement Subversion in their environments, not to get paid. As I’ve written before in previous postings, version control and software asset management is an area that I see missing in many corporate software development environments (and worse than that, in many developers skill sets) and an area that I find very important from both a quality and team productivity perspective. My interests lie in highlighting this and pointing out books and tools that help people implement these tools in their environments.

Now with that out of the way, let’s talk about the book. In many respects, this book is a lot like the Pragmatic Programmer series of books. The book starts with some history of source control in general and source control systems like CVS and Perforce. He then gives you a brief history of the Subversion project and then spends the rest of the book walking you through using the tool.

This is a great book for beginners and a good reference for those of us who have used it for a while. The subjects covered include “A Crash Course in Subversion”, which is a 46 or so page detailed description of the Subversion commands with scenarios he walks you through, including setting up a repository, checking out a workarea, branching, merging, switching your workarea to another branch, committing and setting properties on files. There are also chapters on repository administration, repository migration, and advanced Apache integration (a chapter that while I knew most of the things covered, I found a few tidbits I didn’t know and am really glad that someone has finally covered this subject from a Subversion Administrator perspective).

Practical Subversion also has a chapter dedicated to Subversion Best Practices. This chapter outlines some of the recommended best practices for version control in general, but in the context of the Subversion system. It covers subjects such as the use of vendor branches to manage third party source code, using branches, rolling releases, and using test suites to test your code. This is a very good chapter of practical advice to help one manage the concurrent development of software using a source control system.

The section on branching best practices has some good advice but recommends the frequent merging of the trunk over to branches in order to ensure you are developing and testing the change in the context of the work going on in the rest of the project. While this is good advice, it also introduces other problems which aren’t covered. Subversion does not currently have merge tracking support, and in many instances in which you do frequent merges from the trunk to the branch in real life, you will run into conflicts when merging the branch changes back to the trunk where changes appear in both the trunk and the branch. In practical use, we have found that in order to do this effectively, the developer has to keep track of the revisions in his branch that resulted from trunk merges and merge around them when merging back to the trunk in order to effectively implement this best practice. Once the tool supports merge tracking this shouldn’t be an issue and is definitely a practice that should be followed. If you have dedicated staff to keep track of this stuff, this is the best way to do it. Your average developer, however, does not really want to learn enough about the tool to do all of this record keeping and you may hear frequent complaints about the extra work involved when doing frequent merges from the trunk to your development branches in real life.

Chapter 7 of the book cover topics such as integrating Subversion with existing tools, such as the bash shell, emacs and Ant, along with using Subversion on the OS X platform. It also covers other tools available for use with Subversion such as ViewCVS and SVN::Web. Finally plugins for Eclipse and Visual Studio .NET are briefly covered. This is a great addition to the book and something that I wish I had had during my initial planning of my Subversion rollout.

Finally, Chapter 8 covers the use of the Subversion API. This chapter starts off covering the use of the Apache Portable Runtime libraries relevant to Subversion and then covers the client, repository access and file system APIs. This chapter in and of itself is worth the price of admission in my opinion. This chapter is mainly for those who want to take advantage of the application libraries that the Subversion tools are written around and write their own tools around the Subversion tool. The Subversion team has done a great job of documenting the Subversion system as a whole, but the API documentation is sorely lacking and this chapter gives a really good high level overview of the API’s and how to use them.

Overall, I really liked the book. As I said earlier, this book reminded me a lot of “Pragmatic” series of books. It really is “Practical Subversion”, catering to both beginning and advanced users alike. The book will definitely be a great addition to my library and I recommend it for those who want to implement version control quickly in their environments. This book does not replace the Version Control with Subversion book, but it’s a great addition to it.

The only thing missing from this book that would make it completely indispensable is a chapter on setting up an automated build system with Subversion, using tools like CruiseControl. This small thing aside, there really isn’t anything missing from this book to get your development group up and running on Subversion.