Mike Levin SEO

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

Unix is Standard Plumbing

by Mike Levin SEO & Datamaster, 12/15/2011

I’ve started various personal websites in the past, but none really turned into much. I never had a plan or a real direction. This time, I’m here to specifically teach you the Unix shell (more or less), the Python programming language, the vim text editor and the Mercurial revision control system—and how they work we together as a very generic and powerful way.

I’ll teach you how to safeguard your code and have places you can always run it. Your servers will be like a whack-a-mole game, never going away, and popping up anywhere you want. I’ll teach you how to breathe life into and animate almost any old hardware to do your bidding, and how to get new server hardware for $25 and host from home. I’ll help you blur the line between virtual servers on your keychain, in the cloud and your own real hardware and how to use them all with equal ease.

Almost everything can run Lunux, so almost anything will be able to run your code. Forget about expensive software licenses and the bloated computers necessary to run graphical windows managers or the latest games. Give up any notion that your servers should be anything like modern gaming PCs, but rather instead like the least amount of moving parts necessary to run your code, and suddenly you will be able to instantiate out thousands—like the sorcerer’s apprentice with an army of animated brooms.

The story of small efficient computers is also the story of scaling up for massive global endeavors, because the datacenters that you will need when you make the next Google or Facebook will run cooler, be more environmentally friendly, and get more processing power per kilowatt hour.

So why Unix, and Linux in particular? Well, Unix has emerged as a standard—or at least, a rough standard—thanks to the U.S. government. It was chosen to reduce the disparate hardware-specific code that was being maintained, then became where TCP/IP networking was developed, making the Internet possible. With each passing decade since its inception, it’s become more widespread and standard until today when it’s become much like the generic plumbing of information technology, in most smartphones and supercomputers alike. What about on the desktop? Well, Windows PCs are the non-standard exception—but Macs based on Unix. Linux filled a need in the early 90’s when Unix had a tough time open sourcing itself, and never lost momentum ever since.

Point being, learn Unix/Linux and you’ll have the facility to log into and, given the proper login permissions, do things at the superuser control level. This is what people mean when they say rooting a machine. You log in as root—another name for the admin or superuser. It is a privilege jealously guarded by sysadmims of yore. I’m going to show you how to do it right now on a system you can reset to its original state with a double-click when you screw up.

And that begins the whack-a-mole introduction to servers. The idea is for the particular code execution hardware (or virtual machine) to be interchangeable, disposable and pretty much meaningless while what you learn is universally applicable and the code you write, which is where the real value resides, can flow from machine to machine, living in many places and backing itself up for the rest of your life.