Found The Love in HTML5… Finally!
by Mike Levin SEO & Datamaster, 12/10/2013
Note: This is an daily work journal entry extracted from a new DVCS on a new project.
Wow, I’m liking my current project, finally. I often feel that the thing you’re working on RIGHT NOW must be as interesting as anything else going on in your life, or else distraction or paralysis will seize you. The “interest-pressures” applied to you will either pull you AWAY from your work because the more interesting thing is just one click away on the Internet - or you will be PUSHED away from your work because making meaningful progress on the work before you seems like an insurmountable task, like standing at the base of a mountain looking up demoralized that you’ll never be able to climb it, so why start - hence, paralysis. This project has entered that place where the 1, 2, 3 step procedure (where you’re REALLY always on step #1) is actually working.
It’s snowing this morning, coming down in torrents out the window on the type of day I would have automatically wanted to work from home in the recent past, to make sure I have the opportunity to enjoy the opportunity with my now 3 year-old girl. And I do have pangs of remorse missing it today, but what will my home happiness be if I stumble and fall professionally, botching this project that has tight time-lines and high expectations by executive stakeholders? So quite the opposite of what I would have normally done, I actually decided to come into work even earlier, and indeed I got my daily work journal underway before 9:00 AM. Only one co-worker is here, as he always is - a Soviet Jew from the Ukraine. Got to talk to him more!
Anyway, this is one of those daily journal entries that really characterized my old journal before I moved Tiger over to the company git repository, which diverged pretty significantly from the work-at-hand. It’s the forest/trees issue. My value as a developer - and often, a one-man-show - comes from my ability to see the forest, and rapidly zoom down to the trees and deal with the details. I can also communicate well and am safe to put in front of clients who consistently love me and my ability to make the difficult-to-understand easy. This is a big part of what made me so effective in the field of search engine optimization (SEO). but the world is changing, and I must change with it.
As evidence of this change, I offer the fact that I’m making a journal entry like this in the code-base I’m maintaining now on the company git repository. I was able to do this within days (okay, maybe weeks) of the company modernizing it’s source code management (SCM) to a modern distributed version control system (DVCS). I was on Mercurial (hg) and the company (and the world) chose git, but they’re nearly command-compatible, so the move-over was instantaneous for me. I’m keeping this journal by typing into the vim text-editor that dates back to the rise of the pre-Internet (not the Web, but the Unix OS and networking protocols it’s built-on). This stuff is what you call “core” and I’m positioning myself for a resurgence of all-things-core… because everything BUT core is (and will continue to be) in such radical flux…
I am very sensitive to things “moving into core”, for those are the things I want to take up and become expert in. The Unix/Linux command-set, especially particular portions of it like ssh, scp, ls, cd, find, grep, chmod and a bunch of others that let you configure servers, are the first choice. All the tools that always have been around and always will be around are part of this. No matter how much operating system application developers want to strip away from their platforms, if it has a C-compiler written for it, then a Unix-like environment is one Busybox compile away. Even Android phones which are only kinda-sorta Linux become very Unix-like by dropping in a single program (Busybox), and all that “core” ability surrounding the Unix command set becomes incredibly, super-useful. Most of the “embedded computer” world works this way.
Okay, so I’ll reign this article in and get to REAL work, but I’ll wrap it up quickly by saying the other decisions surrounding what’s “core” and what you should become expert at for the long-run and timeless value in the tech world become increasingly controversial and subjective. However, I’ve made my choices. I’ve chosen vim as my text editor, and git as my version control system. These both are rapidly entering “core” in most hardcore developer’s minds. They have a certain irresistible momentum to them. I choose Python as my “core” programming language because even though ANSI-standard C is the only true choice for a core programming language, it’s too hard for daily, rapid work, and Python is the second-best for reasons I expand upon plenty in other articles.
And finally, there’s user interfaces. There’s executing code on a platform that will be in people’s hands by the billions pretty soon - and that won’t be Python. The platform-in-motion currently lumped under the blanket-term HTML5, that is today passing through the zones of happy-accident through necessary evil through flashy fad and into meaningful trend. And while not ideal, neither is ANSI-C nor was Assembler before it. And just the same way that today no one touches Assembler and hardly anyone touches old-fashioned C, many use it’s direct derivatives: C++, Objective C, C#, Java and everything else deigned to take the rough edges off C.
And it’s only 9:40 AM… and onto my work for the day!