Online programming education – a great idea!
DimeCasts.net is a new website that publishes ten minute video tutorials in subjects related to programming. The site is brand new, but it has the potential to be a great resource for developers having to learn something new. It currently has an excellent series on the use of NUnit, but when word gets around and the community starts to pitch in, I have a feeling this could be big.
(Found via Roy at ISerializable)
Climate change – the last argument you’ll ever need
This is a silver bullet that can end all debate on whether or not the global climate change is human-made or not and whether to take action or not.
The essence of the argument is a simple worst case/best case matrix that shows the consequences of action vs no action on the climate changes being real or not.
See this video and then forward it to everyone you know. Me – I am no gambler so I am betting on column A to minimize my risk…
C#: Maintaining complex state – SyncLINQ to the rescue!
Paul Stovell has created a LINQ library that can be used to simplify the maintenance of state in complex (and even not so complex) applications. It is called SyncLINQ, and consists of a few extension methods that can be used to very easily take advantage of INotifyPropertyChanged and INotifyCollectionChanged events for keeping your state in sync. It also has an Asynchronous() extension method that uses the same event processing to allow for the easiest asynchronous data retrieval I have ever seen! KUDOS Paul!
There are a few good examples on his website, and I recommend you take the time to go through them. There are also a couple of videos, but be warned: Paul is very much an Aussie so you might need to concentrate to understand what he is talking about
I haven’t had the time to try this out yet, but I am doing a CAB spike right now so I will probably try this out to see how it can handle the state management in a modular UI over the next couple of days. And from the information on his website and his demos it looks very promising.
General: Missing web controls in toolbox – fixed!
Today I had a real “WTF” moment! Since I reformatted my laptop and installed Vista and Visual Studio 2008, I have been unable to install any web controls. That is, I had no problems with the installation, but the controls never showed up in the toolbox. After a couple of weeks I finally found the source of the problem: My mouse. My freakin’ mouse!!
It turns out that there was a driver problem with some of Microsoft’s wireless products that interfered with Visual Studio. Missing toolbox items was one of the problems, unstable intellisense was another. Unplugging the mouse fixed everything just like magic…
According to this knowledge base article, the fix has been available for over a year, but it sits quietly and anonymously in the optional update list, waiting for someone to understand what the hell it fixes. The name of the update that saved the day (week, year, you choose…) is: “Microsoft HID Non-User Input Data Filter”
I owe a huge THANK YOU to the guys at Developer Express. Thanks Vito!
General: Circle of Interest
Paul Stowell (via Fredrik Kalseth) blogged about his Circle of Interest, and I thought I’d follow up with my own.
Here is a description of the three categories:
Core
These are things I enjoy, care about, and follow as much as I can. When news breaks in these areas, I try to stay on top. I like to think I’m an expert in some of them, and have strong opinions on the rest.
Non-core
I find myself working with these things, or have a minor interest in them, but tend to follow announcements occasionally. I have opinions and will probably complain if I don’t like certain aspects of them, but I’m not about to start evangelizing them.
I don’t care
The only time I spend in these things is to decide whether I care or not. I don’t really use them.
And here is my circle of interest:
CAB: Introduction to CAB and SCSF
I am just starting up with using the Composite UI Application Block (CAB) and Smart Client Software Factory (SCSF) in our new internal support application. The CAB concept is a huge chunk of new stuff to get a grasp on before you can start using it right.
Luckily there are smart people like Rich Newman out there. Rich has made a series of small introduction articles to CAB and SCSF. There are 25 such articles so far, and they have a very nice progression. They are well written and come with code samples you can use to experiment on your own. I recommend these to everyone that are starting up with CAB and SCSF or considering doing so. These articles are as easy to follow as Microsoft’s own documentation is hard.
KUDOS, Rich!
Quick overview of the CAB components:
C#: Dictionary<TKey, TValue> performance
For the first time since the introduction of generics in the .Net framework I needed to create a lookup by key collection with good performance. For this I have always used the HashTable or HashMap (in Java), and I was hesitant to have to move to the Dictionary collection.
Fortunately, the performance turns out to be very good! Chris Neuman has done a Dictionary<TKey, TValue> vs HashTable comparison that correctly reflects my needs. I have previously seen performance comparisons but that left out the boxing/unboxing with the HashTable data. Which, in my experience, is always needed in real-life code.
Go see the numbers for yourself. Me, I’m taking the generic dictionary and running with it. So long!
Blog tip: Windows Live Writer with source code formatting plugin
EDIT: This is no longer an issue since I moved to WordPress. The original post can be found here, and the source code below is formatted using the built-in code formatter in WordPress.
I am blogging about software development. Invariably, my posts will contain some kind of source code examples, be it XML, XAML, C#, VB, SQL or whatever. My two first posts here included a lot of <span style=”margin-left: 15px”> or <pre> or the likes. Not too productive…
As I had a feeling that I wasn’t the only nerd on BlogSpot, I had a feeling this problem would already be solved, so I turned to my all-knowing friend, Google. And sure enough, she knew. I found Steve Dunn’s plugin for Live Writer that does just that.
So on I went and installed both Microsoft Live Writer and Steve’s plugin, and this is the first post using these tools for publising. Here is a couple of sample source codes:
C#:
[TestMethod]
public void TestThatEqualPromoInfoObjectsReturnEqualsIsTrue()
{
PromoInfo info1 = new PromoInfo();
info1.PendingAccountID = 1;
info1.PromoID = 1;
PromoInfo info2 = new PromoInfo();
info2.PendingAccountID = 1;
info2.PromoID = 1;
Assert.AreEqual(info1, info2);
}
XML:
<compilation debug="true"> <assemblies> <add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> </assemblies> </compilation>
Not too shabby…


