Sometimes Old Code Is The Best Code - Resisting Scrap & Rebuild
by Mike Levin SEO & Datamaster, 07/11/2013
Ahhh. @j… A new day, a new journal entry. There’s so much I need to learn about git and mercurial-like distributed version control systems. That’s something that I very-much need to master. There’s a bunch of stuff I need to master, including the files that constitute Levinux, a bunch of Linux commands - not the least of which is AWK that I saw a guy from the Nerdery use when demonstrating a system that was developed for us in order to jump around multiple files in a hierarchy as if in a single file in vim. It essentially was like one of those file commanders, but existing entirely in the command-like with fluidity like autocomplete in web-menus jumping around in files that matched the pattern you typed in with an option to jump between them, and presumably open the one you actually want in vim.
That was information age power. You could feel it percolating. And once again, it was totally tied to the common Unix command-set. This time, one of the super-programs that you always hear mentioned in a pair (probably because the O’Reilly books grouped them that way) SED and AWK. Or the Stream Editor and Awkwardly acronymed program that doesn’t stand for anything Aho, Weinberger and Kernighan - the authors’ names. This might even be power user tricks like pipelining involved. Hmmmmm. So much I still don’t know and have to master. The big sexy ones like compiling QEMU binaries and mastering the Python programming language are just the start. I’ve got my 20 years between now and retirement cut out for me. And so, on with it.
Okay, the question at hand ahbd the thing that has really slowed down my progress is teh
The quick way to understanding is to write new code. Throw out the old stuff, and just start anew. Everyone loves a clean slate, and complete artistic freedom, and discovering each problem for the first time, and feeling like you discovered it yourself. And layering that onto the layered fabric tapestry piled high that is you. You’re born in that circular middle of the pile. Then you’re born, and experience come rolling out from your point of existence like lava out of percolating magma. Then as the magma pours out of the earth and becomes lava, layer upon layer is deposited until you have a sizable volcano - or person in this figurative case, having layer upon layer of experiences add up to make the person. And that person is still a self-aware bit, that is sort of represented by the interesting flow of lava down the infinite possibility of paths down the side - but still all somehow managing to prefer well-grooved paths for rivers of lava that flow down in mostly-stable streams.
And so goes life. But how are we more than just the arrangement of random levels of experience flowing out from our center, interestingly, but still quite randomly deposited randomly deposited into something that is not much more mobile than a volcano.
…Ah! I just remembered vipgq to format a paragraph. See! See! Layers upon layers, and the recurring elements from the layering process become prevailing traits and properties of the volcano.
Okay, back to for-the-day-job practicality. This is a lot of writing. But it’s worth it for various reasons. I am selling myself on the value of the existing Tiger codebase. I will probably not reset the “master” memory of the Tiger project by changing to git. Or by throwing out all the code and starting with a new repository from scratch, knowing now what I wish I knew then. That is the eternal pitfall - the desire to learn through scrap-and-rebuild so that you understand everything and are the reason for all of those decisions - for a system that makes absolute perfect sense to you - but to everyone else seems a little odd because they don’t “get it” the way you do, but which they still have to live with because they want all the wonderful benefits of using your system.
Okay, see? It’s not exactly blackmail, but it is… let’s call it… feature awesomeness withholding if you don’t buy in with your wallet or a recurring percentage of what they think you will be willing to spend to make that system part of your life. Via that system is delivered a whole host of infrastructure-provided life formula systems. You can become a handyman and fix things. That’s increasingly big as old things become both rarer and of more value. Old things made the old way are artifacts. They will have inherent value if you have places to store them and ways to sell them. And if you make managing such a system part of your life, you may like hoarding old things. But to everyone else, they are anchors. The space in your life and the freedom of movement of NOT having them around are worth more than their intrinsic money-exchange potential if you keep them around. For fleeting self-aware bits of matter, time, freedom and resources you can carry around with you are the most important things.
So… I keep the existing Tiger code-base. I learn it inside and out. I make fundamental improvements as I encounter the opportunity. No rush. You are in a powerful wizard position if you do this. You are starting to lose your wizard reputation. You’re making it look like you lost interest in your creation like you did with HitTail when you realized it wasn’t worth investing your very being into it.
Ugh! An hour-and-a-half meeting comes up in 15 minutes. But I’ve been given just enough time to gestate in my new role to be able to survive the occasional meeting interruption. My momentum is beginning to build back up. And this was a VERY KEY decision to have reached in pursuing that future. It is so critical to be perceived as high value at work in my current prototyping role. And the things I have to learn and master to do many of these prototypes is so outside what I want to know and do and become expert at, that it’s almost sickening. I have to get back into Microsoft SQL Server environment to directly access the stored procedures in a proprietary system that we don’t administrate ourselves. They manage our virtual machines. For me to play around, we have them image off a copy for me, and give me an account to the new virtual machine with permissions able to do what I need to do with what tables I need to work with and no more. That way, even as a developer, I don’t really have the god-level admin ability to ruin things - even though it wouldn’t matter because it’s a virtual machine. What I’m designing is the formula to make time-entry easy in yet another time-entry system from hell. Things are getting better with Apple-frenzied consumer-tech. Not so in Intranet-apps of the Visual Basic consultant linage of zombie programmers. Mikey-no-likey zombie programming.
Okay, but I have to do it. It’s what pays for Levinux, and puts me on the path I need to be on. It is a trajectory.
Wow, this hour-and-a-half meeting about SEO tools was much more valuable than I had thought. Keeps me engaged. Makes me look very smart. Made my voice heard just enough to plant my flag in an idea. Everyone was on the same track. They would have gotten there. I just said it first. Just as in the days when I nailed the meme of what “holistic” in digital marketing meant in the days of bid management for AdWords. It means something more than that today. The infinitely corruptible Link Graph that is Google’s family jewels is gradually being replaced by a graph of 7 billion semi-known nodes of self-aware bits of matter, called people.
But you can’t change everything at once. You can’t read Google’s mind or internal data structures directly. You can only infer, and make good intelligent positioning and forward-momentum decisions in the meanwhile. They’re long-bets based on high levels of likelihood. And the place to put your bets today is on people. I advocate layering it on, following an intelligent, self-directed daily system so that no data collection task ever becomes to large, burdensome and unwieldy to the point that keeping and managing the data is more a liability than the intelligence you could draw from it. Hence, lossy compression and generalization of behavior with because original cause was sort of erased. Our eyes aren’t really video cameras. Probe at what they’re doing. Ask the right questions. But don’t create a data-garbage dumpster liability to try to do that much better. Stick to the 80/20 rule for good-enough ROI.
Wow, my opinions about where Google Plus is going is really key to making my contributions to SEO talks. I have such a clear new economy vision of where Google and others are trying to take the world. I see the pendulum’s swinging from the pure what-you-know world of SEO to the increasingly who-you-know world of Google+. But who-you-know is layered up on top of a really strong what-you-know core, which is activated in this world through your tech savvies and communication skills, which are really increasingly the same thing.
What we need is a new but ambitious bubble-boy to demonstrate how much can really be done these days in terms of wielding power and controlling the world, even when cut off from it by all but a high bandwidth information connection and access to the world’s high bandwidth network system. The next Napoleon or Alexander The Great could be an agoraphobic shut-in.
Still waiting for this meeting to be over. Making valuable contributions. Things that Tiger does that get bottle-neck’d because of Google Docs can be made scalable by just extracting the functions into a stand-alone script that can be run on a scheduled basis.
There are still some very interesting dots for me to connect with Tiger. In some ways of looking at it, I have barely scratched the surface.
All this is really a way to get my way deeply back into the Tiger code. The memory that builds up in here as I continue to use it as a daily journal is impressive. It will (if it hasn’t already) surpass my Scala Webmaster Journal as a repository of high-quality thought-work process. I need to think better, and in order to do that, I need to go to the journal and think things through out loud. Where was I? Oh yeah, a date for proxies.
Okay, the logic is that if the proxy was found today, you can keep using it. If the proxy is not equal to today, then get a new one. I’m avoiding date comparisons by just converting the date to a string and comparing strings. That will always capture an equality between today and today, even with Google Doc’s date format conversions. Right? Hmmm. Needs to be tested.
What will happen if you get it wrong is… you won’t see it. It will look invisible. Okay… think. 1, 2, 3.
Okay, the comparison will be the trick. But get the basics in place fast. It’s 2:50, and Rachel and Adi will be here for dinner around 5:30, and I’ll have to stop. So, just focus and get this proxy stuff done finally. Thinking things through correctly and with high quality is what’s been missing lately.
Okay, I’m making the cell_update function a little easier to use. Strip out passing around the req object whenever you can. That was one of the real strangenesses about mod_python. Everything I do now should be about simplification and eventual removal from the Apache2/mod_python stack and into one of those lightweight Python web frameworks. I don’t really need all the bulk of Apache and strangeness of mod_python.
Okay, I am now in the business of super-polish and super-refinement. Make the Tiger system robust and portable and unstoppable and completely stoppable.
Okay, I think I have the web proxy recycling efficiency working while having it select a new one frequently enough so that you’re not using old proxies. Pshwew! End of a long journey. I will have to qualify this to the audience for the Pinterest functions that it will not be 100% reliable, as even discovered and tested web proxies are not 100% reliable.
Okay time to cut the journal entry. Get a public post out there, and move onto supporting the web proxies optionally on ezscrape functions.