As Reg says, “An excellent discussion of extension methods and how they improve architecture” — but I like Ruby’s mixin syntax better for solving the same problem.
Conceptually combining object-oriented and functional programming (again)
26,964 spam messages in my Postini filter this morning — and I just cleaned it out yesterday. There’s no way that I’m even going to scan through all of these looking for familiar addresses. Heck, at 250 per page I’m not even going to bother selecting them all and deleting them 108 times. I don’t have time for 216 mindless mouse clicks and 108 page refreshes. I’ll just let all these expire and get deleted automatically. If you sent me something and I didn’t respond, you might want to leave a comment for me here on my blog instead. It gets fewer than 1000 spam comments per day, and between Akismet and Auntie Spam I manage to sort those out pretty well.
Walking the dogs the other day — or (as everyone I encounter invariably remarks) as they were walking me, I began to see that activity as a metaphor for my life: barely under control, unable to slow down, being dragged along by others. Suddenly I planted my feet and pulled back hard on the leash. Halley and Harry turned back in surprise to inquire into the cause of this unaccustomed demonstration of my will. I made them walk at a slower pace the rest of the way, and I felt a resolve to do the same for my life. To take back control.
Later while I was working, we lost power to a windstorm. My wife and I sat together on the couch under blankets and talked. When the power came back on, I didn’t rush back to my computers. We made coffee, and I stayed beside my wife on the couch. I finished a second cup before I finally went back to work. Later, I called a prospective client and told them I wouldn’t be able to work for them — I just have too much on my plate already. It was a fine opportunity — good money, and work that would look nice on a resume. But something inside me said “NO”, and I decided to listen to that something this time.