Mike Levin SEO

Future-proof your technology-skills with Linux, Python, vim & git... and me!

Packing Life-preservers For Technology Extinction Event

by Mike Levin SEO & Datamaster, 08/24/2010

I’m starting to see that life goes in phases, not characterized by age or rights of passage, but rather by the tools you use to get your jobs done. I guess it all started with personal computers starting to come on the scene as I was growing up. My first computer was a Coleco Adam, which really started me off on the wrong foot. For whatever reason, my Dad zeroed in on this as the best deal for a first computer, as it included the printer and drive for a good deal–less overall money than the Commodore 64. The printer happened to be a terrible daisy-wheel printer that could only do alphanumeric characters like a typewriter, and the drive was a digital cassette drive that was flaky and took forever to load and save anything.

Regardless, the Coleco Adam set the tone for me and computers for many years, from about 12 years old, up until I got my second computer–the Commodore Amiga–when I was about 18, getting ready to graduate high school, and go into college where they required me to buy a Macintosh. Needless to say, I was on a very alternative computer path for my early life, truly resisting going mainstream, delaying my move to the PC by hooking up with one of the last companies on earth where Amiga know-how was actually a marketable asset–Scala Multimedia, the makers of TV “barker-channel” software, that has subsequently evolved into digital signage software. They made their move to the PC during the late-DOS/early Windows 3.1 days, early 1994, when I moved to Washinton DC and made a corresponding similar move to PCs, buying my first at a computer fair in 1996. I was a truly late-comer to the PC.

Regardless, I had a huge mission in front of me and didn’t have quite the ability to choose, much less dictate, the platform I was on. I was just a “marketdroid” at a company full of ex-Commodore inflated heads who decided to program their own multimedia operating system, MMOS, as a way of porting Scala to the PC and other platforms. So, we started becoming a PC shop, and inevitably a Windows shop. Those were the servers that were around, and I was not even the Webmaster at the time, but merely a “Scala Studios” errand monkey. I was supposed to spearhead a profit-center operation and get a percentage of revenues, but sales was king, promises were broken, and the Worldwide Web burst onto the scene. So, I started doing whatever Web-project I could, which all turned out to be internal business-system things, since we already had a Webmaster. And because our servers were Windows, and we already had SQL Server 6 from an early version of Scopus that was never successfully deployed, IIS/SQL Server was what was available, so its where I learned and eventually professionally positioned myself.

This is the way it used to be. Computers were not yet ubiquitous, and you had to work with what you had, or your employer provided. The world has very much changed since then, and you can sit down and make forward-thinking and philosophical determinations about how you go about developing your career and programming skills. In fact, a very different problem exists these days–namely, overwhelming choice. Sure, there are a few obvious default picks, such as MySQL / PHP, but I feel this is the exact equivalent of the SQL Server / IIS trap that I fell into. Sure, RDBMS and a Web-friendly embedded programming language are an easy way to get started quick, but is it really where you want to be for thinking 10 or 20 years into the future? Particularly regarding your programming languages, you can just sit down and choose it. You can decide whether Java really is such a wise decision, whether languages like Python or Ruby really do fit your head, or if a self-referential meta-language like LISP fits the bill. And the developer environment for any of these choices could fit on a virtual machine on a thumb-drive on your keychain. In a couple more years, that keychain will actually be the server. Ramifications of your decisions are no longer tied to your employer or particular hardware installations. They can/will travel with you for your entire life, and offer opportunities for continual improvement over the course of your life, with “start-over’s” completely in your own hands.

Recently, I discovered “Structure and Interpretation of Computer Programs” as part of my ongoing effort to read the must-read’s that I missed the first time around, having majored in graphic design at Drexel University, as opposed to computer science at MIT. I’m one of those developers who has jumped head-first into a number of endeavors, and managed to make it work through a combination of persistence and intuition. But I feel I could be so much more effective with the same advantages of reading the same remarkable publications as so many other people in my position. And the iron is hot. Hardware is cheap and everywhere. Amongst all the choices of hardware, languages, hosting environments, and the like, precisely how good can it be for someone like me in today’s world?

Who has the advantage, the young person growing up in this brave new world, or an old-timer who learned the old ways and witnessed the arrival of each innovation? I’m starting to learn and believe that I personally live in that sweet spot of never having settled excessively into a single technology, given my history of alternative computing platforms. I sort-of learned Unix through the Amiga, and everything about my new platform of choice–any old hardware, plus Linux, is feeling very familiar. The main difference is that everything about the Amiga was proprietary and tied to very particular hardware. Linux is open, and I get the feeling that if you trip and fall, Linux will end up installed on your wristwatch and belt-buckle.

I remember sitting in the Philadelphia Amiga Users Group meeting in Drexel University in November of 1991 when a new Fred Fish disk came out, looking at this strange editor called vim that was distributed on it. There seemed to be a lot of excitement surrounding it because it came over from the Unix world where it was very popular. I tried the strange modal keyboard-shortcut way of operating, and gave it quickly in favor of old reliable Cygnus Editor. Today, the original Unix vi program has been virtually replaced by the evolved version of that very same vim text editor first released on the Amiga which I was first exposed to 19 years ago. There is even talk of replacing the old vi with vim in the POSIX Unix standard.

Talk about foreshadowing. It just goes to show you that you never can tell what path life may take, and how close you might brush up against the optimal paths and still miss it. But the guidance of the right mentor at the right time in life could sure accelerate things. Back in those days, Unix computers were big, clunky thinks that I had no interest in. I remember when Unix first came to personal computers, one of which happened to be the official AT&T SVR4 version on the Amiga 3000. I was with Commodore at the time, and could have swung getting one of those magical hard drives that transformed a decked-out A3000, but I wasn’t interested. The native Amiga OS was so much more interesting, and I couldn’t understand the appeal of something which to my perception disabled all that wonderful proprietary hardware.

I have had many such brushes with Unix over the years, yet it was not until the unthinkable has begun to happen–the obsolescence of mighty Windows–that I this rat decided to jump ship finally onto the correct life-preserver–the life-preserver known as Unix/Linux. As a serial “alternative computer junkie” that crossed briefly over into the Unix world from time-to-time, I may be in a better position to make this switch than others. Also, having been stung so many times by the spontaneous liquefaction of a chosen computing platform, I’m very keen on taking the right precautions this time and getting it right.

And I have to say that the Ubuntu install disk has made a lot of the difference. It is the magical key indoctrination piece to cross over into the Unix/Linux world, by virtue of its continually improving CD-ROM install disk that magically breaths life into just about any hardware. Right now as I write this, I am in fact listening to Fantasia 2000, The Sorcerer’s Apprentice, just added to my iTunes library today, probably because it was referred to in the introduction to “Structure and Interpretation of Computer Programs”. No matter how much we might want to believe we know, we have to stand on the backs of great wizards before us who have committed the life-breathing incantations to instructional tombs. And very few of us can burn computers from sand anymore (a skill that actually does exist, with the right equipment), but we can play the role of the apprentice, and pick up that spell-book. And few spell-books are as powerful these days ans the Ubuntu install disk. It will help you breath life into just about any Intel-style x86 hardware, and it will start to familiarize you with the Debian distribution of Linux, which has been ported to the type of MIPS processors found in $50 Linksys WiFi routers, and the ARM processors found in most smartphones and a new breed of Plug Computers. These are the Sorcerer’s Apprentices’ brooms and mops that we can animate to do our bidding. My platform of choice is now whatever I can get Linux installed onto, get a familiar set of commands (including vim), and fire up TCP/IP networking.

Now don’t get me wrong. Event hough I’m singing the praise of Ubuntu, which is strongly associated with the graphical user interface, currently Gnome, to give you a Windows/Mac-like desktop interface, that way lies disruption! There will never be a graphical user interface that will survive the ages, by very definition. They are modeled on real-world interactions, and as the capability to improve this modeling occurs, so will the user interfaces, and any expertise you develop in these areas will be thrown away! You are already seeing it occur with touch-screens gradually displacing mice and keyboards. Unbelievable! But not so. The mouse only got popular since 1984 with the advent of the original Mac. What I advocate is Ubuntu SERVER, the BASH Shell and logging in through terminal software over SSH or direct serial connection. This is where the technology life-preserver exists, because Unix/Linux will forever forward be the embedded system of choice for all but the most vendor-beholden. And logging into such embedded system and knowing precisely what you’re doing is THE SKILL.

So, this is the platform of disruption survival–a sort of life-preserver equipped with a few critical supplies. These are the tools that have always been around and will always be around. These are the tools that if only I understood the significance of in my early days, I would have enjoyed the benefit of compounding returns over the years, rather than having to re-learn and re-train myself every time the giant reset button in the sky is pressed with each round of unthinkable disruption.

From this point, I could find transition to make this blog post last way too long, such as why mastering a powerful, timeless text editor is so important, or how distributed revision control systems like Git and Mercurial fit into the exact same timeless survival-tool category, even though they are so new. I could talk about how my new website ShankServer.org is dedicated to precisely all platform and hardware issues of making that disruption-surviving life-preserver, or how I’m about to launch a new site WhatsaMetaFor.com dedicated to illustrating all the difficult conceptual issues I deal with using powerful symbolic metaphors. But instead, I think I will “cut” this blog post at a natural stopping point before I’m writing forever. Remember, that think : do ratio!