Skip to content

Article: Fiddler Can Make Debugging Easy

Building web applications is hard work. There are so many things that can go wrong, so many technologies to learn, and so many issues that remain undiscovered because everything is designed to allow things to continue to work even when they’re not quite right. All of our fault tolerant design begins to work against us.

Most people remain unaware of precisely how their web application is interacting with the web browsers that their clients have installed. If analytics are present on the site then the number of requests ending in a 404 status (File not found) may be logged but identifying precisely why the client was requesting a page in the first place may be difficult or impossible.

This is where Fiddler, a free tool, can simplify the process substantially. Fiddler is a transparent proxy that automatically adds itself to the WININET chain so that it can see every request being made. It logs those requests and the responses to allow you to see what is working and what isn’t working.

http://www.developer.com/lang/jscript/article.php/3631066

WebCast: Using SharePoint Search to Find Information in Your Enterprise

I’ve been giving a presentation live for 18 months or so.  That presentation explains how SharePoint Portal Search works, shows you how to setup a search for content on your network, how to customize search results, and even shows you how to use SharePoint to search information in your custom applications.
There’s a lot of power in SharePoint Portal Server Search that most folks don’t leverage.   Although the web cast focuses on SharePoint Portal Server 2003 you’ll find that many of the same concepts apply directly to Microsoft Office SharePoint Server 2007.
Since I can only be in one place at a time, I’m making the presentation available as a web cast. For now you can get the web cast here (link removed).  If you are going to link to the content please link to this blog post as I may move the web cast in the future.  (If I do I’ll update this post to reflect the new location.)
I hope you enjoy the presentation and I’d appreciate your feedback.

Link: Description of a new command-line operation that is available for the Spsadm.exe command line tool that you can use to clean up orphaned items in the configuration database in SharePoint Portal Server 2003

I’m slow on the uptake.  I missed this when it came out.  (I’m not sure how.)  If you’ve ever had orphaned data in your SharePoint databases you want to check out KB918742.

You’ll know you have orphaned data because you can’t restore or delete a site.  You are told that you can’t delete the site, but you can’t restore it either — because it already exists or at least part of it does.

Thanks to Chris Chapman for blogging about this.

Home Made Post Cards

Note: This is categorized personal.  If you don’t want to see these subscribe to the professional category.

My son and my brother-in-law have a silly game where my brother-in-law pretends to eat my son’s feet.  Don’t ask me how it started because I don’t know.  However, my son as we were leaving started holding his feet up for his uncle to eat.  Thus was born the idea of sending my brother-in-law a post card with my son’s feet on it.

Loving a challenge, I figured out a way to create our own post cards.  First, take some pictures and make a 4×6 print.  (I don’t have a photo printer here at home since I can never make the math work out right so I had to stop by Target.) For the sake of argument, let’s call the cost 39 cents. Second, get a 4×6 index card (blank).  It cost me about 1 cent for the index card.  Third, spray mount (or glue) the index card to the back of the print.  I have no idea on a cost for this one so we’ll call it 10 cents.  Fourth, write the addresses on the back left side of the index card.  (or cheat like I did and use your label maker — it prints postal delivery point barcodes so hopefully the post card won’t get too lost.)  Fifth, write your message on the other side of the card.  Finally, add a postcard stamp to the card and mail it.  The current postal rate for a post card at 4×6 is .24 cents.

The net of this is for somewhere around 65 cents you’ve sent a cute (and sometimes strange) message to family and friends.

Article: Virtual Interfaces

One of my favorite interview questions is what the difference is between a virtual and a non-virtual method. If you were learning development in the early 90s, you heard about a relatively spirited controversy regarding the use of virtual functions. The proponents shared the programming flexibility that it afforded. The detractors warned of the performance implications. Luckily, Moore’s law has silenced the detractors. The impact of the extra lookups that must be done for virtual functions has long been decided as trivial.

Relatively few folks are aware what the impacts of making methods virtual are, and of those who fully understand virtual methods only a few really understand how they impact the use of interfaces in .NET. This article is designed to walk through the results you can expect when utilizing both non-virtual and virtual methods via an interface in .NET.

Object-Oriented Basics

Before explaining virtual methods, it’s important to review one of the fundamental concepts to object-oriented programming. Any class that is derived from a base class can be used anywhere the base class is expected. This means that if I have a class—SubB—which derives (or is based on) BaseA and I have methods that expect an instance of BaseA, I can pass in an instance of SubB instead.

http://www.developer.com/lang/article.php/3629961

Dynamics of Software Development

Book Review-Dynamics of Software Development

More than 10 years ago Jim McCarthy wrote the first edition of Dynamics of Software Development.  At that time it was a great book.  It helped identify specific behavior patterns that software development teams fall into.  Perhaps the most familiar behavior pattern is flipping the “Bozo bit” – in other words writing someone off as not a valuable member on the team.  Small nuggets of insight like this one are woven together into a tapestry of the behaviors you don’t want to see in your team.

But that’s where the 1995 edition of the book stopped.  You knew what you didn’t want to see and had sign posts to alert you that they were coming.  However, there was very little in the way of support for creating the right kind of behaviors and exterminating those behaviors that you had been warned about.

The 2006 edition in addition to the 1995 content has content designed to support your transition from a team where these behavior patterns are the norm to one where you’re looking for the rare case where there’s some bad patterns emerging.

The “Core System” as Jim and Michele McCarthy describe it is a set of patterns, antipatterns, and “Core Protocols.”  The “Core Protocols” are as set of specific behaviors which support the proper working of a software development team and inhibit the growth of some of the other patterns that are not so favorable.

Dynamics is a book that every development leader should read.  More than that — it is a book that should be used as content for team meetings.  By dissecting one of the 57 rules included in the book you can generate a few minutes worth of discussion on a single, important software development project so that you can move the team forward, one sound byte at a time.

WebCast: How Hackers Exploit Application Weaknesses

With operating system patches being applied more uniformly, hackers have been forced into the application stack to look for vulnerabilities.  Yesterday I did a web cast on “How Hackers Exploit Application Weaknesses”.  An on-demand version of the web cast is available at http://www.jupiterwebcasts.com/_archives/2006/webcast_08-23-06/index.html

WebCast: Project Management for the Developer

Yesterday I gave a web cast which talked about Project Management for the Developer.  It is designed to give developers a context for understanding project management and project managers.  An on-demand version of the web cast is available at http://www.jupiterwebcasts.com/_archives/2006/webcast_08-22-06/index.html.  If you are a developer looking to learn more about project management — or you have developers that you work with who need to become more project management aware the web cast will help illuminate some of the motivation and techniques — both good and bad.
Agile Software Development: The Cooperative Game

Book Review-Agile Software Development

With all of the books with “Agile” in their title today why would anyone want to single out Agile Software Development in particular?  My reason was the author Alistair Cockburn.  Alistair has been a part of the agile movement being both an original signatory on the Agile Manifesto and the proponent of the Crystal Clear methodology.  In other words, the resume isn’t bad.

Agile Software Development is both interesting and unique because it’s unlike other books about agile development that you might read.  First, it’s in some ways more of an extension of Peopleware and The Psychology of Computer Programming.  It talks about why developers behave the way they do without condemnation or excuse.  It speaks about the way things are and what you can do to get better results.  Alistair’s understanding of the dynamics of communication can help you construct solutions that allow your team to communicate more effectively.  Either its “rearranging the furniture” or “vandalizing the walls” there is an understanding into the psychology of how things work – and why they work that can be effective whether you’re deciding to adopt an agile methodology or not.  (“rearranging the furniture” and “vandalizing the walls” aren’t his terms – their my colorful summaries of things like evaluating communications like the dispersion of heat or a gas and a concept that Alistair refers to as information radiators.)

On the topic of methodology there’s a lot to be had as well.  I’m preparing for a web cast titled Defining Your Own Software Development Methodology.  In that web cast we’ll be talking about how to create – or more appropriately tailor – a methodology for your organization.  In addition to having some great “sound bites” for that discussion, the model that Alistair uses to talk about methodology creation has influenced some of the web cast material.  Coverage of the characteristics of a methodology, the way to approach usage, and the impact of lighter and heavier methodologies have all been positively impacted.

I’ve always respected the simplicity and usefulness of Alistair’s breakdown of projects based on size and criticality.  The breakdown of criticality into Loss of comfort (C), loss of discretionary monies (D), loss of essential monies (E), and loss of life (L) has been quoted many places.  The reason I appreciate it so much is that it simplifies the task of speaking of the size and characteristics of a software development effort into something that can be quickly understood by all.

As both a word of caution and one of praise, Agile Software Development doesn’t take a formulaic approach to delivering the content.  Instead it gives you all of the components you need to understand how things work and leaves the exercise of making it work to you.  While I find this approach very appealing because I am looking for different views and perspectives which I can add to my toolbox, it may be frustrating for readers who want someone to tell them what “the answer is.”

I leave you with one of my favorite sound bites from the book (p71):

“Although heroes who work overtime may be needed to save poorly run projects, there is a much more interesting phenomenon to observe: ordinary people doing their work with a sense of pride and community and in doing that work noticing something wrong, passing information to someone who can fix the problem, or stepping out of their job descriptions to handle it themselves.  This is an indicator of a community in action, not an indicator of a poor development process.”

Agile Software Development with Scrum

Book Review-Agile Software Development with Scrum

If you regularly read this blog then you know that I’ve been doing a lot of reading and reviewing of agile methodology books. (Agile & Iterative Development: A Manager’s Guide, Balancing Agility and Discipline: A Guide for the Perplexed, etc.)  It’s a curiosity of mine both in terms of looking for things that can help with current methodologies and how one might do the best implementation of an agile method in a project.  I’ve also been reviewing more traditional software development titles to see how they might be useful in making projects more successful (The Security Development Lifecycle, The Psychology of Computer Programming, Peopleware, The Rational Unified Process Made Easy: A Practitioner’s guide to RUP, etc.)

One of the challenges is finding a book that talks about real world experience with agile methodologies.  Agile Software Development with Scrum is that book.  While Ken Schwaber and Mike Beedle are careful to include the fundamental psychology that makes Scrum work, they also share many personal experiences with how projects have succeeded or failed – and what factored into those successes and failures.

While the book won’t make you a good Scrum Master right out of the gate, it does go farther than other books in explaining the psychological underpinnings of Scrum ideas so that you can adapt the methods to suit your needs – most Agile proponents and books advocate a “no changes” sort of policy.  While this book doesn’t directly encourage making changes it takes a much softer line on the issue than previous agile development books.

Whether you’re looking for the practical details of how to implement scrum or the background to understand why scrum works, you’ll find an answer in Agile Software Development with Scrum

Recent Posts

Public Speaking