Shooter: An Autobiography
I recently finished reading Shooter : The Autobiography of the Top-Ranked Marine Sniper.
The author, Jack Coughlin, is clearly a better sniper than he is a writer. Often this is where autobiographies fall short. Most arent really well written and also lack in subject matter. This account certainly did not lack in subject matter.
Jack takes us on a very interesting journey to discover the inner-workings of the mind of a person who has a very lethal, yet very important, craft. Jack is a killer. Whether you like it or not, Jack’s profession is something that we as a country sanction. Jack kills for his country, and for us. Jack kills enemies on foreign soils, so we dont have to fight them here.
The opening paragraph:
At another time, on another battlefield, my radio call sign had been “Gabriel,” because the archangel and I have a lot in common. Legend says Gabriel’s trumpet will sound the last judgement. I do the same sort of thing with my rifle.
This book starts out with Jack’s experience in Somalia, but focuses primarily on Jack’s time in Iraq, including the march on Baghdad. Also a prevalent theme throughout the book is Jack’s vision of a mobile sniper unit, which comes together in the strangest of circumstances.
I will absolutely recommend this book to anyone. This book is interesting not only because we get a rare look at the psychological effects of this deadly trade, but also because we can see what it takes to be skilled at a particular trade.
Seasons Greetings
I wanted to take a minute and wish everyone a very safe and happy holiday season. May all of your wishes for this season come true.
Enjoy this time with family and friends.
The Spirit of Christmas
The materialism of Christmas has become much more apparent over the last several years, with stories of people getting trampled trying to get through the doors the day after Christmas in search of $29 DVD players at Walmart or people paying $2000 on EBay to get their an XBox 360. A lot of people seem to only think of themselves during this time of the year.
I just finished reading a story over on David’s blog that is incredibly inspiring and shows what Christmas really means.
I think that its really important to not only take some time at Christmas and think about how much we as individuals have but also to take some time and help people that are less fortunate than you. There are some people that through no fault of their own really have nothing and helping those people shows the true meaning of Christmas.
David, what an awesome story. It shows that the efforts of a few people can really change the lives of others.
TDD Bliss
Another reason why Resharper is such a godsend, and why no developer’s desktop should be without it. Live Templates…
A major frustration with doing TDD is the repetetive nature of the code.
[Test] public void SomeTest() { }
or
using NUnit.Framework; namespace SomeNamespace { [TestFixture] public class SomeFixture { [Test] public void SomeTest() { } } }
How many times during the day do you type this? If you’re doing TDD, Im going to guess that it is quite a bit.. How much better would it be if you could type ‘test’ and hit TAB. Once you hit Tab, the method name is highlighted and you type the method name. After the method name is complete, hit TAB again and you’re in the body. Ahhhh… TDD nirvana. :)
I’ve attached my live templates for resharper that do exactly this. Type in ‘test’ to get the simple unit test, or type ‘tf’ and TAB to get the test fixture.
Get the live templates (zip | xml)
Once you’ve downloaded them, you should be able to import them into Resharper using the Resharper options dialog and be on your way to TDD bliss. Enjoy!
NUnit 2.2.4 Production Release
Via the TDD group, I found out that NUnit 2.2.4 has just been released. 2.2.4 is the first production release of NUnit since 2.2 which was released in August 2004. This release is also the recommended release now.
New features include running under .NET 2.0 and working with VS2005. There is also a version that runs against the 2.0 framework so you dont have to deal with the config file.
You can run tests built against older versions of NUnit without recompiling. Additionaly, you can run tests built against CSUnit without recompiling. This appears to be the first step towards functionality that allows NUnit to be test framework independent. Some time ago I heard discussions that NUnit would actually be able to execute tests written against VSTS (which would be *really* cool).
Full release notes are available here. You can download NUnit 2.2.4 at http://sourceforge.net/project/showfiles.php?group_id=10749.
Two web development tools
I have recently been introduced to two tools that will become invaluable to developing web applications.
Fiddler is a HTTP debugging proxy which logs traffic between your computer and the Internet. It shows details of every request and response, including headers and the text of the response. Fiddler shows all requests and their appropriate response codes as well. At a glance, you can see any 404 errors in your application. The other thing I was able to see by having this tool was that I was inadvertently referencing the same javascript multiple times.
The other tool that Im really excited about is the Internet Explorer developer toolbar. Firefox has had something similar to this for quite some time. This toolbar gives you some key functionality for developing web applications. Examples are things like resizing your browser window, validating HTML, CSS, and 508, outlining div elements and table cells, etc.
I’m very excited about having these tools as part of my toolset, and hope that you can find use for them as well.
TDD can lead to a simpler design
A few weeks ago, I was working through an issue with one of the projects Im responsible for. Basically, we have a collection of id/name pairs that needed to be sorted alphabetically by name.
I started working through how to attack this problem and ended up with an absolutely over-designed solution, involving 4 different objects and approximately 200 lines of code. I thought that surely there had to be a better way of solving this problem, so I shelved what I had and started over using TDD.
I wrote one test at a time, writing just enough code to make the test pass. In the end, I have one very well tested class that is responsible for sorting these items. Amount of production code: 14 lines. Clearly a better solution.
Interestingly enough, I saw a similar result from Robert Martin’s presentation at our organization last week when he went through his TDD example to calculate bowling scores.
Introduction to Agile
Last week, our organization brought in Robert Martin to introduce our company to agile methodologies.
Mr. Martin was a very energentic and humorous speaker who has a clear passion about agile development. We started off the day with a 90 minute presentation at an executive level about the benefits of agile development. Mr. Martin used this time to very effectively detail the benefits of agile development to our leadership team.
Later sessions offered more technical discussions on how to successfully deliver software using the agile methodologies such as TDD and continuous integration.
There’s been quite a buzz here since this presentation and we’re looking forward to proceeding with agile development now that we have the rest of the organization seemingly on board. Thanks, David, for making this happen.
Want an effective way to introduce agile to your organization? Id strongly recommend giving Mr. Martin’s group ObjectMentor an opportunity.
Please, America, listen to the man
A soldier in Iraq responds to Bush’s speech last night: “Please, America, listen to the man.”
When you discover you have cancer the treatment is always the same – attack it at the source. You dont wait for it to spread. And when is the last time you heard a doctor putting a limited timetable on cancer therapy? I can picture it in my mind. “Mr. Smith, we have seen some progress with your tumor. Its shrinking. But we need to move on now. The timetable for treating you has passed. Good luck.”


