Sunday, December 17, 2006

Make Things Users Want!

I have been thinking about this for a while now. How do I maximize the value I can provide to this world? By creating things people want! This is obvious, but then it has been my experience that most true things are. What do people want? Well, I have heard rumor of a bumper sticker saying: "death before inconvenience". This seems to ring a bell somewhere.. Why? Because I love convenience. What makes something convenient? Often it involves cutting out the stupid work that doesn't really serve any point. Many times its having some-one or some-thing do what I would normally have to.

Some examples..

Experts: I hire them to do things (like my taxes, or repairing my cars) because it is more convenient than becoming an expert myself.

Automation: Take the repetitive details and make a mechanical or computer device responsible. They get done faster and better, and I don't have to do anything. Now thats convenient!

Philosophy/Religion: Way more convenient to have someone else tell you what to think as long as its agreeable. (or: much easier to read the many great ideas of humanity than come up with them yourself)

I guess in the end, I am a user and I want convenience!

Friday, December 15, 2006

Ok, I have been reading Paul Graham. Man, this guy has some great thoughts laid out in well written essays. Here are a few of my favorite nuggets:
I once claimed that nerds were unpopular in secondary school mainly because they had better things to do than work full-time at being popular.
Man, is that ever a better explanation than nobody likes you! Or how he recommends fighting corruption:
Like all illicit connections, the connection between wealth and power flourishes in secret. Expose all transactions, and you will greatly reduce it. Log everything. That's a strategy that already seems to be working, and it doesn't have the side effect of making your whole country poor.
Its like log4j only for government! Brilliant! Or how about turning the whole immigration issue on its head like this:
American immigration policy keeps out most smart people, and channels the rest into unproductive jobs. It would be easy to do better. Imagine if, instead, you treated immigration like recruiting-- if you made a conscious effort to seek out the smartest people and get them to come to your country.
Recruiting the best and brightest, just like football, only for nerds!

Definitely spend some time reading these essays you will be glad you did!

Tuesday, September 05, 2006

Annoying Windows Behavior

You cannot create an executable in Visual Studio both inherits its parents standard in/out handles so that it can write to the console if run from a console. If you create a console application, it will inherit from its parent, but it will always create a console window even if not run from a command line.

So, say you would like to create a windows GUI application that you want to be able to pass command line parameters to. This works fine, but imagine you would like to print out a usage message to current console window if parameter is set.
Annoying windows behavior:

You cannot create a shortcut with a relative path to its target. This is annoying in the following situation. Say you want to create a shortcut that sets command arguments for an executable. Then say you would like this directory to be copied to another machine (say from a network drive) and have the shortcut reference the executable in the same directory. There is no way to do this with a shortcut.

Tuesday, August 08, 2006

Getting your favorite home brew application to run on the corporate servers can always be a chore. This is especially true when your corporate servers are exclusively Windows/IIS and single sign on is a requirement for all internal applications. Getting you app up and running is made even harder when you went out on a limb and wrote it using ruby on rails.

Now you are in a pickle. You now love ruby and rails, but in order to show off your new application you have to run it on the previously mentioned environment. Following is my solution to this very problem.

First get your hands on a ReverseProxy (I used http://www.saltypickle.com/Home/16). Install your application as a windows service using mongrel (http://mongrel.rubyforge.org/) a very fine and easy http/rails server. Set your IIS virtual directory to use only integrated authentication. Next setup (configure or hack) your ReverseProxy to forward request onto your mongrel service, and to add an http header populated with the authenticated users user name. Finally add a before filter guarding any actions you want to limit access to and match the value past in the http header from the ReverseProxy to grant or deny access. Finally, fix any bugs you may encounter (there were a few to get redirects working), and happy days, you are in business!

Details to come...

Thursday, May 11, 2006

The office is a funny show. Dwight was trying to move his boggle head of himself with his mind. Jim and Pam watched videos of local cover bands. Great times.