What Are You Working On?
I've been very busy so instead of blogging about one specific thing I have a lot of minor stuff to report.
I've now read several books on ASP.NET 2.0 so I've abandoned ASP.NET 1.1 except for Storefront 6.0 customizations. I converted one large ASP.NET 1.1 project to ASP.NET 2.0 and I'm converting a classic ASP site to ASP.NET 2.0 (it is going very slow). This will help to keep me focused on ASP.NET 2.0. I can't get into ASP.NET 3.5 because we have not moved to Visual Studio 2008 at work although I do have Visual Web Developer 2008 Express. I'm also securing a classic ASP site by converting its data access to use stored procedures (also going very slow).
A number of small side projects would probably be of more interest. I noticed that none of my WordPress blog posts were being picked up by Google Blog Search but they have a Google Blog Search Pinging Service API so I decided to write a REST client for that in ASP.NET 2.0. This turned out very well and I managed to get my blog posts listed in that search engine. This should have been unnecessary because I added the Google Blog Search to my WordPress Update Services to send the ping but apparently that isn't effective. Maybe my hosting company blocks outgoing PHP web requests??? I cannot get blog trackbacks to work either.
I'm getting started on using the Seesmic API. Seesmic is an interesting web site for conducting conversations via video responses although it is now also being used to leave video comments on text blogs. Today I added a page to their Google Group on ASP.NET 2.0 - Seesmic API Authentication. This took me several days to write because you need to create a MD5 hash and there was a JSON response to deal with. I experimented with the totally undocumented JavaScriptSerializer.DeserializeObject method. According to MSDN, this converts the specified JSON string to an object graph. However, there is no sample code and I have no clue as to how to use it. Based on my experimentation it seems to create nested dictionary objects and KeyValuePair objects.
I read about SubSonic in the book The ASP.NET 2.0 Anthology. I like how it creates the CRUD part of a site for you because that has always been a tedious chore. Database table management is usually a back end feature relegated to the admin directory so it doesn't have to be anything fancy. However SubSonic scaffolding was giving me some strange captions based on my table names. SubSonic is open source software so I was able to add a property to allow me to set the Scaffold Caption. While poking around the source code I found a treasure trove of useful functions in the Sugar directory. You should definitely get yourself some sugar.
Another major side project of mine was YouComment, an experiment in improving the experience of reading comments left on YouTube videos. This continues my focus on the social networking aspects of the site. There were two major technical challenges in this project. First I had to reorganize the XML because the nodes where not nested in such a way as to map comment replies to nested unordered lists. I also needed a hash table to reduce the number of web requests made to retrieve user account information. Unfortunately, this page cannot handle videos with hundreds of comments. But then I have a lot of problems viewing comments on YouTube because it kills my browser to load hundreds of comments. I think I need to create a new version that just displays your comment and its replies. The YouTube community has been complaining for a long time that it would be easier if the comment email notification actually included the comment so you don't need to visit the site to read it but YouTube has refused to make that improvement.
I'm sorry to say that AIR applications appear to be getting some real traction now. I'm already using three AIR applications that are very useful; Twirl, AlertThingy, and Klok. Klok is a personal time tracking application. It is great for timing your activity on a project. I think Twirl was bought by Seesmic and bloggers are crazy about AlertThingy. I think I should be learning how to create AIR applications.