Saturday, November 19, 2011

TomcatExpert Articles

I recently wrote a series of two articles for the website The first of the two articles was published on 11/16. It is an introduction to tuning garbage collection in the JVM when running Tomcat, and discusses how to measure the performance of garbage collection.

Here's a link.


The second part to my article was published on 11/22. This part talks about the commonly used JVM options and has an introduction to selecting a collector.

Here's a link.

Saturday, July 16, 2011

Packt Publishing Summer Deal

If anyone is interested, Packt is running a summer deal on some of their best selling titles. Looks like a couple good Python books in the mix.

Here's a link

Book Review - Python Testing Cookbook

In an recent effort to improve my testing skills, I decided I would check out the Packt Publishing book, Python Testing Cookbook by Greg L. Turnquist. The book promises to give “simple and effective recipes for testing Python code”, starting with the most basic testing tool unittest and working into more complex tools like doctest, Nose and the BDD tool Lettuce. The book also touches on some additional topics like code coverage reports, acceptance testing, load testing and configuring tests to run under continuous integration.

My initial interest in the book came from the chapters on continuous integration and code coverage, chapters six and seven respectively. With both of these topics, I've had some experience with the tools that are available in the Java world and I was very curious to see what tools are available for me to use with my Python code.

Having said that, after digging into the book a bit, I think the chapter I found the most interesting was Chapter 4, Testing Customer Stories with Behavior Driven Development. The chapter starts with a very quick introduction to BDD and progresses into first recipe, which shows how to perform some simple BDD style tests with a custom Nose plugin. The chapter then progresses into recipes for doctest, Nose's spec plugin and Lettuce. While the chapter is not going to turn someone into a master of BDD, it is a good introduction to the software that is available for Python developers and contains some good recipes for quickly getting started and utilizing BDD to test an application.

In addition to Chapter 4, I also enjoyed Chapters 6 and 7 quite a bit. Chapter 6 details a few different ways to integrate Python tests with the continuous integration platforms of Jenkins and TeamCity. These recipes include setting up both services to generate reports, run tests on commit and run tests on a scheduled interval. Chapter 7 is similar, but details how to use the coverage tool with a suite of unit tests. This chapter is made up of recipes which show how to install and run coverage, how to generate XML & HTML reports and how to integrate coverage with Nose and Jenkins.

As a whole I enjoyed the book and I thought that I was able to pick up some nice new pointers for testing my Python applications. As a recommendation for other readers, I would strongly suggest the book to new Python and Python TDD developers. For these developers, each chapter should provide new information and help to get the developer up-to-speed very quickly.

For someone that is already familiar with Python and Python TDD, I would suggest checking out the table of contents for the book. Each chapter is very helpful and provides a good introduction to the topics discussed in the chapter, however because the chapters are written as introductions, if you are already familiar with the topic for that chapter, its unlikely that you'll pick up much new from the chapter.

Thursday, June 23, 2011

Upcoming Books

I've just received access to two of Packt Publishing's upcoming Python books which I plan to check out shortly.

Python Testing Cookbook
Python Testing Cookbook

by Greg L. Turnquist [click for sample chapter]

Python 3 Web Development Beginner's Guide
Python 3 Web Development Beginner's Guide
by Michel Anders [click for sample chapter]

My goal is to post a review of the "Python Testing Cookbook" shortly, so stay tuned!

Tuesday, February 01, 2011

A bried foray into HTML5

Having heard some good things recently about HTML5 and it's current level of support amongst the various browsers, I decided to dig in and check things out.

On a recommendation, my first stop was to check out Dive Into HTML5 [1] and HTML5 Rocks [2]. Both of these sites proved to be excellent ways to get acclimated to the new features of HTML5. Dive Into HTML5 is more of a introduction guide while HTML5 Rocks is more of a interactive playground. Both were very helpful in getting a good idea as to what HTML5 can do.

After checking out those sites and getting some ideas, I just wanted to get my hands dirty and start playing with some of the cool new features. So I decide to make a Snake [3] clone with HTML5 & Javascript.

Here is a link to the game:

In addition, I've released the source code under the GPLV2 license. Here is the link for the source code: snake.tar.gz

While this simple game doesn't get into all of the new features of HTML5 (just uses Canvas & Local Storage), it did give me a good introduction and get me excited to try out more of the new features.


[1] -
[2] -
[3] -