Publications
This page details the published books, columns, articles / tips and blogs written by employees of Synesis Software and others.
Columns & Article Series
Note: many of the publishing and open-source activities have been curtailed throughout 2010-2012 due to a very consuming commercial engagement, which is projected to finally ease off in August 2012, after which much activity on articles, blogs, books, columns, libraries, and so on will recommence.
From September 2012, Matthew Wilson will write an occasional series of articles about software anatomies for the ACCU's CVu magazine.
- "Building C & C++ CLI Programs with the libCLImate Mini-framework", Matthew Wilson, CVu, November 2015
- "Software Anatomies, part 2: Anatomy of a CLI Program Written in C++", Matthew Wilson, CVu, September 2015
- "Software Anatomies, part 1: Anatomy of a CLI Program Written in C", Matthew Wilson, CVu, September 2012
From August 2009, Matthew Wilson will write the Quality Matters column for the ACCU's Overload magazine. As from 2015, a bitesize / TL;DR format is adopted for some of the smaller instalments, known as QM Bites:
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
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
Articles
Note: many of the publishing and open-source activities have been curtailed throughout 2010-2012 due to a very consuming commercial engagement, which is projected to finally ease off in August 2012, after which much activity on articles, blogs, books, columns, libraries, and so on will recommence.
Our staff have contributed to the following articles at technical conferences and in industry publications:
- "An Introduction to CLASP, part 1: C", Matthew Wilson, CVu, January 2012
- "Enumerating Experiences", Matthew Wilson, CVu, September 2011
- "Further Experiments in String Switching", Matthew Wilson, CVu, March 2011
- "Flexible Function Façades for C and C++", Matthew Wilson, CVu, September 2010
- "Experiments in String Switching", Matthew Wilson, CVu, July 2010
- "C++ and format_iterator", Matthew Wilson, Dr Dobb's Journal, June 2010
- "recls 100% .NET", Matthew Wilson, Dr Dobb's Journal, November 2009
- "Safe and Efficient Error Information", Matthew Wilson, CVu, July 2009
- "An Introduction to FastFormat, part 3: Solving Real Problems, Quickly", Matthew Wilson, Overload June 2009
- "An Introduction to FastFormat, part 2: Custom Argument and Sinks Types", Matthew Wilson, Overload April 2009
- "xCover", Matthew Wilson, CVu, March 2009
- "An Introduction to FastFormat, part 1: The State of the Art", Matthew Wilson, Overload February 2009
- "!(C ^ C++)", Matthew Wilson, CVu, November 2008
- "An Enhanced ostream_iterator", Matthew Wilson, Dr Dobb's Journal, June 2007
- "A Custom Event Layer for the ACE Reactor Framework", Matthew Wilson and Garth Lancaster, CVu, April 2007
- "The Nuclear Reactor and The Deep Space Probe, part 1", Matthew Wilson, The C++ Source, Jan 1, 2006
- "Adapting Interface-Incomplete Types At Compile Time", Matthew Wilson, C/C++ User's Journal, Volume 23 Number 12, December 2005
- "Stream Thy Strings", Bjorn Karlsson and Matthew Wilson, The C++ Source, May 28, 2005
- "What's Your Address?", Matthew Wilson, The C++ Source, April 8, 2005
- "C++ & operator []=", Matthew Wilson, Dr Dobb's Journal, #371, April 2004
- "Ranges, part 2: Iterable Range Adaptors, Algorithms and Composition", John Torjo and Matthew Wilson, C/C++ User's Journal, Volume 22 Number 12, December 2004
- "Wild-card Searches of UNIX Directories with Random Access Iterators", Matthew Wilson, The C++ Source, September 12, 2004
- "Ranges, part 1: Concepts and Implementation", Matthew Wilson and John Torjo, C/C++ User's Journal, Volume 22 Number 10, October 2004
- "Reading UNIX Directories via STL-compliant Sequences", Matthew Wilson, The C++ Source, June 21, 2004
- "Identity and Equality in .NET", Matthew Wilson, Dr Dobb's Journal, #361, June 2004
- "Fast, Non-intrusive, String Concatenation", Matthew Wilson, C/C++ User's Journal, Volume 22 Number 6, June 2004
- "C/C++ Compiler Optimization", Matthew Wilson, Dr Dobb's Journal, #360, May 2004 - Errata
- "Collection Enumeration: Loops, Iterators and Nested Functions", Walter Bright and Matthew Wilson, Dr Dobb's Journal, #358, March 2004
- "Adapting Callback Enumeration APIs to the Input Iterator Concept", Matthew Wilson, C/C++ User's Journal, Volume 22 Number 2, February 2004
- "Handling Multiple Win32 Operating Environments", Matthew Wilson, Windows Developer Network, Volume 2 Number 12, December 2003
- "Efficient Variable Automatic Buffers", Matthew Wilson, C/C++ User's Journal, Volume 21 Number 12, December 2003
- "Open Source Software: What, How and Why", Matthew Wilson, BYTE, week of 24th November 2003
- "Data exchange between COM enumerators and Windows controls", Matthew Wilson, Windows Developer Network, Volume 2 Number 11, November 2003 - Errata
- "Identity and Equality: Syntax and Semantics", Matthew Wilson, C/C++ User's Journal, Volume 21, Number 10, October 2003
- "Comparing C++ Compilers", Matthew Wilson, Dr Dobb's Journal, #353, October 2003 - Errata
- "C# Performance: Comparison with C, C++, D and Java, Part 2", Matthew Wilson, Windows Developer Network, special online supplement, fall 2003
- "C# Performance: Comparison with C, C++, D and Java, Part 1", Matthew Wilson, Windows Developer Network, special online supplement, fall 2003
- "Win32 Security in Managed C++", Matthew Wilson, Windows Developer Network, Volume 2 Number 9, September 2003
- "Rebooting from the Shell", Matthew Wilson, Windows Developer Network, Volume 2 Number 8, August 2003
- "Generalised String Manipulation: Access Shims and Type-tunnelling", Matthew Wilson, C/C++ User's Journal, Volume 21 Number 8, August 2003
- "Open-source Flexibility via Namespace Aliasing", Matthew Wilson, C/C++ User's Journal, Volume 21 Number 7, July 2003
- "Win32 Performance Measurement Options", Matthew Wilson, Windows Developer Network, Volume 2 Number 5, May 2003
- "XML Parser Usability and Performance", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 4, April 2003
- "True Typedefs", Matthew Wilson, C/C++ User's Journal, Volume 21 Number 3, March 2003
- "Adapting Windows Enumeration Models to STL Iterator Concepts", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 3, March 2003
- "Avoiding the Visual C++ Runtime Library", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 2, February 2003
- "Embedded Dialog Management", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 12, December 2002 - Errata
- M. D. Wilson, "Photonic packet-switching networks", PhD Thesis, MMU, January 1996
- J. M. Senior, M. D. Wilson, R. A. Cryan, I. Hawker, "Traffic study of ATM over passive optical networks", SPIE Proc., Vol. 2614 All-optical communication systems: Architecture, control and network issues, Philadelphia, October 1995
- M. D. Wilson, J. M. Senior, R. A. Cryan, I. Hawker, "Topology effects in ATM core-network performance", Communication Networks Symposium. The Manchester Metropolitan University, pp. 141-44, 10-11 July 1995
- M. D. Wilson, A. J. Phillips, J. M. Senior, R. A. Cryan, I. Hawker, "Bursty traffic modelling for ATM networks", Proc. SPIE, 2450, 'Broadband networks: Strategies and Technologies', Amstersam, Holland, pp. 90-6, March 1995
- J. M. Senior, M. D. Wilson, A. J. Phillips, R. A. Cryan, I. Hawker, "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
- M. D. Wilson, A. J. Phillips, J. M. Senior, R. A. Cryan, I. Hawker, "An algorithm for generating bursty traffic", Communication Networks Symposium. The Manchester Metropolitan University, pp. 110-113, 11-12 July 1994
Tips / Small Articles
Note: many of the publishing and open-source activities have been curtailed throughout 2010-2012 due to a very consuming commercial engagement, which is projected to finally ease off in August 2012, after which much activity on articles, blogs, books, columns, libraries, and so on will recommence.
- "Enumerating Registry Sub-keys in D", Matthew Wilson, Dr Dobb's Journal, #362, Volume 29 Number 7, July 2004
- "Accessing C-string Representations of Strings in Managed C++", Matthew Wilson, Dr Dobb's Journal, #359, Volume 29 Number 4, April 2004
- "An Even Better RegDeleteKey", Matthew Wilson, Dr Dobb's Journal, #358, Volume 29 Number 3, March 2004
- "Cleaning up Component Categories", Gregory Peet and Matthew Wilson, Dr Dobb's Journal, #358, Volume 29 Number 3, March 2004
- "Safer Node Browsing with Microsoft's XML DOM", Matthew Wilson, Windows Developer Network, Volume 2 Number 11, November 2003
- "Beware Null ListViewSubItems in .NET", Matthew Wilson, Windows Developer Network, Volume 2 Number 11, November 2003
- "Inserter Function Objects for Windows Controls", Matthew Wilson, Windows Developer Network, Volume 2 Number 11, November 2003
- "Accessing IDL ref Types as C++ References", Matthew Wilson, Windows Developer Network, Volume 2 Number 8, August 2003
- "Accessing Old-style List-view Headers", Matthew Wilson, Windows Developer Network, Volume 2 Number 8, August 2003
- "MIDL Semantic Analysis Bug", Matthew Wilson, Windows Developer Network, Volume 2 Number 8, August 2003
- "Beware of GetFullPathNameW", Matthew Wilson, Windows Developer Network, Volume 2 Number 7, July 2003
- "Visual SourceSafe and .NET interroperability", Matthew Wilson, Windows Developer Network, Volume 2 Number 7, July 2003
- "Locking Window Updates" Matthew Wilson, Windows Developer Network, Volume 2 Number 6, June 2003
- "A printf for Message Boxes" Matthew Wilson, Windows Developer Network, Volume 2 Number 5, May 2003
- "A Shareable Approach to Debugging Additional DLLs" Matthew Wilson, Windows Developer Network, Volume 2 Number 5, May 2003
- "Duplicating Registry Keys with RegKeyDup", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 4, April 2003
- "Translating Paths On Mapped Network Drives", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 3, March 2003
- "Spying on Function Returns and Local Variables in Debugging", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 2, February 2003
- "Taming CoInitializeSecurity", Matthew Wilson, Windows Developer Magazine, Volume 14 Number 1, January 2003
- "A Function For The Flexible Centering Of Windows", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 12, December 2002
- "Custom Keyboard Navigation with Mnemonics, Part 2", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 12, December 2002
- "Efficient Integer To String Conversions", Matthew Wilson, C/C++ User's Journal, Volume 20 Number 12, December 2002
- "Custom Keyboard Navigation with Mnemonics, Part 1", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 11, November 2002
- "Custom Keyboard Navigation with Radio Buttons, Part 2", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 11, November 2002
- "Querying Multiple IDispatch Method Identifiers", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 10, October 2002
- "Counting NULL Termination in Path Length Computations", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 9, September 2002
- "A Function For Sending Messages To Threads Synchronously", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 7, July 2002
- "Custom Keyboard Navigation with Radio Buttons", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 5, May 2002
- "Options for Indicating Progress of Variable-Length Operations", Matthew Wilson, Windows Developer Magazine, Volume 13 Number 2, February 2002
- "Generating Out-Of-Memory Exceptions", Matthew Wilson, Windows Developer's Journal, Volume 12 Number 5, May 2001
Blogs
Note: many of the publishing and open-source activities have been curtailed throughout 2010-2012 due to a very consuming commercial engagement, which is projected to finally ease off in August 2012, after which much activity on articles, blogs, books, columns, libraries, and so on will recommence.
- Professional / Guest
-
From November 2009 - May 2011, Matthew was asked to write
a blog on Windows/.NET
as one of the
guru blogs
on Dr Dobb's CodeTalk
[content: technical; frequency: 2-4/month] -
Prescriptions, Proscriptions, and Prognostications on Artima
[content: programming related; frequency: rarely]
-
From November 2009 - May 2011, Matthew was asked to write
a blog on Windows/.NET
as one of the
guru blogs
on Dr Dobb's CodeTalk
- Book-related
-
blog.extendedstl.com, covering issues related to the 2007 book
Extended STL, volume 1: Collections and Iterators, by Matthew Wilson,
published by Addison-Wesley
[content: technical/news; frequency: occasional] -
blog.imperfectcplusplus.com, covering issues related to the 2004 book
Imperfect C++: Practical Solutions for Real-Life Programming, by Matthew Wilson,
published by Addison-Wesley
[content: technical/news; frequency: occasional] -
blog.imperfectcsharp.com, covering issues related to the forthcoming 2013 book
Imperfect C#: Practical Solutions for Real-Life .NET Programming, by Matthew Wilson, et al
[content: technical/news; frequency: occasional] -
blog.breakingupthemonolith.com, covering issues related to the forthcoming 2013 book
Breaking Up The Monolith: Advanced C++ Software Design without Compromise, by Matthew Wilson
[content: technical/news; frequency: occasional]
-
blog.extendedstl.com, covering issues related to the 2007 book
Extended STL, volume 1: Collections and Iterators, by Matthew Wilson,
published by Addison-Wesley
- Open source-related
- Miscellaneous
- Skegging it out - a blog that contains useful tips for getting programming/setup things done in a future-shocked, technology-swamped world