ASP.NET Hosting


Archives / 2003 / March
  • Why are music companies shooting themselves in the foot?

    As soon as it has been released, I went to my local CD reseller to buy Sleeping with ghosts, Placebo's latest album. I was ready to enjoy this great music, but...

    When I put the CD in my PC, I quickly realized that I would not be able to play it! My PC, and all PCs I tried the CD with, do not recognize this CD as an audio CD.
    Oh, I must confess that I am a bit too negative. The CD would actually play in PCs equiped with a soundcard as there is a custom software player included on the CD.
    But, you know what, I was at work, and the PC I use there has no soundcard, so I wasn't able to properly play the CD. Had I have a soundcard, the sound would not have been great as the included player does not play the music directly from the CD but using the soundcard, and a with a lower quality.

    What is this kind of shit?
    I have a CD that I can only play with my home CD player, and from which I cannot make MP3 files (to listen to while in the bus, while taking a walk, or on my PC), and from which I cannot make a copy the way I should be able to as I am entitled to by copyright laws (for backup or to listen in my car).

    If you still happen to buy CDs, you may have already noticed this, as those copy protection systems are currently spreading like a plague. A lot of recent releases from great artists already include it.

    And you know what? That kind of CDs are not real CDs! The copy protection system corrupts the CD format so that it cannot be recognized correctly by PC or Mac CD players.
    Beware of the crappy CDs, luckily most of them still have a sticker on them warning you.
    If you want to know more about this problem, you can check the UK Campaign for Digital Rights web site.

    At the same time, music companies are releasing music albums long after they are announced, and long after MP3s become available. What kind of strategy is that?


    So, why are music companies shooting themselves in the foot?
    Maybe they finally decided that they have stollen enough money from the artists...

    I am angry and sad for the artists that will sell less CDs, but at the same time I am happy to see that the music companies are deciding to run out of the business by themselves. So help the music companies in this direction, and don't buy that kind of CD or bring them back.


  • What people say about Bamboo.Prevalence lately

    Justin from News from the Forest tries BP. He writes how he really feels about object prevalence.
    About which I say something.

    Peter Provost says he would try BP, and finally says he thinks that object prevalence isn't quite ready.

    Meanwhile, Richard Caetano creates a sample application, and then writes a little about his last application that uses BP.

    We finish with a happy note from Mads Haugbø Nissen, who finds prevalence cool.


  • The discussion about object prevalence continues...

    Justin has a well thought reflection about object prevalence (and Bamboo.Prevalence).

    The conclusion I would draw is that object prevalence is not for all projects but could be a very good idea for a lot of them, especially those that do not require a high volume of data, a deep object hierarchy and intensive updates. That leaves a lot of applications really where object prevalence is a good candidate (starting with all the applications that do not use databases in the first place, but still require data storage).


  • DotNet

    This is just a trick to have the term DotNet appear on my pages! ;-)


  • New version of XC#

    ResolveCorp has just released a new version of eXtensible C#. Here's what's new:

    • XC# now supports Visual Studio 2003 beta
    • XC# provides better assertion support
    • It is possible to enable or disable XC# for a specific solution or a specific
    • XC# now comes with the source code for XCSharp.Attributes,
      XCSharp.VisualStudio and XCSharp.AddIn
    • XC# now supports FxCop-like rules: naming, design and usage rules

    This new version is available for download on ResolveCorp's web site.

    BTW, here is what ResolveCorp says about the future of XC#:

    No decision has been made for the price of future versions.
    However, it is likely that a non commercial version will stay available for free.
    As far as the source code is concerned, the plan is to provide an interface to the compiler but not the source code.


  • NUnit

    I just started to use NUnit and NUnitAddin. They are great!
    Simplicity is the key word as far as they are concerned.

    I'd advise anyone to take a look at these great tools for unit testing!
    Just follow the NUnit tutorial (included QuickStart.doc file), then play with NUnitAddin. A documentation for NUnitAddin is missing though (even a simple one would be nice, Jamie :-) ).

    Here is what NUnitAddin provides in Visual Studio:

    • "Run Tests" command in context menus (in Solution Explorer, in text editor)
    • Wizards for new test project ("Test Suite") and test class ("Test Fixture")

    Nota Bene: Peter Provost has written a good article on "Test-Driven Development In .NET" which can be found on his web site or on The Code Project.


  • Fun for a change

    Good one spotted on stronglytyped and coming from The Code Project:

    An architect, an artist and an IT guy were discussing whether it was better to spend time with the wife or a mistress.
    The architect said he enjoyed time with his wife, building a solid foundation for an enduring relationship. The artist said he enjoyed time with his mistress, because of the passion and mystery he found there.
    The IT guy said, "I like both."
    The IT guy replied "Yeah. If you have a wife and a mistress, they will each assume you are spending time with the other woman, and you can go to the office and get some work done."


  • Weighting optimizations' worth

    Scott and Victor had a little discussion about getting the value inside the loop vs outside the loop.  Now common sense would dictate to me that outside the loop would of course be faster.  So, for my own amusement I threw together a little test.  I simply ran their code and tried to figure out which one was faster.  Going through a 12 item array, declaring with the loop (i < array.Length) actually was 2 seconds faster than getting it outside the loop.  Of course, to get a 2 second difference I had to run each chunk of code 500,000,000 times.  The difference may have simply have been the overhead of declaring a variable to store the length.  I'm not too sure, I didn't dig into the IL.

    My point is that do you feel that this type of micro optimatization is worth it to get a 0.000000004s boast?  I say go with the most readable.  Very rarely do these micro optimizations have any impact big impact, when improvements in the architecture of your apps is where you really start to see some improvements.  Macro optimizations. 

    Oh, I stole this idea from Brad.

    btw, the better performing code changes in debug vs release.  outside the loop wins in debug mode (no optimizations), while with the loop wins in release.

    [Phil Scott]

    Phil's remark makes a lot of sense.
    Time is valuable and must be... optimized :-) Spend it on things that impact your applications the most.


  • Oddpost

    I'm considering moving away from outlook for a new internet based email client (that look pretty close to outlook) called oddPost.


    Well check out the demo at ,  What do you guys think? Is anyone already using it, if so what do you think?

    [Wes Haggard]

    Oddpost seems great.
    One limitation though to keep in mind maybe if you're using e-mail on your laptop, tablet PC, or whatever-mobile-machine: it obviously does not work in disconnected mode.


  • Interception methods

    After my simple AOP sample, here is the source code of a sample presenting three interception methods:

    • using a transparent proxy
    • using a context-bound object
    • using eXtensible C#

    Without surprise code injection is the lightest (XC#). Context-bound objects are slightly slower than proxies (~ +11,5% on average).

    In order to compile the application, you'll need XC#.

    Update: I have updated the source code for the latest release of XC#.
    Update: links for documentation:


  • OfficeForms

    After WinForms, WebForms, MobileForms, we may soon be using OfficeForms.

    I think that Clemens is well inspired when he envisions InfoPath (formerly XDocs) in Visual Studio.
    InfoPath is built for end-users but should be part of the developer's toolbox as well.

    As Slavomir says, once this becomes integrated with Visual Studio Tools for Office we have a complete solution.


  • VS 2003 AutoImplement

    Found the coolest VS 2003 feature today. When you type the name of and interface (C#) that a class implements, such as:

    public class MyClass : MyInterface

    You can press TAB and the interface stubs will automatically be added to your class. Nice! No more "sync class view, sync class view, open member lists, right click, select implement interface," just one click and you are done.

    [Jesse Ezell]

    Cool! I've got to try this.