PDC Retrospection

PDC '03 Comments

Today's the PDC retrospection "Neues aus L.A." organized by newtelligence AG. You don't know newtelligence? Well, you may know Clemens Vasters, writer of dasBlog. He's the CTO of newtelligence.

However, this restrospection is for all those people who couldn't attend this year's PDC. Clemens, Michael Willers, and Jörg Freiberger are going to speak about WinFS, Indigo, Avalon, and ASP.NET 2.0.

Though I attended the PDC myself (including the Blogger BoF), I'll glad to meet both other PDCians and non-PDCians. Of course I'll wear my "I'm blogging this" T-shirt Wink

Microsoft Virtual PC 2004 RTM

Development, Software Comments

Microsoft released Virtual PC 2004 to manufacturing.

However, it's not available for MSDN yet, but:

Microsoft Virtual PC 2004 will be made available later this year through Microsoft's existing retail and volume licensing channels. It also will be included in Microsoft's MSDN® subscriptions, and volume discounts are available through Microsoft's Open, Select and Enterprise Agreement volume licensing programs.

C# 2.0 generics

Development Comments

I'm playing around with C# 2.0 templates a.k.a. generics. I was really missing them in the past, but finally, they're there.

However, the specification for C# 2.0 says in §20.1.1: A type parameter cannot be used directly to declare a base class or interface. Why such a restriction? In some cases you may be able to write your own base class, but often you're not. If I want to extend several existing classes with some additional functionality, I can't. Of course I could derive from each class and add my desired members, but if it's functionality I want to add to a few classes, it's quite impractical.

I've written an example. This generic would write to the console, whenever the base control is clicked:

public class ClickedControl : T where T : System.Windows.Forms.Control
    public ClickedControl()
        base.Click += new base_Click;

    private void base_Click(object sender, EventArgs e)
        Console.WriteLine(base.Text + " was clicked");

In your code you could just write

ClickedControl<System.Windows.Forms.Button> myButton;

Don't try that home. Well, you may try it, but won't compile. Unfortunately.

SharpReader 0.9.3 published

Software Comments

Luke Hutteman has released a new version of SharpReader:

SharpReader 0.9.3 is now available for download at sharpreader.net.

Changes since the last version are:

  • .NET 1.1 only. Go to windowsupdate.microsoft.com to upgrade if you currently only have .NET 1.0 installed
  • Added support for HTTP Authentication (either through a username:pwd@url, or through a popup authentication dialog)
  • FeedValidator.org url change
  • Multi-select enabled in headline-view
  • Handle feed:// protocol. Links to a feed:rss-url will automatically open in SharpReader. For example feed:www.hutteman.com/weblog/rss.xml would open my rss-feed in SharpReader.
  • Updated to use log4j 1.2.0 beta 8 - this build no longer has the Win98/WinME bug
  • Improved performance of opening new browser windows for users with IE as their default browser.
  • Support for the <wfw:commentrss> element.
    • Comments are retrieved on demand and are cached across sessions.
    • If both <wfw:commentrss> and <slash:comments> tags are present, SharpReader changes the comment-count displayed when you delete comments, and also displays the number of unread items.
    • For items no longer in the rss-feed, a "+" is displayed after the comment-count to indicate more comments could have been added since the item disappeared from the feed.
  • Fixed bug that sometimes caused an InvalidOperationException (Collection was modified) to occur.
  • Save subscriptions right away when new feed is added.
  • Load subscriptions.xml even if there was a problem loading settings.xml (previously you would lose all your subscriptions if this happened).
  • Added feed-property to specify whether to automatically open the links belonging to an item. Property can be set to "always", "never", or "only if no description is present".
  • "Copy IE Proxy Settings on SharpReader startup" option on the proxy-tab.
  • Bypass proxy for local URLs
  • Systray popup when new items arrive (can be disabled on a per-feed or per-category basis through the properties pane)
  • Memory consumption has been reduced by approximately 25%. Startup performance has also been improved.

Yes, the memory consumption is better now, but still high. However, what I really like is the that the option to open links always, never, and only if no description is present is per feed. Some feeds do contain only a few lines of the entire posting, so for these I set the option to always. I really like that.

And finally it provides toasts...

Though I like the UI of FeedDemon much more, I think I'm going back to SharpReader. Maybe Luke will publish the source code some time Blushing