... other Synesis site links:  [ STLSoft ] [ Open-RJ ] [ Pantheios ] [ recls ] [ shwild ]
Articles - Article Errata - Books - Shell Extensions - Software Libraries - System Tools


This page details the published articles / tips, books, columns, white-papers, blogs, etc. done by employees of Synesis Software and others.

 

Books

Imperfect C++, by Matthew Wilson, was published by Addison-Wesley in October 2004.

  -  Reviews
  -  Errata

  Check it out at Amazon, where it's currently averaging stars:
Click through to Amazon.com

Extended STL, volume 1: Collections and Iterators, by Matthew Wilson, was published by Addison-Wesley, in June 2007.

See http://extendedstl.com/ for details.

Extended STL, volume 2 is in early preparation, and will be published by Addison-Wesley, in 2009/10.

Breaking up the Monolith is in early preparation, and will be published by Addison-Wesley, in 2009.

See http://breakingupthemonolith.com/ for details.

Selected chapters are available online:

Selected chapters from volume 1 are available online:

  • Preface
  • Prologue
  • Chapter 23: The Fibonacci Sequence
  • Chapter 34: An Enhanced ostream_iterator
  • Chapter 42: Filtered Iteration
  •  

    Columns

    From 2003-5, Matthew Wilson wrote for C/C++ User's Journal/Dr Dobb's Journal in the the online Expert's Forum column Flexible C++.

  • "Finding Child Windows with Simulated Local Functions", December 2005
  • "Beware Mixed Collection/Enumerator Interfaces", November 2005
  • "Imperfect enums, part 2: Forward Declarations", May 2005
  • "Imperfect enums, part 1: Declarations, Definitions, and Namespace Leakage", April 2005
  • "Beware Logical Constness", February 2005
  • "Succinct Options Validation with Expression Templates", December 2004
  • "Union Casts Considered Harmful, but Necessary", September 2004
  • "Handling Parameter Sets in Member Initialiser Lists: With A Little Help From MUMI!", June 2004
  • "Friendly Templates: Redux", June 2004
  • "Flexible Implementations Without Using Directives", April 2004
  • "Efficient Integer To String Conversions, part 4", January 2004
  • "Friendly Templates", December 2003
  • "Efficient Integer To String Conversions, part 3", November 2003
  • "Efficient Integer To String Conversions, part 2", September 2003
  • From 2003-6, Matthew Wilson wrote for C/C++ User's Journal in the (in-print) column Positive Integration.

  • "A View to a String, part 1: Design and Definition", C/C++ User's Journal, Volume 24 Number 1, January 2006
  • "Argument-dependent Return-type Variance", C/C++ User's Journal, Volume 23 Number 11, November 2005
  • "Footprints in the butter, part 2", C/C++ User's Journal, Volume 23 Number 9, September 2005
  • "Footprints in the butter, part 1", C/C++ User's Journal, Volume 23 Number 7, July 2005
  • "Open-RJ/D, 100-Percent D", C/C++ User's Journal, Volume 23 Number 5, May 2005
  • "Open-RJ Memory Databases, and C++.NET", C/C++ User's Journal, Volume 23 Number 3, March 2005
  • "Open-RJ and Python", C/C++ User's Journal, Volume 23 Number 1, January 2005
  • "Open-RJ and Ch", C/C++ User's Journal, Volume 22 Number 11, November 2004
  • "recls refactored", C/C++ User's Journal, Volume 22 Number 9, September 2004
  • "Ruby: The Next Facet", C/C++ User's Journal, Volume 22 Number 7, July 2004
  • "Mapping recls to COM Collections", C/C++ User's Journal, Volume 22 Number 5, May 2004
  • "Mapping D and Java", C/C++ User's Journal, Volume 22 Number 3, March 2004
  • "Introducing recls mappings: C++, C# and STL", C/C++ User's Journal, Volume 22 Number 1, January 2004
  • "Introducing recls", C/C++ User's Journal, Volume 21 Number 11, November 2003
  • Bjorn Karlsson and Matthew Wilson write an occasional column for The C++ Source: Smart Pointers.

  • "Contract Programming 101", The C++ Source, December 31st, 2005
  • "Stream Thy Strings", The C++ Source, May 28th, 2005
  • "Reducing Pre-processor Namespace Pollution", The C++ Source, November 6th, 2004
  • "The Law of the Big Two", The C++ Source, October 1st, 2004
  • Articles

    Our staff have contributed to the following articles at technical conferences and in industry publications:

  • , "An Enhanced ostream_iterator", Dr Dobb's Journal, June 2007
  • , "A Custom Event Layer for the ACE Reactor Framework", CVu, April 2007
  • , "The Nuclear Reactor and The Deep Space Probe, part 1", The C++ Source, Jan 1, 2006
  • , "Adapting Interface-Incomplete Types At Compile Time", C/C++ User's Journal, Volume 23 Number 12, December 2005
  • , "Stream Thy Strings", The C++ Source, May 28, 2005
  • , "What's Your Address?", The C++ Source, April 8, 2005
  • , "C++ & operator []=", Dr Dobb's Journal, #371, April 2004
  • , "Ranges, part 2: Iterable Range Adaptors, Algorithms and Composition", C/C++ User's Journal, Volume 22 Number 12, December 2004
  • , "Wild-card Searches of UNIX Directories with Random Access Iterators", The C++ Source, September 12, 2004
  • , "Ranges, part 1: Concepts and Implementation", C/C++ User's Journal, Volume 22 Number 10, October 2004
  • , "Reading UNIX Directories via STL-compliant Sequences", The C++ Source, June 21, 2004
  • , "Identity and Equality in .NET", Dr Dobb's Journal, #361, June 2004
  • , "Fast, Non-intrusive, String Concatenation", C/C++ User's Journal, Volume 22 Number 6, June 2004
  • , "C/C++ Compiler Optimization", Dr Dobb's Journal, #360, May 2004   -  Errata
  • , "Collection Enumeration: Loops, Iterators and Nested Functions", Dr Dobb's Journal, #358, March 2004
  • , "Adapting Callback Enumeration APIs to the Input Iterator Concept", C/C++ User's Journal, Volume 22 Number 2, February 2004
  • , "Handling variation in Win32 operating environments", Windows Developer Network, Volume 2 Number 12, December 2003
  • , "Efficient Variable Automatic Buffers", C/C++ User's Journal, Volume 21 Number 12, December 2003
  • , "Open Source Software: What, How and Why", BYTE, week of 24th November 2003
  • , "Data exchange between COM enumerators and Windows controls", Windows Developer Network, Volume 2 Number 11, November 2003   -  Errata
  • , "Identity and Equality: Syntax and Semantics", C/C++ User's Journal, Volume 21, Number 10, October 2003
  • , "Comparing C++ Compilers", Dr Dobb's Journal, #353, October 2003   -  Errata
  • , "C# Performance: Comparison with C, C++, D and Java, Part 2", Windows Developer Network, special online supplement, fall 2003
  • , "C# Performance: Comparison with C, C++, D and Java, Part 1", Windows Developer Network, special online supplement, fall 2003
  • , "Win32 Security in Managed C++", Windows Developer Network, Volume 2 Number 9, September 2003
  • , "Rebooting from the Shell", Windows Developer Network, Volume 2 Number 8, August 2003
  • , "Generalised String Manipulation: Access Shims and Type-tunnelling", C/C++ User's Journal, Volume 21 Number 8, August 2003
  • , "Open-source Flexibility via Namespace Aliasing", C/C++ User's Journal, Volume 21 Number 7, July 2003
  • , "Win32 Performance Measurement Options", Windows Developer Network, Volume 2 Number 5, May 2003
  • , "XML Parser Usability and Performance", Windows Developer Magazine, Volume 14 Number 4, April 2003
  • , "True Typedefs", C/C++ User's Journal, Volume 21 Number 3, March 2003
  • , "Adapting Windows Enumeration Models to STL Iterator Concepts", Windows Developer Magazine, Volume 14 Number 3, March 2003
  • , "Avoiding the Visual C++ Runtime Library", Windows Developer Magazine, Volume 14 Number 2, February 2003
  • , "Embedded Dialog Management", Windows Developer Magazine, Volume 13 Number 12, December 2002   -  Errata
  • , "Photonic packet-switching networks", PhD Thesis, MMU, January 1996
  • , "Traffic study of ATM over passive optical networks", SPIE Proc., Vol. 2614 All-optical communication systems: Architecture, control and network issues, Philadelphia, October 1995
  • , "Topology effects in ATM core-network performance", Communication Networks Symposium. The Manchester Metropolitan University, pp. 141-44, 10-11 July 1995
  • , "Bursty traffic modelling for ATM networks", Proc. SPIE, 2450, 'Broadband networks: Strategies and Technologies', Amstersam, Holland, pp. 90-6, March 1995
  • , "A programmable bursty traffic algorithm for use in packet-level discrete time packet switch simulation studies", 1994 IEEE Singapore International Conference on Communication Systems, pp. 1001-3, 1994
  • , "An algorithm for generating bursty traffic", Communication Networks Symposium. The Manchester Metropolitan University, pp. 110-113, 11-12 July 1994
  • Tips / Small Articles

  • , "Enumerating Registry Sub-keys in D", Dr Dobb's Journal, #362, Volume 29 Number 7, July 2004
  • , "Accessing C-string Representations of Strings in Managed C++", Dr Dobb's Journal, #359, Volume 29 Number 4, April 2004
  • , "An Even Better RegDeleteKey", Dr Dobb's Journal, #358, Volume 29 Number 3, March 2004
  • , "Cleaning up Component Categories", Dr Dobb's Journal, #358, Volume 29 Number 3, March 2004
  • , "Safer Node Browsing with Microsoft's XML DOM", Windows Developer Network, Volume 2 Number 11, November 2003
  • , "Beware Null ListViewSubItems in .NET", Windows Developer Network, Volume 2 Number 11, November 2003
  • , "Inserter Function Objects for Windows Controls", Windows Developer Network, Volume 2 Number 11, November 2003
  • , "Accessing IDL ref Types as C++ References", Windows Developer Network, Volume 2 Number 8, August 2003
  • , "Accessing Old-style List-view Headers", Windows Developer Network, Volume 2 Number 8, August 2003
  • , "MIDL Semantic Analysis Bug", Windows Developer Network, Volume 2 Number 8, August 2003
  • , "Beware of GetFullPathNameW", Windows Developer Network, Volume 2 Number 7, July 2003
  • , "Visual SourceSafe and .NET interroperability", Windows Developer Network, Volume 2 Number 7, July 2003
  • , "Locking Window Updates" Windows Developer Network, Volume 2 Number 6, June 2003
  • , "A printf for Message Boxes" Windows Developer Network, Volume 2 Number 5, May 2003
  • , "A Shareable Approach to Debugging Additional DLLs" Windows Developer Network, Volume 2 Number 5, May 2003
  • , "Duplicating Registry Keys with RegKeyDup", Windows Developer Magazine, Volume 14 Number 4, April 2003
  • , "Translating Paths On Mapped Network Drives", Windows Developer Magazine, Volume 14 Number 3, March 2003
  • , "Spying on Function Returns and Local Variables in Debugging", Windows Developer Magazine, Volume 14 Number 2, February 2003
  • , "Taming CoInitializeSecurity", Windows Developer Magazine, Volume 14 Number 1, January 2003
  • , "A Function For The Flexible Centering Of Windows", Windows Developer Magazine, Volume 13 Number 12, December 2002
  • , "Custom Keyboard Navigation with Mnemonics, Part 2", Windows Developer Magazine, Volume 13 Number 12, December 2002
  • , "Efficient Integer To String Conversions", C/C++ User's Journal, Volume 20 Number 12, December 2002
  • , "Custom Keyboard Navigation with Mnemonics, Part 1", Windows Developer Magazine, Volume 13 Number 11, November 2002
  • , "Custom Keyboard Navigation with Radio Buttons, Part 2", Windows Developer Magazine, Volume 13 Number 11, November 2002
  • , "Querying Multiple IDispatch Method Identifiers", Windows Developer Magazine, Volume 13 Number 10, October 2002
  • , "Counting NULL Termination in Path Length Computations", Windows Developer Magazine, Volume 13 Number 9, September 2002
  • , "A Function For Sending Messages To Threads Synchronously", Windows Developer Magazine, Volume 13 Number 7, July 2002
  • , "Custom Keyboard Navigation with Radio Buttons", Windows Developer Magazine, Volume 13 Number 5, May 2002
  • , "Options for Indicating Progress of Variable-Length Operations", Windows Developer Magazine, Volume 13 Number 2, February 2002
  • , "Generating Out-Of-Memory Exceptions", Windows Developer's Journal, Volume 12 Number 5, May 2001
  • White-papers

    Some company internal whitepapers that have not found their way into other forums.

  • M. D. Wilson, "Move Constructors", 2001, 2002, 2003
  • M. D. Wilson, "Shims - A Definition", 2002
  • M. D. Wilson, "Safe CString Buffer Access", 1998, 2002
  • Errata

    In 2003 I've been accused of being a hater of, or a propagandist for, one software vendor or another, sometimes both accusations regarding the same vendor in the same week! Neither of these are true. I am an independent software development consultant, who's taken time out this year to pursue some writing activities. By nature I'm a pragmatist, and thus my writing reports in respect of that. I use something if I find it useful, not because it is, or is not, produced by a particular company or organisation.

    I'm not sure whether it's the fashion to admit one's mistakes, but I believe that honesty is the best policy. Therefore, as well as providing a record of (and online access to, in most cases) my writing activities this page provides a place in which to set the record straight wherever I've made a mistake. If you see Errata next to an article, I've either made a mistake, or something requires clarification, or both, so prick my conscience and click the link.

    Thanks for listening, Matthew Wilson.

    Technical Editing

    We provide technical editing services, on a range of topics including C++, COM, Windows technologies, Java & J2EE, for several leading book publishers and industry magazines. including the following:
  • Steve Dewhurst, C++ Common Knowledge, Addison-Wesley, 2005
  • Steve Dewhurst, C++ Gotchas, Addison-Wesley, 2003
  • Bjorn Karlsson, Beyond the C++ Standard Library - An Introduction to Boost, Addison-Wesley, 2005
  • Scott Meyers, Effective C++, 3rd Edition, Addison-Wesley, 2005
  • Herb Sutter and Andrei Alexandrescu, C++ Coding Standards, Addison-Wesley, 2004
  • Weblog

    Matthew Wilson has a weblog (blog) on artima.com.

    You can subscribe to be notified of new posts by via Artima's RSS.
  • Breaking Up The Monolith: The End of the Procrastination! The C++ Source, September 10th 2008
  • Development Management: Carthorse, Racehorse, or Wild Horse? The C++ Source, September 9th 2008
  • Why do Open Source? The C++ Source, April 26th 2008
  • To blog, or not to blog? The C++ Source, April 24th 2008
  • An exercise in compromise in class interface refinement The C++ Source, June 1st 2007
  • Monolith: Facts, Failures, Fallacies, Falsehoods and Furphies The C++ Source, December 3rd 2006
  • Back on board ... The C++ Source, December 3rd 2006
  • "What is Documentation? Can we expect s/w engineers 2 be good at all facets?", The C++ Source, 6th June 2005
  • "Contract Enforcement for humanity ... ?", The C++ Source, 30th April 2005
  • "Definite proDuctivity aDvantages", The C++ Source, 21st April 2005
  • "What's the deal with customer service?", The C++ Source, 20th April 2005
  • "To new, or not to new, which is the best one?", The C++ Source, 19th April 2005
  • "Jumping from the top of The Parachutes", The C++ Source, 18th April 2005
  • "Software Engineers are like Cyclists", The C++ Source, 16th April 2005
  • "The Elephant in the Living Room", The C++ Source, 10th April 2005
  • "Introductions: Rants, Ravings and Ruminations", The C++ Source, 10th April 2005
  •  

     
    Synesis Software Pty Ltd (Australia). ACN 087 421 798
    Web-site design by  Red 5