ailon's DevBlog: Development related stuff in my life

Internet Explorer, HTTPS/SSL and ASPX pretending to be XLS

2/22/2008 5:51:24 PM

I've developed a system for a client where among other things he was able to export a certain product list as CSV file to import it into Excel/OpenOffice etc. I did it the usual way: created an ASPX page which was outputting data in CSV and pretending to be XLS with code like this:

Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "filename=\"catalog.xls\"");
...

It all worked fine but then we ran into the Opera's dumb-caching issue, so I added

<%@ OutputCache Location="None" %>

to all sensitive pages. "Excel" export still worked fine. Then we moved the app under https and suddenly export stopped working in IE with the message box claiming

Internet Explorer cannot download file from server.
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.

In Firefox and Opera it still worked fine.

I found this article in Microsoft's KB explaining that caching should be allowed in order for IE to save the file to temporary folder and then open it from there (hence the file not found error). This solved the problem. Hope this helps someone or myself in the future.

kick it on DotNetKicks.com

Tags: , ,

More on &quot;The DotNetKicks Effect&quot;

2/15/2008 11:16:47 AM

As I can see from your comments many have misinterpreted what I wanted to say in my Yesterday's post. So I need to clarify a few things.

First of all I love DotNetKicks! Without it I doubt I would ever get across the excellent Amr Elsehemy's series on Custom Controls Design Time Support which is what I'm currently doing for the best flash charts in the world (shameless plug, sorry ;)

Secondly I've never stated that DotNetKicks is going to degrade in quality to zero or to the level of digg (whichever is lower). The point of my post was that the higher the front page bar the lower are the chances of quality content from less popular sources to get through and the bar should be inevitably raised as popularity of DNK grows.

Some numbers

In the first 9 hours since my post post was submitted to DNK I got about 15 hits from there (I don't have exact hourly stats but this number could be off by +/- a couple of hits at most). Then it became popular/published and in the next 9 hours I've got 250 hits from DNK. That means about 6% of DNK users read "Upcoming stories" and/or read by tags, search, etc. If we take what we know about DNK stats - ~4000 main RSS subscribers, we get 240 RSS readers of not front page articles.

I know that these numbers are affected by things like that at the time of submission it was afternoon in Europe, evening in Asia and early morning in America and when it was published it was day in America, evening in Europe and night in Asia. But these are not presidential elections so that is not that important for the general picture.

My point in other words

As some of you have correctly reminded me, DNK has Tags and that's sort of additional way for content to get noticed. So let's rephrase my statement about "kicking" sources:

  1. DotNetKicks.com (including "upcoming stories", tags, search)
  2. Badge/KickIt button on the contents own site

So <Total number of kicks> = <DNK kicks> + <Content site kicks>

Now let's break down these 2 parts:

<DNK kicks> = <number of DNK users reading through upcoming stories, tags, searching> * <content quality coefficient>

<number of DNK users reading through upcoming stories, tags, searching> is a constant at any given time. <content quality coefficient> is also a constant for a specific article (though I don't agree that this is 100% true without regard to the name of the author). So the number of <DNK kicks> is a equal for the same article published on small blog with 5 readers or bigger site with 10,000 readers.

Now on to <Content site kicks>:

<Content site kicks> = <number of site's readers> * <current or potential DNK users percentage> * <content quality coefficient>

Provided that <current or potential DNK users percentage> and <content quality coefficient> are equal for both sites in our example, we get that <Content site kicks> is directly dependant on the <number of site's readers>. In our sample this means that the site with 10,000 readers has a potential of getting 2000 times more kicks than the site with 5 readers.

Note: I know that it's not all that straightforward in real world and that any decent mathematician would laugh in my face for such a linear approach, but, though I accept that actual numbers and formulas are oversimplified, the principle stands.

We are already seeing these things in action. As rev4bart noted in the comments to my post on DNK: "theblogengine...didn't 5 different themes make the top page in consecutive days?". I love BlogEngine.NET but is a release of a single theme for it worth of front page status? I don't think so.

Solutions?

Personally I think that digg's concept is flawed by design. But that doesn't mean that nothing can be done about it. Digg is doing something about it (balancing the "secret formula", etc.).

I see this possible routes:

  1. Getting rid of the KickIt image and banning for "kick requests" on the site. This is radical and not going to happen but from the top of my head this is the only real solution.
  2. "Balancing the formula". I don't know if it is possible to track the initial source of the kick reliably (DNK or site) but DNK kicks could have a higher weight than site kicks. Kicks from "friends" should have a lower weight than strangers, new users lower weight than veterans, those who kicked other stories by the same author lower weight than those who never kicked anything by this author, etc.
  3. "Controlled democracy". Addition of moderators/editors. Not sure though what they would be responsible for (pre-approving kicked articles before becoming front-page news or selecting additional front page articles from the ones with lower kick counts or both)

Another option is to enjoy DNK while it's still very good and deal with problems later. Your ideas?

kick it on DotNetKicks.com

Tags: ,

The DotNetKicks Effect - Enjoy While it Lasts

2/14/2008 12:24:59 PM

DotNetKicks is a great source to stay on track with latest .NET related developments, tutorials, tips, etc. It is also a great way to promote your .NET related articles or products. Here's a "kicked" article by Ryan Lanciaux about how cool it is for a small blog to get "kicked".

This is all true but if we can learn from digg (of which DotNetKicks is a clone) this is not going to last forever. To understand why let's analyze the only 2 ways how your article can get kicked/digged/whatever:

  1. Someone sees your article in the "upcoming stories" section of DotNetKicks and kicks it
  2. Someone reads the article on your site and presses the "kick it" button (if you have one)

Now those of you who read the "upcoming stories" section of DotNetKicks please stand up. Anyone? I don't. And judging from the quantity of hits I got to my articles submitted to DotNetKicks but not kicked to the front page I can assume that not more than 50 people do. Lets not fight about this number cause the actual number is not that important. What's important that only a small percentage of DotNetKicks readers read the "upcoming stories" too.

So this leaves us with only one actual way of getting kicked -- through the link on your own site. While the threshold of becoming "popular" on DotNetKicks is low (6 kicks?) it's ok. You can expect that out of 50 visitors to your small site 10% would bother to kick your article. But as DNK becomes more popular this bar would go higher to filter not that interesting stories which would inevitably grow in quantity the more popular the DNK becomes. So let's say the bar is raised to 30 and (if we assume that 10% of your visitors would kick your article) you'll need to have something like 300 readers already to get kicked to the front page.

You can see this effect on digg. For example to get your story about some gadget digged to "popularity" you have to be Engadget or Gizmodo or at least your article should be linked from some popular site(s) (or many less popular ones) before being digged. Here's a good article on the same subject by DownloadSquad.

So let's enjoy the great DotNetKicks while we can and while noise ratio there is low. It's not going to last forever. At least I don't have that much faith in humanity.

kick it on DotNetKicks.com

Update: read the follow-up: More on "The DotNetKicks Effect"

Tags: , ,

Copyright © 2003 - 2017 Alan Mendelevich
Powered by BlogEngine.NET 2.5.0.6