Bring back NWA!
From my run tonight.
Listening to @ImeldaOfficial today.
I have to get something off my chest, and it’s petty and trite just as all
my little pet peeves are. Consider it a public service
announcement: “Begging the question” and “raising the question” are not the
same, and normally when people say the former, they mean the latter.
Begging the question means to assume the very conclusion that you are
trying to prove. Here’s this example from the Wikipedia entry:
"To allow every man an unbounded freedom of speech must always be, on the
whole, advantageous to the State, for it is highly conducive to the
interests of the community that each individual should enjoy a liberty
perfectly unlimited of expressing his sentiments.”
Basically the above quote is saying “Freedom of speech in society is good
because it is good to have a society with free speech.” The argument begs
the question of what makes free speech good in the first place. It is
I don’t fault and don’t correct people who use “begs the question” to
mean “raises the question”. I used to do it as well until relatively
recently. Now that I’ve been set right, when I hear it, and how often I
hear it, it grates on me; just as fewer v. less and who v. whom are like
sandpaper to my eardrums when I hear them. It’s just personal, and I’m a
grammatical jerk (uh… to coin a phrase).
I started this post back in the beginning of 2013. I apparently tossed my
exported rules(*), so am redoing them and thought I would revisit my own,
hopefully useful, advice.
I swear, why is it so hard to find documentation on doing some of the
simplest programming things? Why is it that these companies can create such
a relatively useful product, and yet it is impossible to find any real sort
of documentation on how to use them? I have multiple blog entries brewing
on my frustrations using Infragistics Reporting in their NetAdvantage
suite. Today though, I’m going to rail against SubMain’s GhostDoc Pro.
GhostDoc, a VisualStudio extension for automatically generating XML
documentation and code comments, is a total time saver when it is properly
configured. Because of the government certification our products generally
go through, our code has to be meticulously commented in very specific
ways. At one point my rules were properly configured and I had spent about
half a day configuring the templates as well as I could, so that all I had
to do was go to Tools > GhostDoc > Document File and my code file would be
properly documented including headers, properties and fields. Unfortunately
when I chose to upgrade my current version of GhostDoc it apparently took
my desire to “Upgrade” my current rules file and merely used that as
a “suggestion”, which it then ignored, and I ended up with the default
GhostDoc Rules templates. *So my first suggestion to you is that as soon as
you have the templates the way you want them, export them to avoid having
go through the hassle of re-creating them.
Secondly, bookmark this blog post as reference to refer back to later. The
extent of SubMain’s online documentation for creating your own templates
seems to be to simply rely on the community of GhostDoc users creating blog
posts in their community pages ( and on
StackOverflow. If you go to the tutorials on SubMain’s site you will notice
there are no tutorials for GhostDoc. (I take it back. Since I first began
writing this blog article way long ago, a simple tutorial has been added.
It is a very quick overview of all of GhostDoc Pro’s features.) The help
file that is downloaded for GhostDoc Pro contains an Introduction to T4
Templates and a description of each of the different templates that are
Editing T4 Templates
To edit the GhostDoc Pro T4 Rules templates, in Visual Studio go to Tools >
GhostDoc Pro > Options > Rules and select the template you want to update.
The template will open into an editor that does provide some Intellisense
Adding Global Properties
Global properties, accessible through the GetGlobalProperty of the Context
object, can be added in the GhostDoc Pro options window under Global
Properties. Here you can enter the key-value pairs for commonly used
properties throughout your templates.
By necessity, our standard file header looks like this: