You might think that full-color illustrations would make very little difference in a technical book.

But Beginning JavaScript and CSS Development with jQuery by Richard York focuses so much on user interfaces that the added color makes the samples more clear. When the author lists code to change the color of a paragraph, the illustration shows the new and old colors to drive home the concept.

York starts with the basics of jQuery – selecting elements on a page and applying styles dynamically – and moves progressively into more advanced topics, such as making Ajax calls and accessing the jQuery API. He devotes about a third of the book to jQueryUI, a library that contains controls designed to build rich, interactive web interfaces without the need for a lot of code.

York explains the challenges inherent in developing applications with Javascript (the need code to different Document Object Models for each browser) and how jQuery addresses this by providing a single programming model that abstracts away the different browser DOMS.

The book is filled with examples, showing the HTML, CSS and jQuery demonstrating each point. You can read/copy these from the book or download them from the Wrox site.

This book is aimed at someone with experience in HTML and CSS, but little to no Javascript or jQuery knowledge. For those just getting started in jQuery this is an easy to follow book where you can learn the concepts and quickly become productive.

It’s no secret that software developers, managers and analysts do a poor job estimating projects. Few IT projects complete within the time they are estimated and far more go over the original estimate than under it.

Steve McConnell knows how difficult estimation can be His 2006 book Software Estimation is subtitled Demystifying the Black Art.

Developing reasonable estimates of software projects may not be a black art, but it does cause problems and most people fail at it for a variety of reasons.

McConnell refers to estimation as an art, not because it has no basis in science, but because formulas don't tell the whole story. Experience and difficult-to-measure inputs are required to generate a complete estimate. And even then, you may still get it wrong.

When McConell lists sources of estimation error (subjectivity, missing tasks, unwarranted optimism, excess precision), it's startling how many of those factors I have experienced or contributed in my own career.

The author provides various methods for creating an estimate and guidance on improving the accuracy of your estimates. Among his advice is:

Base your estimates on something you can measure - preferably historical data on similar projects in your own organization. Estimates based on measurable data are far superior to those based on subjective criteria.

Estimates are never precise (they're not called "exactimates"). Present estimates as ranges and don't include more significant digits than your inputs can justify.

If possible, get effort estimates from those who will actually perform the work. Developers vary in how quickly they can accomplish a given task - sometimes that variance is in orders of magnitude.

If part of your job includes estimating software projects, this is an essential book to guide you. Like most of McConnell’s books, I recommend it.

Today, I received a message from Microsoft awarding me a Microsoft Most Valuable Professional (MVP) in Visual C#.

I have been aware of this award ever since my friend Nino earned one years ago. I never quite understood the selection criteria but I knew that it was recognition of a willingness to share knowledge with others in the community. Since sharing knowledge is something in which I a lot of take pride, I am happy to be recognized for this.

A Microsoft employee once told me that he wouldn't nominate anyone who sought to become an MVP, so I never tried to reveal any aspirations, working in the community because I enjoyed doing so. I even joked about it, posting an e-mail on this blog from Mike Woelmer, who nominated me as an NVP (Not Very Professional). But the truth is that I did want this award and that I am excited and proud and grateful to receive it.

I want to publicly thank Jennifer Marsman and Alan Stevens who nominated me. I was told that some other folks said nice things on my behalf as part of this process. I don't know who they all were, so I won't list them here, but know that this was much appreciated.

I am aware of some tangible benefits - software, admission to the MVP summit, access to the product team - and I know there are a few other benefits that I haven't sorted through yet. But, for me the most important benefit is recognition by my peers.

Mike Neel does an amazing job with Codestock. Two years ago, he (along with Alan Stevens) introduced open spaces to the heartland; Last year, he wrote an application that allowed attendees to vote on their favorite sessions; and this year, he held the keynote in an classic movie theater and invited Rachel Appel to talk about community and bring onstage others to give their views of community.

Two days after Codestock (and a day after a 9-hour drive home from Knoxville, TN), I’m still processing the information learned.

I delivered two presentations and hosted a discussion panel. My first presentation – Writing Your First ASP.Net MVC Application – was well-received. I love showing people how accessible a hot technology like MVC is. In the afternoon, I gave a 2-hour presentation on An Introduction to Relational Database and T-SQL. I had no slides: I spent most of the talk showing examples of writing T-SQL code to modify schemas and data. I wasn’t sure if anyone would be interested in this topic, but I heard some positive feedback. Many in the audience were experienced C# developers, who knew very little about the data they were accessing; and there were a couple experienced people who listened to get ideas on teaching this topic to others.

Because I had 4 hours of material to present, I spent most of Day 1, delivering or preparing my presentations. As a result, I was unable to observe much of the conference on Friday. My evening was free, so I was able to enjoy a nice dinner with about 20 folks from the community, watch the keynote, and hang out in the hotel lobby talking with developers from all across the US and Europe. I also sneaked in the filming of a couple episodes of Technology and Friends.

Saturday, my only responsibility was hosting a Panel Discussion – How to Put on a Great Conference. I did one really smart thing: I invited some really smart people to be on the panel. Because of this, I had to do very little during the discussion. I would ask an open-ended question, such as “What is the first thing you need to think about when planning a conference” and the conversation flowed with many great ideas exchanged. (The most popular answers to this question were venue, date and goals). Jamie Wright made a video recording of this session and I plan to release it soon as an episode of Technology And Friends.

I was able to watch a few sessions on Saturday.

Chris Woodruff asked me to film the premiere of a new talk he created called “Embracing Failure”. Chris emphasizes that we should examine our shortcomings, accept responsibility for them and use them to improve ourselves.

Patrick Foley gave a presentation on becoming and independent software vendor (ISV). Patrick suggests that you don't try to tackle every feature on every platform: Instead, start by focusing on one platform and do something better than everyone else.

In Nathan Blevins’s Mindstorming presentation, he showed off programs that controlled a car, making it drive, turn and automatically avoid falling off a ledge.

Saturday evening included a dinner sponsored by Telerik (Thanks Rob and Sasha) and a trip to Alan Stevens’s house for an evening of ping pong, cigars and fellowship.

During my time in Knoxville, I also spent a lot of time picking the brains of other attendees and speakers. I met a lot of intelligent and passionate people at this conference. I was late for dinner every night because I found myself engaged in a conversation with someone about error handling or MVC view engines or search engine optimization or one of dozens of other topics. Often I turned on the camera when I realized how much information I was getting from a conversation, so many of these talks will be available on future shows.

As with most conferences, it was the people that made this one. Codestock attracts many of the same people that attend local events in Michigan and Ohio. But it also draws people from New York, Philadelphia, Atlanta, Alabama, and many other parts of the country. There were even people from Manitoba, Canada and from the United Kingdom.

I’m already looking forward to my next trip to Tennessee (DevLink in Nashville in August) and my trip to Codestock next year. Let me know if you will be there.