Roland Weigelt

Born to Code

  • AfterLaunch: Nur noch zwei Wochen - jetzt anmelden!

    Es braut sich etwas zusammen in Nordrhein-Westfalen! Anlässlich der Vorstellung von Windows Server 2008, SQL Server 2008 und Visual Studio 2008 haben sich die User Groups aus Bonn (Bonn-to-Code.Net), Köln (.net User Group Köln) und vom Niederrhein (.net developer user group niederrhein) zusammengetan, um unter der Schirmherrschaft des JustCommunity e.V. ergänzend zum offiziellen Launch ein Community-Event der besonderen Art auf die Beine zu stellen:

    • Ein ganzer Tag voller Vorträge, verteilt auf drei parallele Tracks
    • Sprecher, die als Entwickler und IT-Professionals aus ihrer täglichen Arbeit heraus Praxiswissen vermitteln
    • Große Verlosung von Software (Not-for-resale Versionen von Windows Server 2008, SQL Server 2008 und Visual Studio 2008, Lizenzen für CodeRush with Refactor! Pro, Resharper und dotTrace, ANTS Profiler und SQL Compare Pro)
    • Vielfältige Möglichkeiten zum Networking mit anderen Teilnehmern und Firmen aus der Region

    Und das zu einem Preis von nur 8,- Euro, in dem auch noch Verpflegung, Getränke und Parkausweis enthalten sind.

    AFTERLAUNCH
    Launch war gestern - heute ist Praxis

     

    Freitag 11. April 2008
    KonferenzZentrum im Technologiepark Köln
    Anmeldung und weitere Infos auf www.afterlaunch.de

  • 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.

  • An Award for Two Years of Bonn-to-Code.Net!

    Wow, that came really unexpected: at a company meeting last Friday I received an award for organizing and leading the .NET User Group Bonn called "Bonn-to-Code.Net" (all credits for the glorious pun go to Jens Schaller).

     

    Comma Soft AG has been very supportive in the past two years by letting the monthly meetings taking place in the conference rooms, but other than that the user group is something I'm running in my spare time - that's why this award was such a (nice) surprise.

  • Mysterious Mail / The Final Mill / Van Velsenmeer

    To whom it may concern: Nice idea, sloppy execution.

    Update 2008-02-09: As this thing is getting more and more elaborate, I'd like to clarify the "sloppy" comment. While I do acknowledge the overall effort you (whoever you are) put into this ARG, I must say that the initial impression wasn't favorable in regard to the level of quality - the English texts on the websites of two supposedly no-nonsense companies/organizations really would have benefited from some proof-reading. In a game where the goal seems to be the recruiting of smart people, you should always keep in mind that everything you do reflects on the company behind the game. Anyway, there are people (with way too much time on their hands) working on the various riddles and puzzles and I honestly wish you luck that at least one of them actually ends up working for you in the future.

  • 1st Place for EventFilter!

    The winners of the programming contest over at the German website www.dotnet-snippets.de have been announced – my entry EventFilter was chosen by a jury from almost 100 entries to be the winner.

    EventFilter is a generic helper class for dealing with events that may be raised multiple times in rapid succession, when only the last event of a “burst” is of interest.

    You find the English version in this blog post I published recently.

  • GhostDoc 2.1.3 Released

    <summary>
    GhostDoc is a free add-in for Visual Studio that automatically generates XML
    documentation comments for C#. Either by using existing documentation inherited
    from base classes or implemented interfaces, or by deducing comments from
    name and type of e.g. methods, properties or parameters.
    </summary>

    20080106_GhostDocQuick Facts

    • Version 2.1.3 is a minor bugfix release, fixing problem with documentation for specific operators and import/export of partial configurations.
    • Download on the GhostDoc Website
    • Users of earlier versions: Please read the ReadMe on upgrading!

    What’s New in GhostDoc 2.1.3:

    • Fixed: No documentation was generated for the operators "&", "<" and ">".
    • Fixed: Rules for classes, events, interfaces and structs were not shown in the export dialog, making it impossible to exclude them from an export.
    • Changed: Tags for empty rule collections in config files are now removed (cosmetic change, does not break compatibility of the file format).
    • Added: Some "of the" triggers and prefixes, "no the" words and acronyms.

    Note that VB.Net support is turned off by default and has to be turned on in the configuration dialog.

  • GhostDoc: A Look Back at 2007

    Here are some statistics for my Visual Studio add-in GhostDoc for the year 2007.

    Downloads for Visual Studio 2005

    • Version 1.9.5 (released back in 2006): 15294
    • Version 2.0.0 (released 2007–05–01): 11395
    • Version 2.1.0 (released 2007–06–24): 2351
    • Version 2.1.1 (released 2007–07–04): 24909
    • Version 2.1.2 (released 2007–11–25): 4873
    • Total: 58822

    Downloads for Visual Studio 2008

    • Version 2.0.0 (released 2007–05–01): 444
    • Version 2.1.0 (released 2007–06–24): 153
    • Version 2.1.1 (released 2007–07–04): 3202
    • Version 2.1.2 (released 2007–11–25): 3140
    • Total: 6939

    Downloads for Visual Studio .NET 2003

    • Version 1.3.0 (released back in 2005): 4409

    Donations by chosing an item from my Amazon WishLists (US, UK, DE):

    • Total: 7 (a huge Thank You to you guys and gals!)

     

  • EventFilter Helper Class

    EventFilter is a generic helper class for dealing with events that may be raised multiple times in rapid succession, when only the last event of a “burst” is of interest.

    Introduction

     

    Imagine a Windows Forms program mimicking the GUI of the Windows Explorer, where selecting a folder in the tree view on the left side will update the list of files on the right. A "quick'n dirty" implementation would handle the SelectedNodeChanged event of the TreeView control to update the file list, but a robust implementation that works nicely with slow media like CD/DVD or network drives should use a different approach.

    When playing around with an actual instance of Windows Explorer and watching it more closely, you'll quickly notice that the file list is not updated immediately, but after a slight delay. You can use the keyboard in the tree view to move quickly from folder to folder, skipping folders you are not interested in. Only after you stay on a folder for a little while, the file list gets updated.

    This approach of "wait until things have settled down a bit and then handle the last occurrence of an event" is pretty common in GUI development. The typical implementation uses a timer that is reset each time a new event is raised within a certain time interval, until the timer is finally allowed to elapse. Only at that time the event will actually be handled.

    During development of a small hobby project called RemoteCanvas I got tired of taking care of timers, helper variables and event handlers over and over again, so I finally wrote a helper class acting as a "filter" for events.

    Usage

    • Declare a member variable to hold an instance of the EventFilter class, with an event argument type matching that of the event to be filtered:
      private EventFilter<EventArgs> _filter
          = new EventFilter<EventArgs>();.
    • Hook up the HandleOriginalEvent method to the original event of the control. There's no great design time support for this, so you have to do that manually, e.g.
      myControl.SelectedIndexChanged += _filter.HandleOriginalEvent;
    • Connect the FilteredEventRaised event to your event handler:
      _filter.FilteredEventRaised += MyHandler;
    • That's it!

    Download

    The source code for the helper class (plus a small demo project for Visual Studio 2005) can be downloaded here.