August 2004 Blog Posts

Will Visual Studio .Net 2005 be delayed into 2006?

Microsoft announced this week that it will pare down the planned feature set for Longhorn in order to be able to deliver the new OS in 2006. This caused big waves on the net and in the blogosphere with all sorts of speculation flying about. One take on the announcement places the Lognhorn release date in early 2006. If this is true (and that's a huge “if”), I am starting to wonder about the release schedule for Visual Studio .Net 2005. For those who haven't been following the development of the next version of Visual Studio, we were first expecting the...

Help Make Blogs More Visible!

There are by some estimates more than a million weblogs. But most of them get no visibility in search engines. Only a few "A-List" blogs get into the top search engine results for a given topic, while the majority of blogs just don't get noticed. The reason is that the smaller blogs don't have enough links pointing to them. But this posting could solve that. Let's help the smaller blogs get more visibility! This posting is GoMeme 4.0. It is part of an experiment to see if we can create a blog posting that helps 1000's of blogs get higher rankings...

Example – An ASP.NET handler that returns a dynamically generated image

This is a verbatim excerpt from a Microsoft employee post on changes in ASP.NET 2.0 from Beta 1 to Beta 2:   <%@ webhandler="" language="C#" class="ImageHandler" %=""> using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web; using System.Web.Caching; public class ImageHandler : IHttpHandler { public void ProcessRequest (HttpContext context) { // Get the image ID from querystring, and use it to generate a cache key. String imageID = context.Request.QueryString["PhotoID"]; String cacheKey = context.Request.CurrentExecutionFilePath + ":" + imageID; Byte[] imageBytes; // Check if the cache contains the image. Object cachedImageBytes = context.Cache.Get(cacheKey); if (cachedImageBytes != null) { imageBytes = (Byte[])cachedImageBytes; } else { // Get image from business layer, and...

WindowsXP needs a new SKU

I blogged yesterday about the affect of the WindowsXP service pack 2 on filesharing applications. Apparently, there is more fallout as reported by Dana Epp, Ian Griffiths, and Dominick Baier. I understand that the motivation for these changes was to make the WindowsXP platform less appealing to viruses and hacker tools, and I also understand that the reason there aren't easy overrides for the new limits is so that the aforementioned malware can't just flip the functionality back on. But, at the same time, the changes are detrimental to some legitimate applications. Microsoft could just cede those users to OSX...

WindowsXP sp2 slows down p2p apps

One of the security improvements in WindowsXP sp2 is a limit placed on the number of simultaneous incomplete outbound TCP connection attempts. This limit happens to be 10 connection per second, which just happens to adversely affect a number of p2p applications. To find out whether you are affected by this, check your System Event Log for Tcpip warnings with the event number 4226. Its won't be a surprise to anyone that the community came up with a “fix”, a patch actually, that changes some bits in the tcpip.sys file. This is not something I would condone, so I won't link to it. My...

Why is Indian music only available in RealAudio format?

My sister emailed me about a song she liked that was recommended by her Tamil friend. Apparently this is a tune for a popular Bollywood movie and Google revealed a number of web sites that would let me play it. Unfortunately, almost all of them offered just one format: RealAudio. Does anyone know why it is so popular with this audience? Personally, I refuse to install another Real product. Their installations are extremely invasive (all sorts of crap is installed without asking). In any case, here's a WindowsMedia version for your non-discriminating music tastes: Thoodhu Varuma, from the movie Kaakha Kaahka.

Even more on ASP.NET 2.0 Membership Provider API design and Exceptions

Robert and I have been having some back and forth on the quality of the API design of the Membership Providers in ASP.NET 2.0. The discussion is starting to evolve along two lines: whether or not to throw exceptions from method calls and whether the API should use interfaces or abstract classes to define contracts. I am not touching the latter since I believe there are no right answers, just tradeoffs. I have, however, been advocating a change in the API that would either move away from a boolean return value convention or rename method calls to make it clear...

Microsoft Visual J# .NET Redistributable Package 1.1

My primary hard drive crashed and I found myself in an unenviable position of having to reinstall the OS and a crapload of applications. Spare me the backup sermon please, the data was backed up. I didn't feel it was worth doing full backups because I haven't found a good (inexpensive) way to take them off-line and because sad as it is, it is still fairly healthy to repave a Microsoft OS once in a while. That's not the point of this post though. Reinstalling VS.Net 2003, I watched yet again as it installed the Microsoft Visual J# .NET Redistributable Package 1.1...

More on MembershipProvider API design

I blogged recently about what I saw as flaws in the design of the ASP.NET MembershipProvider API. Robert McLaws responded in comments: Mike, your argument is incorrect. Microsoft development guidelines clearly state that exceptions are expensive and should be avoided whenever possible. The Provider Model was not designed to make the decision for you on whether or not something is exception-worthy, that is why this specific function returns a boolean. If the exception is going to be thrown, it should happen either inside your custom Provider (which is again not recommended because they are expensive) or from your method call. I stand...

Fun with Iterators

Wesner digs into iterators in his new blog post. Its fascinating stuff and a lot to chew on. Its not clear to me though, in what way is his iterator-based chess game example better than code like the bit below? public class Game{   public static void Main()   {       bool gameOver = false;       while (! gameOver)       {          gameOver = DoWhiteMove();          if (! gameOver) gameOver = DoBlackMove();        }     }} (sorry about lack of proper formatting).

Troubleshooting Windows Firewall in Microsoft Windows XP Service Pack 2

Another MSDN reference: Troubleshooting Windows Firewall in Microsoft Windows XP Service Pack 2.