Victus Spiritus


Prediction, a pinhole look at the future

24 Oct 2010

We are able to perceive only a tiny fraction of current events that are happening around us. Even given a narrow area of study, the rate of change eludes even determined observations. 

A look at the present

Consider the realm of tech news limited to software, in specific web development. In this fairly narrow topic there is a buzz of activity which vastly out paces my ability to track. I keep tabs on a subset of developments in a few languages, several common frameworks within these languages, and a handful of the most popular database choices*. My source is social news filtering by following app/framework builders, startup CTOs/chief hackers and identifying the best posts and docs to batch read or refer to later with Frankencuration

All of that information gets piped up the abstract stack to data which describes the current state of web development. It's obvious that I can't even grasp a complete picture of the present, how can I reasonably expect to predict the future?

The Pinhole, a symbol for absolute focus

In an unknown future landscape, we can consider only what is essential to a particular goal when charting a course. The Pinhole represents the rational limit of prediction. Don't try and exhaust resources predicting a complete picture of the future. Pay attention to specific areas you have the greatest influence over and observe the strongest macro trends in the industry.

I'll refer once again to the state of web development tools. A heuristic method focuses on mastery with only a single technology stack that has a high probability of being supported in 5-10 years. One language, one framework, one front end, and only a couple of databases. Optimal persistence layers usually require a couple of core technologies, like a relational DB and memcached, or a nosql cluster and redis.

Well I'm off to steer my pinhole towards gearing up ruby 1.9.2 and rails 3.0+ with ruby version manager (rvm) on an ubuntu desktop and a brand spanking new iMac. Mega props to Mike Clark for putting together a super clear and easy to follow walkthrough that also works pretty well for Linux distros.

What I skip over
(BIG) Note:
* = The languages/protocols I try and follow, ruby, javascript, and html/http/css along with light python and php.  Beyond those few tools there are many more that I don't consider at all for web coding. There are also a broad collection of frameworks, servers, and databases which I don't read much about and many more that I likely haven't heard of.

Stuff I don't keep tabs on:

The reward for reviewing diverse languages is quickly recognizing design patterns to common problems. I also enjoy hacking around with open source applications developed with a variety of tools.