Tuesday, August 22, 2006

Perspective on Success

Lately, I have been reading the book The Google Story by David Vise. In reading the book, it occurred to me that the goal in becoming successful really has nothing to do with material things anymore. Rather, if you innovate in a manner that the world responds to, the world offers you the distinct opportunity to reshape it in your own image. Truly successful people leave their mark on the world independent on how much financial success they may or may not have had.

Tuesday, May 30, 2006

Cool Quote

"If I only knew who in fact I am, I should cease to behave as what I think I am; and if I stopped behaving as what I think I am, I should know who I am."

~Aldous Huxley, The Island

Friday, April 07, 2006

Since you asked...

I have come to realize that whether or not you become something you hate is based on the strength of your resolve. Those who are miserable in life have given up on themselves and have grown to resent themselves because they did not maintain their resolve to be the person that they want to be. Your resolve is what allows you to make the decisions that may not be obvious to society, yet lead to a long fulfulling life. Without your resolve, you have fill no position in the universe and the universe conspires against you.

Your only true investment should be to become the person you want to be. All other things (money, success, love, creativity, exploration, etc.) should become engines that you can organize and feedback into this primary investment. I have found that balancing and arranging these pursuits in my life, with the goal of moving me closer to the person I want to be, is a perpetual fountain of satisfaction. To me, I find a tremendous amount of power and clarity from this, which leads to a level of confidence I have never experienced before and a sense of belonging that society can never inherently provide. Being in touch with your current self and the image of your future self allows you to make harder decisions and gives you the ability to focus on longer term goals.

Wednesday, February 15, 2006

Let's Get Technical... Technical... I Wanna...

Today at work we had a lunch presentation by the ever-enlightened Jeremy Larkin. His topic of choice - Ruby.

Perhaps one of the coolest things that I gleamed from the conversation was the concept of dynamic typing in Ruby. Granted, I have worked with the basic concepts of dynamic typing in other languages before, but they typically only had limited support. Ruby is dynamically typed from the ground up.

Dynamic typing largely renders irrelevant the whole concept of an interface as a solution for polymorphically accessing objects that do not inherit directly from the same inheritence chain. Instead, methods are validated at runtime during invocation. Therefore, if you want to access a certain method on an object polymorphically, the instance needs only to implement the method being invoked with the proper method signature at the exact moment that a call is made on the method.

To go off topic for a minute, I recently read an article somewhere that made the case that interfaces make lousy service contracts. According to the article, a service contract would be more appropriately defined by some number of unit tests. A class would not be a valid implementation of an interface by method signatures alone. Rather, the class must be able to pass the tests required by the interface.

This got me thinking and I haven't figured it out yet. Somehow, when an interface is implemented, the associated unit tests for the interface should run against the code implementing the interface. If the code validates, it represents a valid implementation of the interface. This may be possible in Ruby where even things like inheritance may fire events that can be handled. That would be the easiest way.

In something like C#, I figured that the best place to attempt to handle this situation would be through a dependency injection engine. For instance, the first time a request is made on the DI engine for an instance of the interface, whatever type is mapped to the interface would be tested. The DI engine would throw if the type being instantiated failed the interface tests.

These are just thoughts at the moment; I have no implementation yet.