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.
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).
This is just a trick to have the term DotNet appear on my pages! ;-)
- 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.
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")
I've started to put together a categorized list of various .NET tools.
This list is not complete of course, but can be useful if you search a tool for a specific need.
This list will be accessible from my main page using the ".NET Tools" link.
The list is moving! Check http://SharpToolbox.com out.
Please update your links.
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."
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's remark makes a lot of sense.
Time is valuable and must be... optimized :-) Spend it on things that impact your applications the most.
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 http://www.oddpost.com , What do you guys think? Is anyone already using it, if so what do you think?
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.
Don Box refers to the AOP patent.
What's next? Patents on zeros and ones? Who's holding the patent on OOP ?
What a stupid money driven world we live in.
- 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:
- Decouple Components by Injecting Custom Services into your Object's Interception Chain
- Aspect-Oriented Programming Enables Better Code Encapsulation and Reuse
- Dynamic Proxies in .NET
[The FuzzyBlog] What 10 odd Hours of Hacking Can Produce: An RSS Search Engine
this goes into my Favorites.
Great! Something tells me we'll see this from Google soon...
Update: Official name is Feedster. It can be found at http://www.feedster.com/.
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.
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.
Cool! I've got to try this.