Click here to Skip to main content

Articles by Paul M Watt (Articles: 12, Technical Blogs: 46)

Articles: 12, Technical Blogs: 46

RSS Feed

Average article rating: 4.85

DirectX
Games
Posted: 30 Oct 2002   Updated: 16 Oct 2008   Views: 302,500   Rating: 4.87/5    Votes: 63   Popularity: 8.75
Licence: The Code Project Open License (CPOL)      Bookmarked: 124   Downloaded: 3,999
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: 238,960   Rating: 4.89/5    Votes: 75   Popularity: 9.15
Licence: The Code Project Open License (CPOL)      Bookmarked: 200   Downloaded: 8,092
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: 66,310   Rating: 4.97/5    Votes: 56   Popularity: 8.68
Licence: The Code Project Open License (CPOL)      Bookmarked: 141   Downloaded: 7,131
Guide to creating and using Memory Device Contexts (DC) in Win32.
GDI Objects
Posted: 4 Apr 2002   Updated: 4 Apr 2002   Views: 270,210   Rating: 4.92/5    Votes: 98   Popularity: 9.79
Licence: The Code Project Open License (CPOL)      Bookmarked: 252   Downloaded: 8,112
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: 163,470   Rating: 5.00/5    Votes: 60   Popularity: 8.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 118   Downloaded: 4,909
Guide to understanding how to create and use regions with the WIN32 SDK
Posted: 9 Apr 2002   Updated: 9 Apr 2002   Views: 155,140   Rating: 4.96/5    Votes: 47   Popularity: 8.29
Licence: The Code Project Open License (CPOL)      Bookmarked: 103   Downloaded: 4,749
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: 41,640   Rating: 4.99/5    Votes: 74   Popularity: 9.33
Licence: The Code Project Open License (CPOL)      Bookmarked: 128   Downloaded: 4,873
With respect to Image Composition, your imagination is your only limit.
C / C++ Language
Templates
Posted: 22 May 2014   Updated: 14 Jan 2015   Views: 13,220   Rating: 4.93/5    Votes: 14   Popularity: 5.66
Licence: The Code Project Open License (CPOL)      Bookmarked: 22   Downloaded: 303
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: 70,200   Rating: 4.55/5    Votes: 9   Popularity: 4.32
Licence: The Code Project Open License (CPOL)      Bookmarked: 30   Downloaded: 1,616
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,960   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: 32,820   Rating: 5.00/5    Votes: 14   Popularity: 5.73
Licence: The Code Project Open License (CPOL)      Bookmarked: 46   Downloaded: 509
Macro based framework written for C++ applications that will allow basic instrumentation and profiling features
IoT Overview
General
Posted: 26 Oct 2014   Updated: 26 Oct 2014   Views: 4,780   Rating: 4.79/5    Votes: 7   Popularity: 4.04
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
What the Internet of Things is and how it can safely evolve to reach its potential

Average blogs rating: 4.91

Grid & Data Controls
General
Posted: 2 Jul 2014   Updated: 2 Jul 2014   Views: 3,170   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
Site & Server Management
General
Posted: 27 Sep 2014   Updated: 28 Sep 2014   Views: 4,360   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Does this scenario sound familiar? You have identified a piece of troublesome logic in your code-base, which has been the source of many headaches for both you and your managers. You have also determined an elegant fix to make the code maintainable and easy to work with for many years to come. You m
C / C++ Language
General
Posted: 21 Jan 2014   Updated: 21 Jan 2014   Views: 4,220   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: 5,500   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: 5,180   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: 5,700   Rating: 4.85/5    Votes: 4   Popularity: 2.92
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   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: 8,450   Rating: 4.59/5    Votes: 11   Popularity: 4.80
Licence: The Code Project Open License (CPOL)      Bookmarked: 14   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,930   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: 6,540   Rating: 4.85/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 0
C++ header
Posted: 27 Jan 2015   Updated: 9 Feb 2015   Views: 8,310   Rating: 4.89/5    Votes: 7   Popularity: 4.07
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
This post will focus on the concept of SFINAE, Substitution Failure Is Not An Error. This is a core concept that is one of the reasons templates are even possible. This concept is related exclusively to the processing of templates. It is referred to as SFINAE by the community, and this entry focuses
Other .NET Languages
General
Posted: 22 Mar 2014   Updated: 22 Mar 2014   Views: 3,740   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
Libraries
Code Libraries
Posted: 6 Dec 2014   Updated: 6 Dec 2014   Views: 2,880   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   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 have written about many of the concepts that are required to implem
Social Network APIs
General
Posted: 18 Mar 2014   Updated: 18 Mar 2014   Views: 2,970   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: 6,560   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: 4,560   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: 6,160   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: 4,250   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,680   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: 4,090   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: 6,280   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: 13,640   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,600   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: 5,620   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   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: 9,640   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.
Unit Testing
Posted: 14 Oct 2014   Updated: 14 Oct 2014   Views: 3,060   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
How often are you given instructions by a person of authority and then at some later point in time witness them going against exactly what they just asked you to do?!Your dad telling you not to drink out of the milk carton; then you catch him washing down a bite of chocolate cake with a swig directl
Testing and QA
General
Posted: 13 Feb 2014   Updated: 14 Feb 2014   Views: 6,650   Rating: 4.95/5    Votes: 7   Popularity: 4.18
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   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,850   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
Posted: 13 Dec 2014   Updated: 13 Dec 2014   Views: 4,300   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
The Devil's Advocate is often an effective role that can help uncover logical weaknesses for a point of view. For those that are unfamiliar with this term, the Devil's Advocate takes a position that they do not necessarily agree with for the sake of debate. I usually do it to learn more about the to
Posted: 19 Dec 2014   Updated: 19 Dec 2014   Views: 5,020   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Code reviews seem to be the bane of many developers. Very few developers that I know like to participate in code reviews. Once they do participate, the criticisms about the code are superficial. Some examples are criticizing the lack of comments, violations to the naming conventions in the guideline
Work Issues
The Developer's Life
Posted: 21 Jan 2014   Updated: 21 Jan 2014   Views: 5,300   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
Posted: 7 Dec 2014   Updated: 7 Dec 2014   Views: 3,660   Rating: 4.93/5    Votes: 5   Popularity: 3.38
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
No one likes to be wrong, except maybe the class clown; even then, I'm sure they don't like it if their incorrect answer does not get any laughs from the others. I especially hate when someone breaks the build, and the cause turns out to be a change that I made. I learned long ago not to try to chas
Posted: 4 Mar 2015   Updated: 5 Mar 2015   Views: 1,760   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
What does one-size fits all mean? I suppose there are two way to answer that question, 1) How well do you want it to fit? 2) What do you mean by 'all'? For example, a clothing manufacturer is content with the percentage of the population that their product will fit, such as a T-shirt, hat or Snuggie
Uncategorised Technical Blogs
General
Posted: 15 Apr 2014   Updated: 15 Apr 2014   Views: 2,700   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: 4,280   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: 3,370   Rating: 5.00/5    Votes: 1   Popularity: 0.00
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
Posted: 16 Oct 2014   Updated: 16 Oct 2014   Views: 2,050   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Value semantics for an object indicates that only its value is important. Its identity is irrelevant. The alternative is reference/pointer semantics; the identity of the object is at least as important as the value of the object. This terminology is closely related to pass/copy-by-value and pass-by-
Posted: 17 Dec 2014   Updated: 17 Dec 2014   Views: 9,170   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
When I first started my college education to become a Computer Scientist (Programmer) an ignorant acquaintance of mine told me with some uncertainty, "Computer programming, don't they have computers write the programs now?" I thought he may have been thinking of the compiler. Alas, no. He continued
Posted: 18 Dec 2014   Updated: 18 Dec 2014   Views: 5,200   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
Alchemy: Message Buffer
Posted: 21 Dec 2014   Updated: 21 Dec 2014   Views: 2,310   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   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++. This is an Open Source project and can be found at GitHub.If you hav
Posted: 17 Jan 2015   Updated: 17 Jan 2015   Views: 2,160   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
It seems that every developer has their own way of doing things. I know I have my own methodologies, and some probably are not the simplest or the best (that I am aware of). I have continued to refine me design, development, test and software support skills through my career.I recognize that everyon
Posted: 4 Feb 2015   Updated: 4 Feb 2015   Views: 2,240   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   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++.After I had proven to myself that serializing data with a template me
Posted: 7 Feb 2015   Updated: 7 Feb 2015   Views: 5,270   Rating: 5.00/5    Votes: 9   Popularity: 4.77
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
There is so much confusion surrounding the purpose of a Software Architect and the value they provide and what they are supposed to do. So much so, that it seems the title is being used less and less by companies and replaced with a different title such as principal or staff. I assume this is due to
Posted: 12 Feb 2015   Updated: 12 Feb 2015   Views: 1,750   Rating: 0.0 / 5    Votes: 0   Popularity: 0.0
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
A continuation of a series of blog entries that documents the design and implementation process of a library. The library is called, Network Alchemy[^]. Alchemy performs low-level data serialization. It is written in C++ using template meta-programming.At this point, I was still in the make it work
Posted: 21 Feb 2015   Updated: 21 Feb 2015   Views: 1,790   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
A few weeks ago I wrote an entry on SFINAE[^], and I mentioned enable_if. At that point I had never been able to successfully apply enable_if. I knew this construct was possible because of SFINAE, however, I was letting the differences between SFINAE and template specialization confuse me. I now hav
Posted: 28 Mar 2015   Updated: 28 Mar 2015   Views: 1,940   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Bikeshedding
Reviews on Third Party Products and Tools
General
Posted: 14 Jan 2015   Updated: 14 Jan 2015   Views: 1,810   Rating: 4.75/5    Votes: 4   Popularity: 2.90
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
I found the metaphorical Silver Bullet that everyone has been searching for in software development and it worked beautifully on my last project. Unfortunately, I only had one of them. I am pretty sure that I could create another one if I ever have to work with a beast that is similar to my last pro
No tips have been posted.
No reference articles have been posted.

Paul M Watt
Architect L3 Communications
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
* Network Device drivers
* Embedded system software for
- IP routers
- ATM switches
- Microwave frequency radio/modems
* Distributed processing w/ parallel algorithms.

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 creator 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/[^], because code maintenance does not have to be a living hell.

Then for fun I will tinker with my ray-tracer when ever I upgrade my hardware to see what it is capable of doing.
Follow on   Twitter   LinkedIn


Advertise | Privacy | Mobile
Web03 | 2.8.150414.1 | Last Updated 18 Apr 2015
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid