This is the archived version of Roland Weigelt's weblog that ran from 2003 to 2023 at weblogs.asp.net

Contents tagged with English

  • Spanish Configuration File for GhostDoc 2.1.3

    After an Italian configuration for GhostDoc there's now also a Spanish configuration available. As mentioned for the Italian version, I cannot comment on the quality. Also, please note that GhostDoc is intended for English documentation, which means that tweaking it for other languages is likely to run into problems sooner or later.

    On the other hand, a lot can be achieved with the help of some clever custom rules, so I recommend to try out the Spanish configuration. As usual, exporting the current configuration as a backup is definitely not a bad idea.

  • Behavior Driven Design in Bonn

    The .NET User Group "Bonn-to-Code.Net" of Bonn, Germany is happy to welcome Jean-Paul Boodhoo on September 29th for a talk about Behavior Driven Design. The talk starts at 19:00 and will be in English, admission is free (as all of our user group meetings). Information about the location is available here and here (Google Maps in English).

    An Introduction To BDD

    For years many of us in the TDD crowd have been repeating the statement "Tests are documentation". How many of us can truly say that is the case.

    In this session we are going to take a look at how to transform stories and translate them down into human readable code that truly can live as "business documentation". We will also take a look at simple organizational tools that will enable us to generate natural language reports from the tests that we are writing. Tests that can be read and validated by developers and domain experts themselves.

  • GhostDoc Tweaks

    When moving to a new development machine recently, I noticed that I was using a couple of (minor) customizations to GhostDoc on the old machine that are not included in the default configuration. Most of them were rather specific, but three custom rules that may be of general interest are for overrides of the methods ToString(), Equals() and GetHashCode(). Without the rules, the documentation is inherited from System.Object:

    /// <summary>
    /// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
    /// </summary>
    /// <returns>
    /// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
    /// </returns>
    public override string ToString()
    
    /// <summary>
    /// Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
    /// </summary>
    /// <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>.</param>
    /// <returns>
    /// true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
    /// </returns>
    /// <exception cref="T:System.NullReferenceException">The <paramref name="obj"/> parameter is null.</exception>
    public override bool Equals( object obj )
    
    /// <summary>
    /// Serves as a hash function for a particular type.
    /// </summary>
    /// <returns>
    /// A hash code for the current <see cref="T:System.Object"/>.
    /// </returns>
    public override int GetHashCode()  

    The comments are OK at first sight, but I don't really like the references to System.Object, I prefer "the current instance" instead. Fortunately, changing this in GhostDoc is pretty easy.

    In general, to replace the generated documentation for a specific method, property, etc., simply define a custom rule and make sure has a higher priority than the rule that would create the documentation otherwise (in the case of the above methods that would be the "inherited documentation" rule).

    The new rules are available as a configuration file you can download here (see the included ReadMe for instructions how to use it).

    Importing this file will not affect other parts of your configuration, but creating a backup of your current configuration is never a bad idea. After the import the rules will automatically have the highest priority, so no other steps are necessary.

  • Notepad3 vs. Notepad2, or The Spirit of Open Source

    I already mentioned Notepad2 in a past blog post: It's a nice little free Notepad replacement that meets my requirements for a program that is similar to, but slightly better than the original, with a fast startup.

    That's why it makes me sad to read about what has happened to the author, Florian Balmer: Somebody took the (GPLed) source code of Notepad2, changed a few lines and released it as an "improved version" called Notepad3 to various download sites. In theory there's nothing wrong about this as the licensing conditions are met, but some kind of unpleasant aftertaste remains to put it mildly.

    Read the full story in a commentary by Florian titled The Spirit of Open Source.

  • PDC2008 - I'll be there!

    The PDC has always been something special to me.

    In 2003 I was following the bloggers late at night in front of my computer here in Germany. Live blogging was fairly new back then and I can remember hitting F5 a thousand times as the news bits from the keynote came in.

    In 2005 I had an absolutely fantastic time in Los Angeles. Hey, I even had the opportunity to tell Anders Hejlsberg that raising events is too complicated in C# in my opinion (his reaction was "Yes, we thought about it, didn't find a solution that's best in all situations and in the end other things were more important"). And I got Brad Abrams and Krzysztof Cwalina to sign my copy of the Framework Design Guidelines book during the power outage on the day of the precon.

    In 2007 I was all fired up to go and was incredibly disappointed when PDC2007 was cancelled.

    Yesterday my company (Comma Soft AG, we're hiring BTW) completed the process of registering me and two colleagues for PDC2008 and now it's "Los Angeles, I'm coming!". Wow, this has been a great week at work for me, after getting my new development machine (Q9450 Quad Core with 8GB of RAM, running Windows Server 2008) on Tuesday.

  • Usage of GhostDoc in Large Corporations

    A message to all developers in large corporations out there: If you try/have to approve the usage of GhostDoc because of company policy, you may get the response that legal problems prohibit the usage as no agreement could be reached with the author (i.e. me). To avoid the impression that I'm trying to rip off your company in any way, I'd like to explain this:

    If a company approaches me asking whether the usage of GhostDoc is allowed for commercial purposes, I point them to the license which clearly states that this is the case. If company policy still requires an explicit statement regarding commercial use, I don't have any problem with that, either.

    But: I will not sign any multi-page legalese for a piece of software that I didn't actively offer, let alone try to sell to a company in the first place. If my freeware license is not compatible with company policy, then that's unfortunate, but it's nothing I will do anything about - sorry.

  • Blog Posts are now tagged by Language

    As the number of my blog posts in German language has increased in recent time, I have decided to tag all posts with either "English" or "Deutsch", depending on the language.

    My blogging language for technical posts will remain English, I just want to give those living outside Germany a chance to avoid my announcements of events, availability of slides, etc.

  • Italian Configuration File for GhostDoc 2.1.3

    Even though GhostDoc is intended for English documentation (and there are no plans for future versions to change that), Luca Tagliaferri from Italy has created an Italian configuration file for GhostDoc 2.1.3. While I cannot comment on the quality (I haven't tried it, non parlo l'italiano), I recommend checking it out here. Just be sure to export your current configuration as a backup.