Latest Vista/Office Betas
Vista Beta 2 and Office 2007 Beta 2 are both available on the MSDN subscriber downloads.
Download away!
Resharper 2.0
The single best productivity enhancement tool, Jetbrains Resharper, is now final. I’ve used this tool since the very first EAP almost 2 years ago. Outside of my IDE, this is the very first thing I install on any new development machine. I can not live without it.
Congratulations to Jetbrains for a wonderful tool, and thanks to them for all the hard work!
You can download it from http://www.jetbrains.com/resharper/download/index.html.
Enjoy!
The DaVinci Code
Friday night, I went to the first opening night movie showing of my life. Ever since I heard that The DaVinci Code was coming to the big screen, and that Tom Hanks had been cast as Robert Langdon I was really excited to see this movie.
As is typically the case with book to movie productions, I was pretty disappointed with the movie. I found that lots of the story had changed from the book. Most specifically, I was bothered by the fact that Sophie’s character in the movie was portrayed as a dumb girl just along for the ride, whereas in the book she was a key part in breaking a lot of the codes. There were other parts of the book that I thought were integral to the story which were just glanced over in the movie.
All in all, I think if you havent read the book, you’d probably really enjoy it. If you have read the book, wait for the DVD…
Web service and custom serialization
Why is it that it seems to be so difficult (if not impossible) to utilize the ISerializable interface when using web services?
I have a number of objects that I do not wish to provide default constructors on that I need to pass back and forth across the web service. I could implement ISerializable on them, but I cant figure out a way to set the serialization mechanism to use SOAPFormatter instead of IXmlSerializable.
I could do something like:
[WebMethod] public void SaveUser(string userXml) { // create soap formatter and deserialize userXml }
but it seems hackish to do that… What Id like to do is have a hook into the framework that allows me to specify the serialization type, and then I could have
[WebMethod] public void SaveUser(User user) { }
The other workaround would be to have two copies of the objects… One that is used only for serialization, but that stinks even more, I think… If I make a change to one, I have to remember to change it in the other. This will end up leading to a maintenance nightmare.
Any suggestions?
The OneNote Killer
Looks like Google has rolled out Google Notebook, which after a quick run through seems that it could be the OneNote killer.
I really like the fact that I can access my notebook anywhere that I have an internet connect. With my Treo, I have connectivity almost everywhere, so this is a real nice capability.
I’m also able to search my notebook using Google’s well proven search technology. The download adds browser integration, so I can open my notebook directly from Firefox without hitting their web site just to add a note.
Once again, Google has absolutely hit the mark with this tool, and I look forward to seeing it evolve.
Pandora
I’m probably the last person to discover Pandora. The concept behind this website is epic.
From their website:
Pandora is a music discovery service designed to help you find and enjoy music that you’ll love. It’s powered by the Music Genome Project, the most comprehensive analysis of music ever undertaken. Just tell us one of your favorite songs or artists and we’ll launch a streaming station to explore that part of the music universe.
We take your input (artists, songs) and feedback (”I like this”, “I don’t like this”) and use the Music Genome Project to create stations that play songs that are musically similar to what you’ve told us. That’s it; only the music counts. We don’t care how popular the artist is, who’s backing them, and we don’t care which genre bin they usually belong in. Only the music matters.
The best things about this are that you can listen to this anywhere that you have internet connectivity. The sound quality is quite impressive. The only thing you need is a web browser. Pandora offers two subscription models, the first is completely free with a fairly unintrusive ad on the player page. However, for $36/year (or less than a cappucino per month), you can subscribe and receive no ads.
ActionFixtures with .NET
Recently, I’ve gotten very interested in FitNesse and how it can be used to enhance the quality of both legacy and new applications. I purchased and have been reading the Fit bible (Fit for Developing Software : Framework for Integrated Tests). This is an absolutely amazing book and really helps to understand the immense capabilities of Fit.
We are using Fitnesse and have been kind of muddling our way through figuring things out. Cory has an excellent article that talks about how to implement an ActionFixture in C#. However, there were certain things about how he chose to implement them that bothered me a little.
I’d like to add some things to his article. It is not necessary to derive from ActionFixture to implement an action fixture. As a matter of fact, everything Im seeing in the Fit book is that you should derive from fixture. This gets around having to define a constructor to work around an issue with deriving action fixture. Because you do that, you can go back to the expected syntax for defining your action fixture
|!-fit.ActionFixture-!|
|start|!-FitnessTutorial.CalculatorTest-!|
|check|display|blank|
|press|one|
|check|display|1|
The other thing to watch out for is that if you set up your Fitnesse site to point at your project output folder, you will need to set the Copy Local property on the fit.dll to false. Otherwise, you will end up with wierd errors suggesting that you did not derive from fit.Fixture (when you really did).
Best post of the year
Tom McMahon has an absolutely epic post entitled ‘What I have learned in 15 years‘. Tom shares what he has learned about life with a disabled son. This type of post epitomizes what blogging is all about.
Make sure you take a few minutes to read this. It certainly does put things into perspective.
.NET does not promote good code organization
There… I said it!
I’ve been more and more exposed to Java and I really have to say I *love* the constraints that Java puts on you as far as organizing code. Your packages need to follow your folder hierarchy, and one public class per file.
I understand that you can do this with VS.NET as well, however, sometimes when you get in a hurry, its easy to let these things slip by and what you end up with is a big sloppy mess… Unlike Java, it is not enforced at compile time. If I dont keep my code well organized, the compiler fails.
Is it really that hard make the language or framework promote good coding practices and organization?
Consolas now available
Consolas has quickly turned into my absolute favorite fixed-width font, and I’ve been using it for all of my editors (VS.NET, Ultra-Edit, Notepad, etc). Getting the font out of Vista kinda sucked, however, Microsoft has now made this font available for download.
If you havent seen or used this font before, go check it out… Im sure you’ll love it.


