Roland Weigelt

Born to Code

  • Paint Shop Pro X : Solution for Weird Screenshot Colors

    I’ve been using various versions of Paint Shop Pro for a couple of years now; virtually every bitmap I need when developing software (either for the GUI or the documentation) has at some point been touched by this program. I just bought version 10 (upgrading from version 9) and encountered a problem that was pretty confusing at first: A simple screenshot (taken using [Ctrl-]PrtScr), appeared with distorted colors when being pasted into Paint Shop Pro X.

    20050930_PaintShopProX_WeirdScreenshotColors

    It took me some time to figure this out, so just in case somebody else has the same problem: In version 10, Paint Shop Pro has a new “color management” feature that is enabled by default. If you don’t need that feature and just want to work like you have done with earlier versions, the simplest solution is to switch it off via “File” -> “Color Management” -> “Color Management” dialog -> Uncheck “Enable Color Management”.

    I’m sure that the color management is a really useful feature (for those who need it), but the “out-of-the-box experience” for somebody like me (whose first thought after setup wasn’t exactly “gee, I really need to calibrate my monitor now”) has been a bit confusing.

    P.S. Just out of curiosity, I calibrated my monitor (“File” -> “Color Management” -> “Monitor Calibration”). Needless to say, even without spending much time, things look much better (but I’ll keep color management off anyway ;-).

  • PDC 05: WPF (aka "Avalon") - Wow, I am impressed...

    Data binding everywhere (every control, every property bindable), data templates (that can also be changed on the fly, depending on e.g. the value of a certain property) – I just saw virtually all my GUI problems of the last years solved. Okay, there will be new problems, but this is such a huge step forward… impressive.

  • PDC 05: Monospaced fonts everywhere :-(

    In the sessions I’ve been so far, each time code is shown on the screen, it’s in some monospaced font. Either “Lucida Console” (which is kind of ok), or worse “Courier New” (by the way: am I really the only person on the planet to notice that this font doesn’t scale well? It sucks on high-resolution laser printers, and it’s not that great on-screen in sizes larger than say 12pt).

    Anyway, if we’d still be programming with C-style function names, I wouldn’t complain. But now that Microsoft advocates long identifier names for years, and the Framework libraries making heavy use of long and descriptive names (and I’m all for that!), why is it that everybody still thinks that code needs to be in monospaced font, even if it means that some identifier names span several meters on the projection screens?

  • Microsoft Campus Tour

    Today was the day: the day of the Microsoft Campus tour which was a prize for winning Roy Osherove’s Visual Studio add-in last year (read here).

    from left to right: my colleague Jochen Manns, Keen Brown (MS),
    me, my other colleague Sascha Lehmann

    I’d like to thank Keen (who filled in for Josh) and Sara – it was a fun day!

    The things that amazed me the most: the size of the campus and the speed at which Sara talks ;-)

  • GhostDoc - The Movie ;-)

    I just submitted my video for the PDC 05 “Show Off” session. Producing this video was much more work than I expected, which means that I won’t be able to release the final of 1.3.0 before the PDC (I’m already leaving on Thursday, as I’ll take a little detour on my way to L.A).

    The hardest part of the video was speaking English and presenting GhostDoc – either I mis-pronounced a word or stumbled over a wicked combination of “s” and “th” (which I wouldn’t care about in a real-life situation), or I made a mistake during the presentation. Fortunately with some editing, many things can be fixed.

    If the video is accepted, it will be shown at the “Show off” session and will be made available after the PDC. Sorry, I can’t post a download link before the PDC.

    Update: The video was accepted and shown at the PDC, and is now up on Channel 9.

  • GhostDoc 1.3.0 Beta 2 Released

    20050822_GhostDocBeta2

    Beta 2 of GhostDoc 1.3.0 has been released, which in terms of features should be pretty close to the release version. The documentation has made a major step forward, but stills needs some work (proofreading, more and better Howtos, especially tutorials for defining custom rules).

    What’s new in 1.3.0 beta 2 compared to beta 1:

    • Added: New options for determining what should be the representation of the C# language keywords "true", "false" and "null" in a documentation comment.
    • Added: New Macros $(True), $(False) and $(Null) to be used in text templates.
    • Added: New Macros for the current date, the name of the current user, etc. ("environment macros").
    • Added: New custom text that will be added once to a newly added documentation comment. As this text will not be updated, can be used for e.g. marking the date and time when a class member was added.
    • Added: New summary template for default property rule (text generation was hard-coded in previous versions).
    • Added: Template for methods with parameters for SingleWordMethodRule (text generation was hard-coded in previous versions).
    • Added: Preliminary documentation for the dialogs.
    • Changed: Default textual representation of "null", "true" and "false" back to the values of version 1.2.1 (<c>null</c>, <c>true</c> and <c>false</c>)
    • Changed: Value text of the default property rule is no longer empty by default.
    • Changed: Macros: Words.AsSentence -> Words.AllAsSentence
    • Fixed: Various bugs related to customization features.

    For those who missed the release of beta 1 and still work with 1.2.1:

    1.3.0 Beta 1 compared to 1.2.1:

    • Added: New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summary for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is an implementation).
    • Added: GhostDoc updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
    • Added: User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
    • Added: New rule for "On..." methods -- no more "Ons the click" ;-)
    • Added: Rule for static constructors.
    • Added: Rule for the Finalize method (destructor syntax in C#).
    • Added: Rule for event handler methods as they are created by the WinForms designer.
    • Added: Rule for boolean properties.
    • Added: Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
    • Added: Export of partial configurations is now possible (e.g. for exporting only a single custom rule).
    • Changed: Summary text of the default constructor rule is now 'Initializes a new instance of the <see cref="ClassName" /> class.', i.e. uses the wording in the Microsoft documentation. The old "Creates a new <see cref="ClassName" /> instance" is debatable - is it the constructor that actually creates the instance, or is the constructor called when the instance is created? Thus the Microsoft wording is preferrable.
    • Changed: The configuration is now stored in the ApplicationData\Weigelt\GhostDoc directory. Old configurations in the installation directory (versions before 1.3.0) will be upgraded and stored in the new location.
    • Fixed: <returns> tag no longer disappears if the return type is an array.
    • Fixed: Overall handling of array types.

    FAQ

    • When is the final coming out?
      Before the PDC. 
    • What about VS2005 support?
      After the PDC.
  • "Show Off" at PDC 2005 ?

    Michael Swanson writes: “Show Off at PDC 2005”:

    We propose a PDC 2005 2-hour session called Show Off. The concept: "Why demo your cool application to a few friends, when you can Show Off to thousands of your peers at the PDC?" […] You and/or your team put together a single WMV file that shows off something cool about your application, tool, technique (or whatever). […] Videos are limited to 5 minutes. […] So, what do you think? Would you participate? We're trying to gauge interest before we spend a bunch of time on this.

    I think that’s a good idea. Hey, I’m actually thinking about making my own video (guess about what ;-), even though I’m not quite sure how speaking English in front of a camera works out for me – but I’d give it a try…

     

  • GhostDoc 1.3.0 Beta 1 Released

    I’m pleased to announce that beta 1 of GhostDoc 1.3.0 has been released. A big “Thank You” to the steadily growing number of testers who helped me testing a couple of preview builds, pointed out a few minor issues and gave me an overall “Thumbs up”.

    What’s New 

    • New: New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summar for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is an implementation).
    • New: GhostDoc updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
    • New: User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
    • New: New rule for "On..." methods -- no more "Ons the click" ;-)
    • New: Rule for static constructors.
    • New: Rule for the Finalize method (descructor syntax in C#).
    • New: Rule for event handler methods as they are created by the WinForms designer.
    • New: Rule for boolean properties.
    • New: Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
    • New: Export of partial configurations is now possible (e.g. for exporting only a single custom rule).

    What’s Missing

    There are a couple of small features I’d like to see in 1.3.0 final. And then there’s a huge update of the help file waiting to be done.

    FAQ

    • When is the final coming out?
      My personal deadline is end of August. 
    • What about VS2005 support?
      I guess i’ll wait for the PDC bits of VS2005
  • GhostDoc: Looking for Testers

    I’m planning a first public beta of GhostDoc 1.3.0 towards the end of July. A couple of private builds have already been released to colleagues and people on the net who offered their help. So far feedback has been pretty good. People like the new features, some issues have been found, most of them could be fixed in the following builds.

    Now I would like to have a couple more people to test the current build. If you’re interested, contact me via the contact form. Please tell me about your system (e.g. which other Add-ins are installed), since when you have been using GhostDoc and how often you use it. I’ll then send you an email with the download link (when waiting for a reply, please take time zone differences into account ;-).

    Here are the new features you can try out in the preview:

    • New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summary for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is actually the implementation).
    • GhostDoc now updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
    • User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
    • New rule for "On..." methods -- no more "Ons the click" ;-)
    • Rule for static constructors.
    • Rule for the Finalize method (destructor syntax in C#).
    • Rule for event handler methods as they are created by the WinForms designer.
    • Rule for boolean properties.
    • Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.

    A few words about the quality of this preview: Answering the obvious question “does it fry my data and/or my Visual Studio installation?”, I can say that the Visual Studio integration and installation/uninstallation are at least as good as in version 1.2.1, so I wouldn’t hesitate to run the setup on production machines. The current problems are mostly missing features, some usability issues and the online help that hasn’t been updated yet.