Building Scalable Web Sites by Cal Henderson

I have about three books that I am reading on and off but have been unable to focus on any of them for any length of time. Tom The Architect mentioned a book to me a few months ago called Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications by Cal Henderson, engineering manager for the Flickr photo service, a service that I have used extensively since being turned on to it by, you guessed it, Tom The Architect.

This was the first book in a long time that I couldn’t put down, mainly because everything in the book is geared towards teaching you about how to create really, really, big web sites and the issues involved in scaling them. It was also quite intriguing because the book covers tools you use all of the time, like PHP and MySQL that are hard to find really good books about how they scale.

Cal covers a lot of material in this book, from layering your web application architecture, to creating an environment for developers to work in, which includes source control, issue tracking, coding standards and the like. This section was quite encouraging to me, as we have implemented almost everything that Cal mentions in the book (sometimes its nice to get some external validation). Cal then goes on to talk about internationalization and localization, data integrity and security, using email as an alternate entrance into your application, and how to build remote services.

All of this was great, but the next few chapters I found really valuable. Cal talks about identifying bottlenecks in your web application, scaling applications such as MySQL (where he covers quite a few replication strategies) and scaling storage. He also covers measurements, statistics and monitoring. Finally, Cal talks about adding API’s into your application to support mobile applications, web services, etc.

Cal references quite a few tools that are freely available in these discussions – tools that I didn’t even know were out there, that you can use to simplify your monitoring environment. I was most intrigued with the Spread Toolkit, a self described “a unified message bus for distributed applications” that allows you to unify logging across your applications. Anyone who has tried to debug an issue on a site that has more than one box would appreciate knowing about this tool.

This is the first book that I’ve read in a long time, technology wise, that hit the sweet spot between talking about real issues that I have been facing and possible solutions. I highly recommend grabbing this book and in the very least just keeping it on your book shelf for future reference. This is one thats going to be a constant companion for me in the coming months.

Movies: Rocky Balboa

Yesterday the family went to the movies. Normally the way this works is that Jonna and I will go see one movie, and the three kids will go to another. Its rare these days that we all want to see the same movie.

Yesterday was different. The family wanted to see Night at the Museum, the new Ben Stiller film. I had decided that I was going to break down and see Rocky Balboa, the newest and final installment in the Rocky series.

Now, when I first heard that there was going to be a new Rocky movie, I had decided pretty firmly that I was not going to go see it – I would wait for video. But as I continued to see the trailers leading up to its Christmas release, the urge to see another Rocky movie (which overall is probably my favorite series of movies of all time next to the Godfather) gradually took over – to the point where I decided to go see Rocky by myself while the rest of the family went to see Museum.

I approached the movie with quite a bit of trepidation. Rocky 5 was a huge disappointment – not the best way to end a series of movies like Rocky. But as I sat down in the theater and the movie started, I began feeling that same feeling of excitement that has accompanied every Rocky movie I’ve seen since my first viewing of the first Rocky movie back in the late 70’s.

I thought the movie was excellent. While the tag line for the movie is “It’s not over until its over”, a great little quote from Rocky during a conversation with his son sums up the movie quite well:

But it ain’t about how hard you hit… it’s about how hard you can get hit, and keep moving forward… how much you can take, and keep moving forward. If you know what you’re worth, go out and get what you’re worth. But you gotta be willing to take the hit.

This quote basically sums up what you get out of every Rocky movie. That inspiring life lesson about going one more round – getting up one more time in the face of adversity. Rocky Balboa wound up being just as inspiring as the rest of the movies – and finally puts a fitting end to the tale of Rocky Balboa – something that Rocky V failed miserably at doing. While you walked out of Rocky V feeling down and depressed, Rocky Balboa has you walking out feeling that the world has been set right in Philadelphia.

Now, on the flip side, there were still some cheesy scenes, but those happen in each of the movies. But overall, it was a great experience. I think the only real disappointment for me is that the rest of the family doesn’t share the same soft spot in their hearts for the characters in this series as I do, so I walked out feeling great with no one to share the experience with.

I do think though, that this is definitely the way the series should have ended. It was great to see the series end on a high note. I give Rocky Balboa 4 out of 5 stars.

The Art of Deception by Kevin Mitnick

Over the last few months I’ve started a lot of books. There is so much interesting reading out there that between the usual blogs that I read, the effort I’m spending learning Ruby on Rails, and the interesting books I run across in my usual ritual of trolling book stores, I’m finding it hard to focus on a book from start to finish. I think the only ones I’ve been able to read completely over the past few months have been Fight Club, Practical Subversion, Second Edition (reviewed early last week), and todays pick, The Art of Deception: Controlling the Human Element of Security by Kevin D. Mitnick and William L. Simon.

It is rare that a book conjures up such paranoia in me. The book is described on the back cover like this:

The worlds most celebrated hacker delivers the lowdown on today’s most serious security weakness – Human Nature.

Boy does he ever.

When one thinks of computer security, one normally thinks about things like closing unnecessary services / ports on your systems, using strong passwords, and things like that. All things of a technical nature that are necessary, but aren’t truly secure because of the people that surround the technology.

Mitnick and Simon do an excellent job in walking you through extremely realistic social engineering scenarios and make you realize that the basic pieces of human nature, like sincerely wanting to help others, fear of crossing someone in an authority position, or just plain carelessness can open up your systems to security breaches no matter how well of a handle you have on the technology aspect of security in your company.

Each scenario is followed by a section called “Analyzing the Con”, where they explain, in detail, the factors that contribute to the scenario being played out and your systems being compromised. There is a lot of interesting information in these analyses that you may not have thought of before.

The last chapter of the book gives you approximately 70 pages relating recommended corporate information security policies. This chapter was excellent, explaining the different policies you can enact and, more importantly – and something you don’t get very often from corporate security – the reasons WHY they are important to implement.

For me, this book was a total eye opener. It is interesting to think about the amount of information that can be “leaked” that seems unimportant at the time one can be in a conversation that can be pieced together later on for the purposes of compromising a computer system or a business.

If nothing else, this book will definitely make you think about the next conversation you have with someone. It shows you the dark side of human nature, where people can seem completely sincere in their interactions with you but deep down have only one objective. To get information. It also illustrates the effort in which people can put forth to put together a con with so much detail, over such a length of time, that the individual interactions seem innocuous, but in the end compromise your systems security.

This book is a must read for everyone even peripherally related to IT. Let me rephrase that. This book is a must read for everyone who has even remote contact with people. Its extremely informative and engaging – so much so that I could hardly put it down.

I’ve already recommended this book to numerous people at work and will be putting it on the required reading list for this year for my teams. Its an area of computer security that is often overlooked and I’m glad to see it covered in such detail – and in a very non-technical way. Anyone can relate to the content in this book.

Do yourself a favor. Take the time pick this one up and read the whole thing. I can guarantee, no matter what your role, you will get something useful out of this book.

Paul Stanley: Live To Win

Its been 9 years since anything good has come from the KISS camp that wasn’t a rehash of the days before they took their make up off. The last KISS release of original material was Psycho Circus back in 1998, which wasn’t necessarily their best effort.

In 2004 Gene Simmons released Asshole his first solo album since 1978, which is hardly something I would recommend you to buy. However, being one of those goofy KISS fans that have to buy anything new from the band, I just had to buy it for some reason, a decision I regretted soon after making the purchase.

This year, Paul Stanley has released his first solo album since 1978, called Live to Win.

This album is one I’ve actually enjoyed listening to. Its quite obvious when listening to this album where most of the song writing skills within KISS actually reside. I found the songs to be strong and catchy. Its been a while since I’ve bought an album that I’ve been able to listen to all the way through and then start over again.

Some of you might have heard the title track of the album without even knowing it, as it appears in the South Park World of Warcraft episode during the scene where the kids are practicing for hours on end killing boars to up their strength in order to confront the character in the game that is killing everyone within the game.

I felt the rest of the songs were pretty strong on the album as well. This is a good effort by Stanley, and its nice to hear his voice on something new for a change, rather than rehashes of KISS’s 1970’s catalog.

I have thought for a while that it is about time that KISS let go of the make up and old catalog performances that strike one as something to just fill their coffers and get out and do something new. Stanley has made a really good effort in putting some new material out there and this is one KISS fan who actually appreciates the effort and has enjoyed listening to something fresh and new from the KISS front man.

Its pretty obvious. If the band were to break up and stop putting out “Best Of” CD’s, Paul would be the one that still has a career when the dust settles.

Off The Rails – The Review

I just finished reading Off The Rails by Rudy Sarzo this last week. Overall, I would say I liked it.

I’ve been a fan of Randy Rhoads since first hearing the Blizzard of Ozz and Diary of Madman albums in 1983 or so. He was a unique player for his time and these two albums are of the sort that they sound just as fresh today as they did when they were released.

As a Rhoads fan, I’ve always picked up any and all information I could get on him. Every guitar magazine he’s been in, I probably have or have had it. Each article or magazine never really gave you enough, as a fan, as to what Randy was like.

Off The Rails was written using Sarzo’s daily diaries that he had kept during the Blizzard of Ozz and Diary tours between 1981 and 1982 (at the request of his accountant) and gives you an interesting glimpse of what was going on in the band at the time. While this book is probably the most detailed about Rhoads as a person, the book for me seemed to focus more on how screwed up Ozzy and Sharon were during this time, which is actually the stuff I wound up getting more interested in as the book went on.

After reading this book, you will be amazed that Osbourne has gotten to where he did, and that he actually produced the music he did over the years. Rumors have always abounded about his alcoholism and wild antics, but Sarzo gives you a very detailed glimpse into the amount of abuse Ozzy exposed himself and everyone around him to during the early days of his solo career.

Most interesting to me was the circumstances around the planned live album that became Speak of the Devil and Randy’s resistance to doing the album. Given where the band was at the time, with two albums of solo material, its easy to understand that Randy did not want to do a live album of Sabbath material, but the most telling is how Ozzy reacted and treated Randy when he refused to do the album initially.

Over the last twenty some years, we’ve heard a lot of positive things about the relationship between Ozzy and Randy. This book, if nothing else, gives you a glimpse of the “real life” circumstances on the tour and paints a much less rosy picture of the time that the band spent on the road.

That is not to say at all that Off The Rails is negative. Sarzo manages to detail all of the goings on during this time without giving the reader the feeling of reading a “tell-all” book meant to smear the participants for the sake of making money. Rudy does a great job of reporting what happened in a very balanced way that manages to get the reader to close the book and walk away thinking.

Bottom line, the book is excellent. Sarzo does a good job of reporting the daily goings on in the tour, giving you a glimpse into the life of guitar hero, and doing it in such a way that it does not feel exploitative in the least. I would definitely recommend this book to those who are Rhoads fans, or even those who just want a third party addition to the biographies already out there on Ozzy and his crew.

Movies: Texas Chainsaw Massacre: The Beginning

Kelsi, Jonna and I went to see Texas Chainsaw Massacre: The Beginning today. Kelsi had never seen the original, so this was a brand new experience for her. Her choices were to either see this with Jonna and I, or to attend a fine viewing of Employee of the Month (the Dane Cook movie) with the boys. She picked this one, and paid dearly.

Despite the pretty bad ratings the movie is getting on Rotten Tomatoes, I actually enjoyed it. I’m sure Kelsi would have too, if she could have kept her head out from under my jacket, which I generously loaned to her during one of the first “hard to watch” scenes in the movie.

This time around, you see the origin of the Hewitt family, along with the first group of kids they wound up killing. R. Lee Ermey reprises his role as “Sherriff Hoyt” and is, once again, excellent. That “Full Metal Jacket” feel to his character fits perfectly into this story. Kudos to the casting folks for getting him to play this part.

I enjoyed this movie much more than the Exorcist prequel that came out a while back. There was obviously some thought that went into this one and it winds up complementing 2003 remake very well. The thing I enjoyed the most is that the filmmakers successfully answered the biggest questions I had about the original movie ‘lo those many years ago:

  • Is Sheriff Hoyt really a sheriff?
  • How did he lose his front teeth?
  • What was Leatherface’s career before becoming the most feared serial killer in movie history?
  • How did Uncle Monty lose his legs?
  • What do these guys DO with the bodies of their victims (aside from wear their faces)?

All of these questions and more are answered in what amounts to 84 minutes of absolute gore. If you get queasy at graphic violence, you might want to sit this one out. I found this one to be actually less gory than the 2003 remake of the original, but it’s still pretty hard core and there were a few areas of the movie which made me uncomfortable. When it comes down to it, as I get older I find it harder and harder to watch slasher films. None the less, it did what it set out to do and I thought it was a good way to spend an hour and a half or so on my day off.

More on Mind Mapping and MindManager

I’ve been playing around with MindJet MindManager over the last week or so and I have to say, overall I really like it. Mindmapping provides a great mechanism in getting your thoughts down on paper and establishing relationships between different concepts, especially for someone who suffers from “chronic editor” syndrome such as myself.

I’d love to post some examples of some of the things that I have been working on, but the only real “work neutral” mindmap I have available is the one I previously posted. Some really good examples can be found in the mindmaps that Cote produces. These are some really good examples of the complexity that can be represented using this technique.

I had first read about mindmapping quite a few years ago in the book Quantum Learning: Unleashing the Genius in You by Bobbi Deporter (with Mike Hernacki). Deporter and Hernacki describe the Mind Mapping technique as “a whole brain technique using visual images and other graphic devices to form impressions”. The key piece of this, for me, has been the connection and breakdown of different concepts into sub concepts. The graphical nature of a mind-map, coupled with the distilling of the key concepts and relationships and visual representation, have allowed me to retain much more information while taking notes over the past week than I have previously experienced.

I had attempted mind-mapping when reading Quantum Learning, but the extremely manual process (actual drawing) turned me off immediately. For me, it just seemed like too much work.

That’s where Mind Manager comes in. With a few natural keystrokes you can string all of these concepts together, attach images or URL’s to the key concepts for further reference material, and flag concepts as priorities or something to pay attention to. The additional benefit of a tool to do this stuff is the ability to dynamically refactor your mind maps without having to throw away your piece of paper and recopy everything. The refactoring of these concepts has been something that I have been doing quite a bit.

The folks at MindJet were nice enough to give me complimentary licenses for both the Macintosh and Windows environments. Since buying a Mac in June, I have decided to use it exclusively at home in order to learn as much about the environment as possible (and, of course, to justify the investment). So, I have had the opportunity to work on a few mind maps across the two environments. There is no ‘import’ or conversion necessary. I store the maps on my thumb drive, work on them at home, take them to work, and they just load and are ready for continued editing on the Windows platform.

There are some differences between the two versions of the product. The Windows version has quite a bit of Microsoft Office integration. You can export your mind maps to Visio, Word, Excel and even Microsoft Project, in addition to JPG and PNG image formats and PDF. Both versions allow you to add task information to map nodes, including flagging nodes as resources and flagging them as quarter, half, three quarters done, as well as completed. I have not experimented with taking these types of mind maps and exporting them to project, but I’m assuming these move along with them (I can mess with it later and validate this).

The Macintosh version has a more limited set of export formats. JPG and PNG are supported along with multiple flavors of RTF (Word, TextEdit) and PDF.

For me, the use of this tool over the past week has been a really positive experience – on the Macintosh. The Windows version has some pretty major performance issues that are being talked about in the support forums as well as being addressed specifically by the Vice President of Engineering on the companies blog.

The Windows machine that I am running MindManager on has 2G of memory and 80G of hard drive space. When docked, I run at a pretty high screen resolution (1280×1024 – maybe even higher). Docked, the software runs well enough to do the work I need to do as another connected concept hits me on some of the things I am working on.

The strange part is that as soon as I undock and run in ‘laptop’ mode at the standard 1024×768 resolution, performance drops to the point where the software isn’t even usable. I’m not sure why this is the case, but at a seminar the other day with the Windows laptop, I was unable to take notes using the software whatsoever, as the software began exhibiting the symptoms mentioned in the above links.

Overall, the technique of mind mapping is proving extremely helpful to me. As mentioned earlier, using the technique has increased the retention that I am experiencing while thinking through problems. The MindManager software is excellent – on a Mac. The Windows version needs some work to fix some of the performance challenges that I am experiencing.

The price tag for the software is not the cheapest in the world either. A single user license for MindManager 6.0 Pro weighs in at a whopping $349, with the Basic and Macintosh versions available at $229. The question then becomes is the price tag worth the value received from the software. While I’m receiving a ton of value from using the software, the price of a single user license would definitely stop me from even taking the time to try it in the first place. While the company does make trial software available (both a 5 day express trial with no registration required and a 21 day “premium trial” of which the premium is registering with the company), I rarely “do” trials on products in this price range for the fear of getting addicted to them and having to pay for them.

So the real question for me as I use the software further is whether I will buy it. Time will tell. I like to (and see it as an obligation) to support software I find useful with my wallet. The only real guarantee that useful software will continue to be available is if there is a community behind it, or, in the case of commercial software, people actually buy it. Once the “newness” of the software wears off, we’ll see if I continue to see value in the process and whether I keep using the software. At the point that I find it indispensable, I will definitely shell out the money to show my support for the product.

And when that happens, you’ll definitely be the first to know.

Related Links