The Weird and The Wonderful
The Weird and The Wonderful forum is a place to post Coding Horrors,
Worst Practices, and the occasional flash of brilliance.
We all come across code that simply boggles the mind. Lazy kludges, embarrassing mistakes, horrid
workarounds and developers just not quite getting it. And then somedays we come across - or write -
the truly sublime.
Post your Best, your worst, and your most interesting. But please - no
programming questions . This forum is purely for amusement and discussions on code snippets. All
actual programming questions will be removed.
|The https://github.com/txwizard/WizardWrx_NET_API is now at version 7.15, with one subtle bug smashed flat and a few interesting, but obscure changes. As always full documentation is at https://txwizard.github.io/WizardWrx_NET_API/.
What makes this especially interesting is the way the bug that motivated this update came to the surface; it appeared in the output dumped into the Visual Studio debugger window of an application that consumed it.
Numerous distractions interfered with finishing the repair. The event that pushed me to finish it was a very minor addition that I needed to make to
WizardWrx.Common.dll, one of three libraries that underpin the whole API. The common library is composed almost entirely of constants, to which I needed to add a few new ones so that I can use them as building blocks from which to build other string constants. Though all of them were already defined as character constants, you cannot mix character and string constants in the definition of a new string constant.
The WizardWrx .NET API is a set of libraries that expose a rich set of general-purpose helper classes for use in projects that target the Microsoft .NET Framework. Among other things, they offer the following.
1) Syntactic sugar, such as the routines that identify the first, last, and next-to-last iteration of a
FOR loop, convert subscripts to and from ordinals (zero-based versus one-based subscripts), compute a modulus (remainder), and perform decimal shifts
2) Prse dynamically generated format control strings (used with
string.format and such),
3) Reduce computing message digests to a single method call
4) Transparently convert Registry values of all types into native types (strings, integers of various sizes, and byte arrays)
5) Parse command line arguments for any program (command line or graphical),
6) Add numerous extension methods to
7) Simplify working with the match groups returned by the Regular Expression engine
8) Dynamically generate format strings to compactly represent data in tabular format
9) Implement the Singleton design pattern in a way that fully leverages certain guarantees about the behavior of static constructors
10) Format and log exception reports, optionally recording them in a Windows Event Log and efficiently reporting them on the two standard console output streams, taking into account when either or both has been redirected to a file
11) Accurately identify the type of processor on which the code is executing and the Windows subsystem (character mode, graphical, etc.) in which it is executing
12) Walk the dependency tree of any executing assembly
13) Sort collections of FileInfo objects, so that the files they represent can be processed in any order
14) Provide scores of handy symbolic constants to disambiguate and properly document your code
The3re is much more; these are the highlights, most of which I use daily.
David A. Gray
Delivering Solutions for the Ages, One Problem at a Time
Interpreting the Fundamental Principle of Tabular Reporting
modified 4-May-19 3:09am.
General News Suggestion Question Bug Answer Joke Praise Rant Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.