Click here to Skip to main content

Articles by Paul M Watt (Articles: 11, Technical Blogs: 27)

Articles: 11, Technical Blogs: 27

RSS Feed

Average article rating: 4.86

DirectX
Games
Posted: 30 Oct 2002   Updated: 16 Oct 2008   Views: 298,638   Rating: 4.87/5    Votes: 63   Popularity: 8.75
Licence: The Code Project Open License (CPOL)      Bookmarked: 123   Downloaded: 3,785
An interpretation of a popular falling block game implemented with DirectX that attempts to avoid any copyright infringement.
GDI
Beginners
Posted: 20 Mar 2002   Updated: 20 Mar 2002   Views: 227,191   Rating: 4.87/5    Votes: 72   Popularity: 9.05
Licence: The Code Project Open License (CPOL)      Bookmarked: 198   Downloaded: 7,451
Beginner's guide to understanding how to paint to a window in the WIN32 SDK environment
Device Contexts
Posted: 12 Jul 2011   Updated: 21 Jul 2011   Views: 54,802   Rating: 4.97/5    Votes: 56   Popularity: 8.68
Licence: The Code Project Open License (CPOL)      Bookmarked: 131   Downloaded: 6,372
Guide to creating and using Memory Device Contexts (DC) in Win32.
GDI Objects
Posted: 4 Apr 2002   Updated: 4 Apr 2002   Views: 259,992   Rating: 4.92/5    Votes: 94   Popularity: 9.70
Licence: The Code Project Open License (CPOL)      Bookmarked: 249   Downloaded: 7,645
Guide to understanding how Windows generates WM_PAINT messages, manages the update region for a window, and how to use all common type DCs.
Regions
Posted: 10 Mar 2002   Updated: 10 Mar 2002   Views: 153,071   Rating: 5.00/5    Votes: 60   Popularity: 8.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 115   Downloaded: 4,623
Guide to understanding how to create and use regions with the WIN32 SDK
Posted: 9 Apr 2002   Updated: 9 Apr 2002   Views: 146,508   Rating: 4.96/5    Votes: 46   Popularity: 8.25
Licence: The Code Project Open License (CPOL)      Bookmarked: 100   Downloaded: 4,431
Guide to understand the three different types of clipping regions, and how they relate to the Device Context.
General Graphics
General
Posted: 8 Sep 2011   Updated: 9 Sep 2011   Views: 36,422   Rating: 4.99/5    Votes: 74   Popularity: 9.33
Licence: The Code Project Open License (CPOL)      Bookmarked: 124   Downloaded: 4,475
With respect to Image Composition, your imagination is your only limit.
C / C++ Language
Templates
Posted: 22 May 2014   Updated: 24 May 2014   Views: 8,687   Rating: 4.93/5    Votes: 10   Popularity: 4.92
Licence: The Code Project Open License (CPOL)      Bookmarked: 11   Downloaded: 154
A small self-contained header file implementation of an static counter for use at compile-time.
WTL
General
Posted: 27 Apr 2002   Updated: 27 Apr 2002   Views: 68,207   Rating: 4.55/5    Votes: 9   Popularity: 4.32
Licence: The Code Project Open License (CPOL)      Bookmarked: 29   Downloaded: 1,580
A message loop class that is suitable for game programming in WTL.
Programming Tips
General
Posted: 15 Oct 2002   Updated: 15 Oct 2002   Views: 68,222   Rating: 4.39/5    Votes: 15   Popularity: 5.14
Licence: The Code Project Open License (CPOL)      Bookmarked: 27   Downloaded: 0
VS Editor Tip: How to use Quick Macros
Design and Architecture
Frameworks
Posted: 9 Oct 2008   Updated: 9 Oct 2008   Views: 30,848   Rating: 5.00/5    Votes: 14   Popularity: 5.73
Licence: The Code Project Open License (CPOL)      Bookmarked: 45   Downloaded: 461
Macro based framework written for C++ applications that will allow basic instrumentation and profiling features

Average blogs rating: 4.85

Grid & Data Controls
General
Posted: 2 Jul 2014   Updated: 2 Jul 2014   Views: 2,702   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
This is an entry for the continuing series of blog entries that documents the design and implementation process of a library. This library is called, Network Alchemy[^]. Alchemy performs data serialization and it is written in C++.By using the template construct, Typelist, I have implemented a basis
C / C++ Language
General
Posted: 21 Jan 2014   Updated: 21 Jan 2014   Views: 3,888   Rating: 4.71/5    Votes: 4   Popularity: 2.91
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
My favorite C++ books are from Scott Meyers, Effective C++ series. The first item in Effective C++, 3rd Edition is titled View C++ as a federation of languages. I took note of this suggestion the first, and each successive time I read through this book. I thought of this as a fresh way to view the b
Posted: 9 Feb 2014   Updated: 9 Feb 2014   Views: 4,786   Rating: 4.72/5    Votes: 7   Popularity: 4.23
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
The concept of selecting descriptive variable names is a lesson that seems to start almost the moment you pick up your first programming book. This is sound advice, and I do not contest this. However, I think that the basis could be improved by creating and using the most appropriate type for the ta
Posted: 10 Mar 2014   Updated: 18 May 2014   Views: 4,533   Rating: 5.00/5    Votes: 6   Popularity: 3.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 0
using and namespace are two of the most useful C++ keywords when it comes to simplifying syntax, and clarifying your intentions with the code. You should understand the value and flexibility these constructs will add to your software and it maintenance. The benefits are realized in the form of orga
Posted: 18 Jun 2014   Updated: 21 Jun 2014   Views: 4,890   Rating: 4.85/5    Votes: 4   Popularity: 2.92
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
I would like to devote this entry to further discuss the Typelist data type. Previously, I explored the Typelist[^] for use in my network library, Alchemy[^]. I decided that it would be a better construct for managing type info than the std::tuple. The primary reason is the is no data associated wit
Templates
Posted: 23 Dec 2013   Updated: 23 Dec 2013   Views: 7,355   Rating: 4.59/5    Votes: 9   Popularity: 4.38
Licence: The Code Project Open License (CPOL)      Bookmarked: 13   Downloaded: 0
Template meta-programming is the practice of using templates to generate types and functions to perform computations at compile-time and generate programs.
Posted: 17 May 2014   Updated: 18 May 2014   Views: 3,452   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Previously I had discussed the tuple data type. The tuple is a general purpose container that can be comprised of any sequence of types. Both the types and the values can be accessed by index or traversing similar to a linked list. The TypeList is a category of types that are very similar to the tup
Posted: 18 May 2014   Updated: 18 May 2014   Views: 5,980   Rating: 4.85/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   Downloaded: 0
C++ header
Other .NET Languages
General
Posted: 21 Mar 2014   Updated: 21 Mar 2014   Views: 3,365   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
If you ask a group of 10 software engineers to develop unit tests for the same object, you will end up with 10 unique approaches to testing that object. Now imagine each engineer was given a different object. This was my experience with unit testing before I discovered how useful and how much more v
Social Network APIs
General
Posted: 18 Mar 2014   Updated: 18 Mar 2014   Views: 2,599   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
While many of the principles of developing robust software are easy to explain, it is much more difficult to know how and when to apply these principles. Practice and learning from mistakes is generally the most productive way to understand these principles. However, it is much more desirable to und
Internet / Network
Network
Posted: 28 Mar 2014   Updated: 29 Mar 2014   Views: 5,840   Rating: 4.88/5    Votes: 5   Popularity: 3.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 1
Byte-gender; not, "Yes! Please!"Good! Now that I have your attention let's solve a relatively simple problem, byte sex. A less sensational name for this concept is byte endianess. This is one of those concepts that you should at least be aware of, even if you don't have to pay much attention to it i
Windows 8 Design
Design
Posted: 29 Jun 2014   Updated: 29 Jun 2014   Views: 3,617   Rating: 4.95/5    Votes: 8   Popularity: 4.52
Licence: The Code Project Open License (CPOL)      Bookmarked: 10   Downloaded: 0
Software Design Patterns have helped us create a language to communicate and concepts and leverage the skills of previous work. Design patterns are very powerful, language agnostic descriptions problems and solutions that have been encounter and solved many times over. However, design patterns are o
Code Generation
General
Posted: 9 Nov 2013   Updated: 9 Nov 2013   Views: 5,343   Rating: 4.91/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
A passive use of the term code rot describes the source code for an aging system that require dependencies or tools that are no longer available.
Posted: 20 Feb 2014   Updated: 18 May 2014   Views: 3,942   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
Code of The DamnedThis is a journal for those who feel they have been damned to live in a code base that has no hope. However, there is hope. Hope comes in the form of understanding how entropy enters the source code you work in and using discipline, experience, tools and many other resources to kee
Posted: 20 May 2014   Updated: 20 May 2014   Views: 3,013   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   Downloaded: 1
I really do not like MACROs in C and C++, at least the way they have been traditionally used starting with C. Many of these uses are antiquated because of better feature support with C++. The primary uses are inline function calls and constant declarations. With the possibility of MACRO instantiatio
Design and Architecture
Design Patterns
Posted: 21 Jul 2014   Updated: 21 Jul 2014   Views: 3,448   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
I am not aware of a software design pattern that has been vilified more than The Singleton. Just as every other design pattern, the singleton has its merits. Given the right situation, it provides a simple a clean solution, and just as every other design pattern, it can be misused. I ha
General
Posted: 27 Nov 2013   Updated: 27 Nov 2013   Views: 5,842   Rating: 4.87/5    Votes: 5   Popularity: 3.44
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
I want to hopefully connect the dots for many to help convince you of the ultimate importance of a well defined and protected interface.
Posted: 21 Jan 2014   Updated: 22 Jan 2014   Views: 12,673   Rating: 4.73/5    Votes: 31   Popularity: 7.05
Licence: The Code Project Open License (CPOL)      Bookmarked: 17   Downloaded: 0
Code maintenance is generally viewed as a separate task in the development lifecycle. The hard work of designing and implementing the product has been performed, and although software test did their best to get in the way and kept finding issues the program, the product shipped. Now comes the mainte
Posted: 13 Apr 2014   Updated: 14 Apr 2014   Views: 3,142   Rating: 4.62/5    Votes: 4   Popularity: 2.85
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
Recently I ran across the article, "Is Design Dead?", from Martin Fowler's blog. Martin addresses the common misconception that design is discouraged in Extreme Programming. He describes the overall purpose of design in software and how the design emerges as part of the development phase. As more is
Posted: 20 Apr 2014   Updated: 22 Apr 2014   Views: 4,682   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
During my design analysis for my Network Alchemy implementation I thought that the tuple may be the answer to allow me to iterate over the types defined in a network message definition. Tuples are data structures that are a generalization of the std::pair. Rather than having a limitation of 2 items
Methodologies
Posted: 10 Nov 2013   Updated: 10 Nov 2013   Views: 8,206   Rating: 4.96/5    Votes: 9   Popularity: 4.72
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 0
a brief overview of TDD, which will include a description of the concepts, development process and potential benefits associated with TDD.
Testing and QA
General
Posted: 13 Feb 2014   Updated: 14 Feb 2014   Views: 4,653   Rating: 4.94/5    Votes: 6   Popularity: 3.84
Licence: The Code Project Open License (CPOL)      Bookmarked: 7   Downloaded: 0
I would like to clarify the purpose and intention of a unit test for every role even tangentially related to the development of software. I have observed a steady upward trend, over the last 15 years, for the importance and value of automating the software validation process. I think this is fantast
Posted: 26 Mar 2014   Updated: 18 May 2014   Views: 4,294   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 2
I discussed the merits of selecting a suitable unit test framework for your development project in my previous post. I described the qualities that I found most valuable in the test framework that I use, CxxTest. The qualities are xUnit framework, portability, simplicity, and flexibility. There are
Work Issues
The Developer's Life
Posted: 21 Jan 2014   Updated: 21 Jan 2014   Views: 4,729   Rating: 4.53/5    Votes: 6   Popularity: 3.50
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
Having good engineers on your team can make the difference between a projects success or failure. Good engineers are able to jump in and solve problems, design the solution, and implement the code to make it all work. They may be on the team from the start, or brought in at the end to help get the p
Uncategorised Technical Blogs
General
Posted: 15 Apr 2014   Updated: 15 Apr 2014   Views: 2,434   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
When I create a new library, I like to approach the design from two different directions. The first is the traditional route, analyzing the functionality that I need and designing a suitable interface to access those features. I also may write a set of pseudo-code that demonstrates what it would loo
Posted: 20 Jun 2014   Updated: 20 Jun 2014   Views: 3,657   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
I discussed the Typelist with greater detail in my previous post. However, up to this point I haven't demonstrated any practical uses for the Typelist. In this entry, I will further develop operations for use with the Typelist. In order to implement the final operations in this entry, I will need to
Posted: 4 Jul 2014   Updated: 4 Jul 2014   Views: 2,802   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
This is an entry for the continuing series of blog entries that documents the design and implementation process of a library. This library is called, Network Alchemy[^]. Alchemy performs data serialization and it is written in C++.I presented the design and initial implementation of the Datum[^] obj
No tips have been posted.
No reference articles have been posted.

Paul M Watt
Architect
United States United States
I have been developing software for almost two decades. The majority of my expertise as well as my strongest language is C++ with the networking software as my domain of focus. I have had the opportunity to develop:
* Desktop applications (Data Layer, Business Layer, Presentation Layer)
* Application virtualization
* Web clients
* Mobile device management software
* Device drivers
* Embedded system software for
- IP routers
- ATM routers
- Microwave frequency modems
 
Over the years I have learned to value maintainable design solutions first. This has allowed me to adapt my projects to meet the challenges that inevitably appear during development, including:
* My own misjudgments
* Incomplete requirements
* Feature creep
* Poor decisions for which I have no control
 
I am a Mentor and frequent contributor to CodeProject.com with tutorial articles that teach others about the inner workings of the Windows APIs.
 
I am the owner of an open source project on GitHub called Network Alchemy[^], which is a set of Network APIs that are focused on helping developers write robust network communication software.
 
I maintain my own repository and blog at CodeOfTheDamned.com/[^], a site dedicated to guiding developers through the damn code.
Follow on   Twitter   LinkedIn


Advertise | Privacy | Mobile
Web04 | 2.8.140916.1 | Last Updated 20 Sep 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid