Things I Learned This Week

I spent a lot of time writing a Windows Presentation Foundation application this weekend. It is a Podcast application for ClariFeed. Mostly I’m writing it because I’m not happy with any of the current podcast applications out there. Also it makes a good addition to ClariFeed. Though I probably should have spent the time working on improving the front end of ClariFeed.

Writing this application I learned a great deal about WPF. One thing I learned is that the WinForms method InvokeRequired() no longer exists. It has been replaced with Dispatcher.CheckAccess(). The new Dispatcher object is simpler to use than the old InvokeRequired. Additionally, delegate syntax has been greatly simplified.

The other thing I learned that makes life very simple is the BackgroundWorker class. BackgroundWorker is essentially the same class that you wrote yourself to execute code on a different thread in previous versions. But now the helper class already exists for you.

Another thing I learned is that it is very easy to make plain looking WPF applications. However, you need to be a graphic designer if you want your app to be beautiful. No doubt I’ll finish this application in another weekend or two, and then spend forever trying to make it look pretty.

Other lessons in no particular order:

  • I am using Visual Studio 2005 and writing Xaml by hand. It is far, far faster this way. The designer in Visual Studio is ok, but it still is slower than just typing in the Xaml.
  • Microsoft Expressions Blend sucks. For creating a generic windows application (albeit one made with Xaml) it is just incredibly inefficient. However, it does have one use:
  • The designer window in VS2k5 does not have an events tab. Auto-wire up of events is extremely convenient. It saves having to look up the properties of each event when you are typing them in. However, VS2k5 makes you look them up every time. However, if you open up Expression Blend, browse to your control, and switch to the events tab in Expression Blend, you can auto wire up your event. It will even open up the correct spot in Visual Studio for you!

    I know, that seems pretty clunky. But as long as I had all the apps open, it was faster than trying to look up the event signature by hand.

  • The JavaScriptSerializer that comes with the ASP.Net AJAX extensions is far more flexible either than XamlWriter or the traditional DotNet Xml serialization methods. The JavaScriptSerializer is the only one that seems to be able to handle serializing and deserializing Dictionary<> objects with no problems. So I am using JavaScript as my file format! No problem with that, I suppose.
The end

Old Music Review

I’ve spent the last several weeks either reacquiring music I listened to years ago, or listening to old music that I had always meant to get around to, but never really did.

Part of the impetus for this exploration came from two things:

One, I recently discovered the PodCast for Sound Opinions, an American Public Media Show. Sound Opinions is a great show that reviews and discusses a lot of great music. Pretty much everything I’ve heard on this show matches my tastes.

Two, I was going through a lot of the podcast archives of Sound Opinions and on one of the episodes I learned that Tony Wilson died. Tony Wilson was one of the founders of Factory Records.

I have always been a fan of the music produced by Factory Records.  Their catalog included bands like Joy Division, New Order, James, Cabaret Voltaire, The Happy Mondays, and many, many more.

I had never really listened to Cabaret Voltaire before, but I had heard some tracks and listened to the odd song here or there. I liked what I heard but never really listened to anything in depth. So I took a chance.

I am certainly no music reviewer or music historian. I don’t know the historical context of what might have made Cabaret Voltaire more relevant or edgy in the time when they produced music. But, this is the internet, and even the most unqualified person can post opinions on topics that have no business having opinions on.

So, I like Cabaret Voltaire, but I don’t think it is something that will be in heavy rotation for me. Every individual track on the album I bought (The Original Sound of Sheffield) was good and listenable. But they are not listenable sequentially. It sounds more like music you would *use* for something (a commercial, background music for a movie, an interesting commercial, fucking) than like music you would put in your mp3 player and listen to while going about your daily minutiae.

The end

The Death of Mailing Lists

Am I the only one who believes the general move toward forums for technical questions, information and collaboration is a step backward? Used to be everyone who was anyone subscribed to mailing lists on whatever subject was the most interesting.

Mailing lists are easy and convenient. Every list I read comes to the same place. Forums: I have to remember to go to each site. I have to remember the last post I read. I have to remember which thread I was following. Each forum you read has different features and functionality. Each one of them makes you log in yet again to use most of the functionality.

With mailing list, every single mailing list had the same UI and the same interface. Soon as you sign into email you are signed into every mailing list. You get an email, you read it. If you want to reply, you hit the reply button. Simple. Easy. Uniform. Every mailing list, regardless of the software it used worked the same way.

With forums, everything is different for each forum. Some support RSS, some support being emailed about responses to your messages, some support emailing a digest of every post. But none of them support every featyre. And, to my knowledge, not one of them lets you hit reply from your email application and post to the forum.

The end