I think I am done with the term 'geekery'. It's rather tiresome, and I am a victim of my own style. This is about focus and discipline and a willingness to spend the hours.
I am reminded of the time I began my journey into Republican politics back around 2003. It was a such a big deal at the time to utter 'black Republican' and watch the roaches carom off the walls. There's always that existential leap required of those tackling a new domain. So you do it for a short time. My short time of shedding my old skin and preening around as a 'geek' are done. And so I've had it with these glasses.
My enthusiasm for programming is immersing me at a different level, because I have now broken a barrier in which I am starting to appreciate my own coding style and am now a bit resistent to saying yes to everything. Which only means that my code is becoming trim and specific enough, unlike what I used to write, such that a missed feature forces even bigger rewrites. At least that's how I'm interpreting things today, even though 'rewrites' is not the proper term. I just hate sticking 'i prime' in between 'i' and 'j' even more than ever.
Getting over the hump of knowing how different development frameworks put code and supporting junk is probably going to be my biggest headache. That's because I really do prefer the command line for a lot of tasks. But to all ends, I expect to be focusing on the following technologies.
I have been convinced that pretty much everything I really want to do will involve building servers and service tiers involved in adding value to massive and structured databases. To that end I am pretty sure that I will be working with Ruby for everything where performance doesn't matter much and C++ where it does. The C++ is a big chunk of cheese to swallow, but hey, I've got 20 years. In addition, I'll continue my SQL in the various flavors, mostly PL, V and whatever Postgres calls theirs. I will probably end up with some Rails, but if I can do what I want in Sinatra and custom Ruby, I'll prefer that. I'll likely need to get by with a little help from JavaScript. And finally, I need a little something to do CLI menuing, unless my webby stuff is really fast and simple. Oh yeah, don't let me forget R. Chances are, however, I'll be doing R for myself before a customer asks, but you never know.
So this past tumble of weeks I put together a scratch built metadata tool. It turned out that the customer wanted a whole lot less than what I geared up to build, but I learned a lot in the process. Basically, it's a metadata manager for HFM. In the vibe of that simple hierarchy manager that I've always wanted to build, I scoped out a bunch of ideas for dimensions and members. Now I've got something that can import and export the XML configs for HFM with (variant) merging rules from flat files. So if you give me a rather tediuous parent child export with a couple other attribute fields, I can update HFM dimensions with it.
I went about this several different ways, which was both frustrating and cool at the same time. I essentially built a ridiculous database function in the middle of code, doing stuff that should be done in SQL in a proper database engine. However, the customer did not want a database involved. So I built it to spec in Ruby, sweating the loop and search details like a guy with only 640K to play with. It performed reasonably well, until they changed the spec. I also had some constructive interference from my mentor who suggested doing things in XML rather than in the objects I made. So I ended up with a very sophisticated XML & flat file parser (which I think I'll never generalize) and a sweet XML builder.
I used the Nokogiri gem and a bit of guesswork, with the correct assumption that the HFM XML structure is fairly predictable and therefore didn't get lost in the weeds of recursion. That's why it's not particularly generalizable. On the other hand, a fully recursive and variable structure is what Nokogiri does. So when I deal with that, it will be easier.
At some point I should be able to reconcile it with the Olap Underground Essbase Outline extractor, which means I should be able to take an Essbase Outline and convert it into HFM metadata and vice versa. Why? Because I'd rather do it that way than use EPMA. Wouldn't you?
I also picked up the Logger gem, and built my own gem of the code I wrote. Small victories but victories nonetheless. Considering how long I have been playing with computers, I'm easily impressed. Speaking of which, I finally started playing D&D via Nethack, although I probably shouldn't say so because it's more geekery-talk. What's overhanging all of this is the personal revelation I had in the last month that has liberated me from fear of isolation in my geekery, and that is the knowledge and acceptance that I will always be isolated and that there is nothing more necessary in my life than family and friendship. Sounds brain dead obvious doesn't it. Not to a political junkie and cultural critic like me. I have really finally made sense of the liberal arts, and it no longer hangs over my head. Except I have the habits of a lifetime to break so that I can spend more time dedicated to the work of coding.
That means first of all an investment in my desk and home office. I have an excellent chair and desk, but was running out of shelf and storage space. A visit to the Container Store solved that problem. Now I've got an Alfa shelf with four mesh drawers. But more on that separately.