Mike Levin SEO

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

Modifying Personal Mantra To Include JavaScript / HTML5 / CSS3 / DOM

by Mike Levin SEO & Datamaster, 11/25/2013

Progress must be iterative. Momentum must be cumulative. Together, amazing things can be accomplished in a lifetime. But a lifetime is really just barely enough. Time slips by: hours, days, weeks, months, years, decades. It is possible for nearly a lifetime to go by with almost no progress on all the fronts you once intended. This Monday morning daily work journal entry is about the fact that it is possible to understood and correct this situation if noticed and desired.

Life seems about equally unpredictable and predictable, with the distribution of what you can pretty easily know, and what’s impossible to predict more-or-less following the Pareto curve, like so many other things in life. The vast majority of things fall into the rhythmic daily patterns that hypnotize and lull us into complacency. The daily grind is the enemy. Having achieved life’s basic necessities according the Maslow hierarchy of needs and in your heart knowing you need to go no further is the enemy. You know what it takes to survive, at the process of becoming an adult is greatly predicting these things intuitively, then coasting into old-age.

The things that lull us into this animal-life are the predicable things. That’s 80% of what’s going on, but the issue is that what’s left over in the remaining 20% is where all change rises from: people who are working outside the norm and overcoming their basic animal instincts. These people are the 20% high impact players who make all the difference. Of course, they burn out sooner and fail more frequently than those just going with the flow. It’s a harder life, with a different risk/reward ratio than other people are comfortable with. None-the-less, that’s where all the difference is made, and for my limited lifetime on this earth, that’s the type of person I would rather be - although my behavior and place in this world looks much more like the undifferentiated 80%.

Okay, now THAT’S a Monday morning journal entry. The more your thoughts and keyboard are flowing, the faster and better you will get to your goals. You are being thoughtful and processing your thoughts. That is huge advantage. It is in this act that you bootstrap your consciousness and pull yourself up and out of the 80% flock. Doing so by typing into vim and mastering the keyboard shortcuts that give you a nearly telepathic command over text is just another example of how you are doing this. And that you’re doing it into your own server in the cloud, in a file that’s in a distributed revision control system, keeping your thoughts secure in the “who can read this” sense, and secure in the “keep copies in more than one place” sense, makes it even all the more so. And that you have a way to selectively publish excerpts from your daily work journal, in a way where you chain up bash and python commands to hit the WordPress API, so that your publishable thoughts and ideas can work for you 24/7 to help build notoriety in this new Google+ reputation-driven world makes it even all the more so.

(And if that made sense to you, congratulations. You are the .0000001% of the population in the center of a geeky venn diagram that is my the audience who will appreciate and draw something from my writing.)

Okay sure, so I might not have made it financially like some of the other lucky geniuses out there who used iterative gains and compounding momentum to their advantage starting earlier in life with a more focused passion. But I am only forty-three years old, and the picture is finally starting to come into focus. All I need to do is have a truly interesting passion that others also might be interested in, and then put myself out there consistently and move towards that vision relentlessly, where even my little steps forward somehow interest and engage, and perchance even help, people out there.

I have exactly what I need now, in Levinux - my own remix of Linux that runs with a double-click on the desktop of almost any Windows, Mac or other Linux computer. However, it does have to be Intel/AMD-style x86 hardware. Despite all my doubts, x86 hardware is not in its final throes, and it’s what desktop Macs and PCs will be based on for a long time to come. And with the advent of the Bay Trail quad-core Atom processors with the integrated Intel GPUs, x86 technology even has a shot at having some market share in mobile. My approach that leans on QEMU for an absolutely identical code execution environment across “all” desktop hardware is an absolutely correct one. I need to hunker-down, lean-in and run all the way with this thing.

The problem is that this is not truly my day job. My day job is delivering apps that would live-on and run on Levinux PLUS the environment of the modern web browser. That is the great other side of code execution context: HTML5, CSS3, JavaScript and the standard DOM browser object. It sort of rubs me the wrong way, because I chose Python as my server-side code execution context merely a year or even months before node.js came onto the scene and once again made JavaScript a viable server-side language, thereby unifying the languages you need to master for web development into one. This was my original vision for Tiger, and I even tried to make it work with a server-side JavaScript implementation called Helma, which used the Rhino JS engine, instead of the Google V8 engine, which was later used to power node. Now, I’m fairly committed to Python on the server, and would go so far as to say I’ve fallen in love with it, and HAVE TO start doing the “front-end” type of development now in JavaScript that I had thought I had left behind me. It fills me with some doubt and remorse, in that I could have been spending the last four years mastering JavaScript. That’s neither here nor there. I just have to work it into my new mantra.

Okay, so what is that mantra? What WAS it? It was master a few very timeless tools that let you tackle a very large problem-domain, and get forever better at them for the rest of your life, avoiding the pitfalls of perpetual retraining to avoid obsolescence. Don’t be a victim of what Joel Spolsky calls fire-and-motion. And I WAS TRULY a victim of that several times: first with the Amiga computer, then with the Active Server Page / VBScript platform. In my never-again mentality, I took up (eventually) Python, after a years-long investigation that included Java, .NET (VBasic), Ruby and (early) JavaScript. None of them ignited a passion or engaged me, until I finally gave Python a try. Many of the things I liked about Ruby were in Python, without all that object oriented nonsense being shoved down my throat when it wasn’t necessary. Python was for me, it was clear. And so, here we are.

The new mantra remains: use and master as few timeless tools as possible that let you tackle the largest problem-domain possible, and that now includes JavaScript / HTML5 / CSS3 / The Browser Document Object Model. This does not invalidate Python, which is still as love-worthy on the server-side as ever. But it does mean that the browser and many aspects of user interface construction have / are entering the realm of timeless. They can not be ignored, and the sooner you embrace them, the better. And so begins my rapid-learning / rapid delivery of my latest “prototype” internal project, that relies heavily on these technologies. It is part of my mantra now, and I will love it, because it is as love-worthy as the Unix/Linux command set, vim, Python, and git / hg. It’s not part of my short stack, but it is the #1 most common API that my server-side short stack will talk to.