I don't like static methods
Inspired by a recent question on StackOverflow, I felt like sharing my thoughts on static methods in general. I used to love utility classes filled up with static methods. They made a great consolidation of helper methods that would otherwise lie around causing redundancy and maintenance hell. They're very easy to use, no instantiation, no disposal, just fire'n'forget. I guess this was my first unwitting attempt at creating a service oriented architecture - lots of stateless services that just did their job and nothing else. As a system grows however, dragons be coming. Polymorphism Say we have...
Using Squid as a reverse proxy with a .NET url rewriter
Once you start receiving visitors from all over the world, a new kind of scaling issue arise. It's not a matter of adding more servers to the cluster or optimizing code (we'll assume these factors are perfect), it's a simple matter of geography and mathematics. Serving code from one end of the world to the other will take time, no matter how quick your servers are handling the request. The speed of light suddenly seems quite slow. At one of my current projects we serve a lot of image data. Letting US based clients fetch all the data from...