Rubber Duck Debugging

This article is OBSOLETE, see AI Is NOT a Rubber Duck for my latest thoughts. Rubber duck debugging is when a developer explains their code to an inanimate object to spot problems and clarify their thinking. It works because verbalizing the problem forces the developer to think through each step more clearly, often revealing the […]

Web applications accessible to the public Internet are guaranteed to be the target of random or focused attempts at mischief or abuse and recovering from a root compromise always painful. At a minimum, web applications require the planned design and consistent implementation of diverse technologies based on: education in the Most Critical Security Vulnerabilities [owasp.org] […]

There is a definite Art in Computer Programming [pragprog.com] shaped by the Structure and Interpretation of Computer Programs [mit.edu] and established Design Principles and Design Patterns [depaul.edu] From a technical pespective, Refactoring [refactoring.com] is the essential technique to incrementally remove harmful code patterns such as the Go To Statement [c2.com] and other AntiPatterns [antipatterns.com] such […]

The original Relational Model of Data for Large Shared Data Banks [acm.org] was a major milestone in the history of information technology that has undergone changes in understanding over the years. Despite the fact There is No Database Magic [kimballgroup.com], A Review of Relational Concepts [wikipedia.org] is useful to avoid widespread Logical-Physical Confusion [dbdebunk.com]. Conceptual, […]

Despite the occasional protestations to the contrary by HiPPOs [mpdailyfix.com], there are Research Based Web Design & Usability Guidelines [usability.gov] and Guidelines for Web Credibility [standford.edu] that should be familiar to all web application developers with an understanding of the Differences Between Print Design and Web Design [useit.com]. At a minimum, web developers should be […]

Although developers often use the terms interchangably, there is a difference between a .NET Application Domain [microsoft.com] and an ASP.NET Application Pool [microsoft.com]. Regular .NET applications load assemblies into an application domain on demand. ASP.NET has special behavior that will automatically load all assemblies in the /bin directory when the application domain loads or reloads. […]

SharePoint 2010 Publishing Sites have a cool spell check feature for page content but it is not at all obvious how to add words your own words to the dictionary. Unlike most modern word processors there is no “Add to Dictionary” button on the GUI. Instead you need to: Create a text file called “Custom […]

SharePoint 2010 has a cool Note Board Web Part (a.k.a SPSWC:SocialCommentWebPart) that you can use to share with colleagues [microsoft.com]. However, when there are no comments posted it will display the following text: There are no notes posted yet. You can use notes to comment on a page, document, or external site. When you create […]

Planning for Monitoring SharePoint 2010 is a key component of any enterprise installation. Micorosoft’s free (but unsupported and no longer available as an official download 🙂 ULS Viewer is an amazing tool to provide insights into the inner workings of the platform. However it can be difficult to distinguish which errors are actually show stoppers […]

In the last post Time After Time: Creating a Valid Time Sql Audit Table, we created the basic data structures required for the audit tables. To complete the solution, we are now ready to create an audit trigger that will populate the audit_Orders history table every time the main Orders table is modified and discuss […]

In an earlier post Time After Time: Temporal Modeling for Sql Audits and Historic Views I discussed the concept of Valid-Time tables. This is a powerful technique that can be used for many different design goals. To further clarify the idea, here is a very basic example demonstrating the use of an Valid-Time audit history […]

Here is another “Back to Basics” post to help establish, explain and document a baseline architecture for web applications. The modern web is filled with phenonmenal opportunities and following a few basic engineering priciples goes a long way to keep things moving forward in a positive direction. By design, a web user agent (e.g. a […]