Mike Levin SEO

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

EC2 is Time Sharing And Feeling A Bit Obsolete

by Mike Levin SEO & Datamaster, 10/22/2013

Hmmmm. It’s Monday morning, about 10:45 AM. I’m coming back after one of the most difficult weeks of my life - losing an unborn child. We got through it okay, and my wife being the social media maven that she is, wrote about it online and was blessed by an outpouring of support by people we know who have had similar experiences. It is a more common experience than one might think at first, and it is a heavy realization knowing that nature deals in averages - even with something as sacred and precious as human life and the growth of a family.

I believe I am emotionally much more prepared to deal with this sort of thing, given all the loss in my life and truly appreciating the blessing now of a family of my own, and a beautiful nearly-3 year old child, who we will be going to Disney World with in about a month. I just put the time-off request in. I have to be more on top of that sort of thing. But life is crazy at the moment. I have to forgive myself… but I also have to recalibrate, get my legs back underneath of me, and start relentlessly moving towards my goals.

Living in New York, being in a great industry where I can always be quickly hired at a good salary, having skills that would let me venture out on my own effectively if the need ever arose, having a loving family (wife and kid), owning property (as much as shares in a NYC co-op is owning), and a whole host of other blessings. I have achieved much of what I have found elusive throughout so much of my life. But even as such, it is like I am always standing on shaky terrain, always hyper-alert to some impending earthquake.

The miscarriage is one example of such an earthquake, but so is the gradual dissolution of the career label that I hung my hat on for the past 15 years: SEO. I am recalibrating my life on several fronts, and miraculously attempting NOT to switch employers through these turbulent times. For it seems to me that for the first time in my career, I have an employer that recognizes the skills of a professional turbulence-surfer. I not only survive turbulence, but I seem to thrive in it.

I survived the dissolution of my first professional company-love, Commodore Computers, then I survived the dissolution of my immediate family through divorce, martyrdom, descent into madness, and eventually the death of both parents. I survived someone attacking me with a hammer during a robbery in the parking lot of a bank. I survived a thankless Commodore spin-off employer consisting of the last rats who jumped ship who only knew how to feast on dying bodies. And at my very core, I survived being the surprise natural second child born after a stillbirth and subsequent adoption.

Now, most everything is going my way, and it is time to start designing a life. I have always had purpose, passion and persistence. It is what got me through all the things life has thrown at me - although I rarely feel self pity with some built-in reminder that despite any grief, I am still part of the ten percent of privileged humanity that doesn’t have to worry about where my next meal is coming from. Even with my greatest woes, I live a life for which most people on earth would trade places with me in a second. I know this. So, it is really always just a question of optimizing and somehow giving back.

And in this, I have a plan to. It’s a horrible expression, but as a friend of mine pointed out, I am killing many birds with one stone with Levinux, my own distribution of Linux. Technically, it’s a remix because I’m using Tiny Core Linux. But without delving into too many details, my purpose is to preserve and transmit much of the know-how and doing technical projects in an old-skool pre-cloud terminal bash shell fashion. Everything that is happening today can be seen as analogous to the rise of timesharing in the age of computer mainframes.

As computing resources became cheaper and easier, they became distributed. That was the age of the PC, and although they weren’t perfect, the benefits of distributed computing far outweigh centralized. In fact, about the only thing that heavily centralized computing offers as an advantage is an easier startup period before everyone wakes up and realizes what the real technology revolution is about - and by that time, the vendor’s purpose is to lock you in!

The Amazon Elastic Computing Cloud (EC2) was an early example of that, as Amazon divvied out its excess capacity built for the most demanding online shopping time of the year. Now I see that even Eco is looking a bit aged, not isolating you from the underlying virtual computers, incurring all the maintenance liabilities and inefficiencies of managing dozens, hundreds, or even thousands of underlying virtual computers, made to very much resemble the “rack computers” that the cloud is designed to replace.

I became aware of this apparent aging of computing cloud model as I started to learn the radically different Google App Engine (GAE) that abstracts away the underlying virtual computers - opting instead of a single “web app” through which all requests are automatically funneled, and the cloud itself automatically takes care of all the details of scaling to ensure availability. This threw me for a loop as I took up the GAE for the Google Glass project to which I’m assigned. The “quickstart” guide to Glass is distributed in Github. you pull it down, then run it in your GoogleAppEngineLauncher, which is a local virtual machine simulation of the GAE execution environment. You deploy your apps from there. There is no bash shell login to the GAE.

Because I stumbled on the Google App Engine quickstart example (OAuth 2.0 was a big stumbling block), and because my time and focus was distracted with the painful personal matters of the miscarriage, I actually stumbled at work and lost a chance to spearhead the Google Glass initiative at work. Someone else picked up and ran with the ball. And he’s a front-end developer guy who can make the sexy parts of Google Glass look sexy - the HTML5 work that can be sent up to glass through mere Google-provided web forms!

So, functionally my career repositioning plans have suffered yet another setback, and I need to remain valuable while I jockey and reposition. This is that thriving-in-ambiguity thing I was talking about. I can’t be the white knight trotting in with Google Glass, so what next? What next? How? Why? Knowing what to do next and why has always been one of my greatest strengths. I need to think on that. Setback or opportunity? It is very much dependent on how my employer sees it.

I’m facing a serious out-of-sight, out-of-mind problem at my current employer. I took a huge risk extracting myself from the SEO-department, when I saw the writing on the wall. I viewed Google Glass much like a life preserver thrown my way, and now it was yanked out of my hands… but by good people. I really like the folks I was working with on the Glass project. I basically recused myself from that project… but not from Glass forever. And not from GAE. Hidden in this latest challenge and turn of events are the seeds of my… my what?

It is NOT yet another replatforming. This is something different. The Unixy/Linuxy stuff I’ve been doing is the right approach. You can’t abstract away everything. I need to draw the whole spectrum. 1-dimensional spectrum? Yes, probably. A type of illustration that I used to excel at when I was an Adobe Illustrator person.

Okay, so you are on the verge of something bigger… something that makes you able to simultaneously take advantage of the cloud and not be beholden to either it or the vendors behind it. Take advantage of the cloud today, but prepare for the post-cloud-world.

Levinux is key. I’m thinking about updating it to Tiny Core 5.x… ugh! Almost unapproachable. It’s easy enough to get the latest core.iso, extract the core.gz and vmlinuz and dropping them into location, renaming core.gz back to microcore.gz. But from there, things become really annoying. I get a warning that it can’t fetch sftp-server, and then attempts to do the rest of the repository gets breaks it out into every little component - many more than with Tiny Core 3.x… it must be hitting the repository in a different way. Ugh, then I also get a bunch of permission denied on /usr/local/tce writes.