Once upon a time, there were two dotnet gnomes. They lived in a cave. Everyday they got up and slaved away at their computers. They were creating something that was going to be useful to the world, and they were very excited. After 10 months of slaving away, eating nuts and berries, they finally launched their beautiful website. And beautiful it was. They were very proud. It was n-tier, scalable, and used every buzz-word they’d heard in the forest, like “XML” and “Web Services” and “MSMQ” and on and on.
When the whole world found out about it, they were all very happy too. They loved all of the new stuff the two gnomes had built to help them. Everyone was dancing and singing joyful songs.
Then, one day, the gnomes noticed something funny about their new site. It seemed slow. So they looked into the problem. They were confused because they thought they had done everything right, and couldn’t understand the slowness. They noticed a very specific problem that they had not heard about before in all their years living in the forest. Here was the problem: One very tiny image that was used all over the site was making the pages appear to load very slowly! So they diligently went about checking the source of this problem. They checked the file. It was fine. They checked the HTML, it was fine. They checked the server resources. They were fine. They checked the cache hits on IIS. It was loyally doing what it was supposed to do. Then they noticed something fishy.
When the image was requested from outside the gnome’s local network, it loaded fine! Better than fine, actually! It loaded really fast! They scratched their little gnome heads, and thought that it may possibly be a network issue on their local network. Well, they aren’t the kind of gnomes that go around point fingers, so they had their little gnome hats in their hands, and knocked on the network services ogre’s door.
“WHAT DO YOU WANT?” asked the ogre. “We noticed a strange problem.” Said the gnomes, and they proceed to tell the ogre the story. The ogre barked at them “IT’S NOT THE NETWORK!!! YOU GNOMES ARE ALWAYS BLAMING THE NETWORK!!” Well the gnomes don’t think that way. They weren’t blaming anyone, they were just trying to get their little site to load fast. Finally, the ogre yelled at the gnomes “CHECK YOUR SHIT!” So they went back and “checked their shit,” again. Their shit was fine.
The next day they knocked on the ogre’s door. He was being particularly ogre-ish on this day, and wouldn’t even consider that his network may be a problem. He screamed at the gnomes, yelling about how his network has “100 MEGABIT PIPES”, and “PIX” and “SWITCHES” and all kinds of other things that the gnomes didn’t understand too well. Again, he sent them away, telling them to “CHECK YOUR SHIT!”
The gnomes were really sad at this point. They didn’t understand how they could check their shit any more than they already had. So they set about, in their gnome-ish way, to try to reason with the ogre. They pulled out their magic VS.NET bag of tricks, and in 10 minutes, wrote a little windows app that they thought would help prove their point. It requested this little image over and over, and recorded the time it took to retrieve the image. Lo and behold, the image loaded over and over again from outside the network at blazing speeds, but from inside the network, the image loaded slowly! Really slow! We’re talking 6000 times slower at some points. Same image. Same server. So they showed this research to the ogre. He looked at it and said “THAT DOESN’T PROVE ANYTHING” and after they pleaded with him to consider their argument, he finally walked away saying “I’M NOT WORRIED ABOUT IT, IT’S ONLY INTERNAL ANYWAY.”
So what’s the moral of the story? Well, the gnomes thought that the good people out there reading this story could help come up with one, because they haven’t a clue.