Sunday, October 28, 2012

Why We Learn to Fight

Continuing my new habit of posting about my To-Shin Do experiences, I'd just like to say that this week was pretty awesome, in no small part because I actually made it to TWO whole classes! Thursday and Saturday both saw me, this back-woods country boy turned nerdy ninja, hanging out in downtown Detroit learning a centuries-old martial tradition. Side-bar:  when I think of everything that had to happen throughout history and in my own life in order to make this possible .. it's crazy .. and pretty cool.

Anyway, the Thursday night class was mainly concentrated on testing, which is very different from the way I am used to testing. For one thing, it seems a lot more detailed and harder, and this is a good thing. This way, I don't run the risk of wearing a black belt someday yet not really being worthy of it (and worse, not knowing it). A twist of fate or someone's administrative screw-up forced us out of our usual facility and into the building's parking garage. This was made even more interesting by two things.

The Michigan Theater turned Parking Structure
(not my picture - found it on the web)
First, the parking garage used to be a very ornate old-time theater. The ceiling in particular consists of the remnants of what was once a grand cathedral-style piece of gilded-age architecture, but is now pocked with holes and crumbling, just like the rest of the place that wasn't converted into parking spaces. Littered about the ground were tiny bits of exploded "plaster bombs" that continue to fall randomly from the once majestic ceiling turned symbol of the sort of urban decay you can only find in the Motor City. It was almost surreal - I wish I had taken a picture - it was beautiful in a morbid sort of way, like ancient ruins of something great that has long since passed.

Second, we weren't the only ones using the parking lot that night. Aside from the birds and bats nesting in the ruins, it seems some local law students decided that would be a great place to have a kegger, blast loud music, and play some game that I'm unfamiliar with, so I'll just call it "throw the bean-bag into the hole in the target thingy." It reminded me of horseshoes, but without the large metal objects and therefore a lot less clanging. These folks were pleasant enough, and a few of them even wandered over to check us out - especially once the swords came out.

After class, we had to walk directly through the party in order to reach the exit, and one of the students who had obviously had a few beers stopped us and asked us a few questions. Of course, once he learned we were ninjas in training, he wanted to arrange a "fight" with one of his co-workers and asked us if we'd like to fight this guy. My friend and I answered with an immediate "No," and the guy then asked, "well, why are  you learning how to fight, then?"

I thought that was a great question, and it deserves an answer. Why DO we learn these fighting skills, if not to fight? There are a lot of answers, really. We practice the art as a way to learn about our minds and bodies, as a way to strengthen and improve our health, and things like that. But why learn combat skills when you can get those benefits from things like Yoga or working out at the gym?

The truth for me is that we learn to fight hoping we never need to. But, if we do, we will have the skills to protect the ones we love, the ones who can't fight for themselves, the innocent stranger, and even, to some extent, to protect the same enemy who would challenge us. That last part seems contradictory, but it's true - most of the techniques we learn are geared towards ending the fight without doing any permanent damage to the attacker. The winner of a fight is the guy that gets to go home in one piece afterwards, but even an aggressor who instigates a fight has a family to go home to at the end of the day, too .. so we learn how to avoid first, and if we have to, diffuse a violent situation with minimal damage to everyone. Sure, someone might end up with a broken arm or at least a bruised ego, but it actually takes a LOT to escalate a situation to the point that would require a ninja to permanently maim or kill. It's this aspect of compassion and giving precedence to non-violent solutions that I think makes this art special and so appealing to me personally.

After all that, I realize I still haven't talked about Saturday's class! I'll try to keep it short and simple this time.  Basically, it was awesome. We had our own room back, for one thing.  I also learned I had been doing my stomp kicks wrong for pretty much the entire time I've been doing this.  I should have known, really .. my kicks always felt awkward to me and seemed to land with not as much power as they should. But .. now that the error has been detected and corrected, holy crap! I feel like I really could kick down a wall, or send a guy twice my size flying across a room if I had to, and with LESS strength and effort than I had been trying to use before.

Ninja with Sword
I also had what is probably my most extensive lesson on swordsmanship ever. I learned what is basically one technique (there are literally thousands), but I feel like the guy teaching me really knew his stuff and conveyed it to me in a way I won't forget. I didn't notice how long the session lasted, but it felt like hours based on the amount of information I was absorbing and the amount of perspiration dripping into my eyes. We stopped when it felt like my brain was going to explode, and that's just one technique. I have a long, long way to go before I master even that one weapon, let alone the assortment of others for which the ninja are so infamous. But, that's why this is a life-long journey and not just a phase or something to be "in to" for a while. Anyone can take a few months of any martial art and learn a few basics, but to really learn and master even the smallest fraction of what they have to offer takes a lifetime. Think of how long it would take you to walk a thousand miles if you only took one or two steps per week because that was as fast as you could physically go.

That proverbial journey of a thousand miles which begins with a single step never actually ends, nor should it. Rather it becomes a way of life - a part of your that's inextricable from the rest, nurturing and growing your spirit, with each step giving you the strength and perseverance you'll need for the next.

Thursday, October 25, 2012

The Infamous "We're Hosed" Incident

My first "real job" upon graduating college was, among other things, a lot of fun and more than a little educational. This was in 1997, which was probably one of the best years in history to have graduated with a 3.0 GPA and a BS degree in computer science. They were hiring programmers off the street back then! I'm not even kidding. I had an interview and accepted an offer to work as a contractor at General Motors before I even took my last final exam. This was the job that brought me from western New York to Michigan, and as far as life-shaping decisions go, this one was pretty big.

A Complete Tech 2 Kit
Back then, I was working on a vehicle diagnostic tool called the Tech 2. It was a small (for its time) hand-held embedded computing device that could connect to any GM vehicle's communications bus, read, analyze, and store diagnostic information in real time, as well as reprogram all of the on-board computers. We frequently tested the tool's ability to test and modify a given vehicle's fuel-to-air mixture, and detect when a sensor had gone bad (or we'd just disconnected its power), for examples.

My assignment was with the team that developed and maintained the core operating system for this tool. Our code was the first bit of code that ran in the system, bringing it from power-up to functional, and providing all the real-time scheduling and communications protocols for the rest of the more vehicle-specific stuff. It was pretty challenging stuff for a newbie fresh out of college, but I ran with it and enjoyed it a lot.

One of the challenges we faced was that we basically had a 10MB flash "hard drive" that we could only access 1MB at a time, and that flash drive was filling up fast.  Mind you, there was no file system, so we addressed the flash directly by address and used a card page register to pick which 1MB we wanted to see at any given time.  This made for some .. interesting .. code constructs, and made it necessary to copy certain  parts of the software into RAM at boot time - things like the OS's API layer, which was contained on the flash drive at an addressed specified in a look-up table that started at address 0.  You still with me?  Good.

I had written the code that would locate this API code and transfer it from the flash drive into it's designated spot in the RAM during the tool's boot-up sequence.  In the name of defensive coding, I had written a block of code to detect the absence of this file and react accordingly - by disabling all interrupts and entering an infinite loop after printing an error message in the center of the screen. My downfall was having the error message read, simply, "WE'RE HOSED."  I figured it was ok, though .. the API binary was an integral part of every release .. surely this error message would NEVER be displayed, right?  Right??

Wrong.  In fact, during the very next release cycle, the CDs that were shipped to every registered GM dealership in the WORLD were pressed without including that particular file.  As soon as a few dealers updated their Tech 2s with the new software, the calls started pouring in from around the world - Australia, South Africa, Sweden, and all over the USA, to name a few.  Everyone wanted to know what the heck does this "we're hosed" message mean, and why had their expensive diagnostic tool become nothing more than an expensive paperweight with a display proclaiming this ambiguous message to the entire world?

Needless to say, I was mortified. We quickly rushed a new release into production that not only replaced "we're hosed" with a more appropriate error message, but also made sure the API binary was included this time.  As far as I know, the more appropriate error message was never seen .. which is a good thing.

The moral of the story?  When you're coding error messages, never ever assume they won't be seen, because if you make that assumption even once, chances are that's the one time you'll be ... hosed.

Tuesday, October 16, 2012

Continuing the Journey

A few weeks ago, I wrote about re-starting my To-Shin Do training. I thought that perhaps a good way to stay motivated and keep up with my training would be to blog about it here.  So, if you keep an eye on this particular topic, you'll hopefully see an update now and then.  It's not meant to be a "brag-reel," even though it might sound like one .. it's just a way to get my thoughts out and maybe hold myself accountable.  And hey, if it manages to get one of my devoted readers interested in martial arts, that would be a nice bonus.

Anyway, the journey got off to a rough start. I was not actually able to start until last Thursday, a week after I had planned.  Tonight, I won't be attending class because I've got the Martian Death Flu or something. I hope I feel even slightly better by Saturday so I can go to class that day. Sometimes I wonder if the universe enjoys screwing with me like that when I commit to doing something that's going to be challenging anyway.

The one class I have attended so far, though, was really good!  I got a good work-out, managed to not get hurt, and even learned a few things. I was actually surprised at how much of the stuff my body just remembered to do, even though I hadn't thought about it for a couple years. We concentrated on various ways of applying a choke-hold, and getting out of one.  I was once again reminded that as physical as this art is, it is still mostly mental.  Let me explain.

As is usually the case when I'm learning something new, I screwed up the first few times I tried the technique. It felt difficult, un-natural, and ineffective. However, once my instructor pointed out what I was doing wrong and my mind was able to apprehend the science behind it and allow me to correct the mistakes, I was surprised at how physically easy it actually was!  The real challenge was not having the physical strength to brute-force something - in fact, using my strength with incorrect body positioning and alignment proved difficult and futile. The hard part was comprehending in my mind what was actually happening and how to respond to it. Once that part clicked, the technique itself became easy, natural, and yes .. very effective.


Friday, September 28, 2012

Liberty and Security

On September 11th of this year, I wrote about a terrible day my country had experienced eleven years before, and shared some of my experiences from that day.  As everyone knows, that tragedy (the attacks, not my blog post, lol) has changed this country and the world in more ways than anyone probably realizes.

For one thing, we Americans showed the world once again that we won't be kept down, we won't be oppressed, and we will not be victims anymore. The heroes of Flight 93 demonstrated that spirit on that same day, sacrificing their own lives rather than allowing themselves to become weapons against their own people in the hands of terrorists.  Since then, there has not been a single successful airline hijacking or attack that was not thwarted by other brave men and women acting in that same spirit, and I think it's a pretty safe bet there won't be for a very long time.  That ship, as they say, has sailed.

On the other hand, I remain suspicious about our government's response to the attacks, especially here at home. While I fully agreed with and supported the invasions of Afganistan and even Iraq, I have always been suspicious about the domestic responses like the so-called "Patriot Act," the creation of the DHS and TSA, etc.. I also really hate having to travel anywhere by air. So far, I have managed to avoid having my private parts groped (that's a "pat-down" for you sheeple out there) in the name of national security, but I have been forcibly irradiated on one occasion ("body-scanned").

What I am seeing in America today is the mindset that preventing another 9/11 is worth sacrificing just about anything, including our constitution and bill of rights - the very freedoms the terrorists hate us for, as we were once told. Sure, we ought to protect innocent lives. But I am one of the apparent few who believe we, the people, can do, will do, and have already done a far better job of that than our government can or should. And, we can do it without abusive random body searches, warrant-less surveillance, expensive (and completely ineffective) body scanners, and allowing ourselves to become subjects rather than citizens.  Flight 93 proved that, and those people did it without the Patriot Act or the TSA.

At this point, I only hope the trend reverses itself soon enough so that we can get back some of the liberties we've lost without having to endure the same kinds of struggles in which we won them to start with. Otherwise, by the time we're done "defending freedom," there might not be any of it left and we will have done bin Laden's (may he rust in pieces) job for him.


Thursday, September 27, 2012

Beginning the Journey .. Again

About 5 years ago, I began a journey that has changed my life more than I ever could have imagined it would. In fact, I would even go so far as to say that at one point along the way, what I had learned actually saved my life. With everything that has changed since then, I guess it's no surprise.

The journey I speak of began when I walked into a nondescript dojo in Ann Arbor, Michigan and earned my white belt in To-Shin Do, a form of Ninjutsu brought to America by Stephen K. Hayes - a martial arts legend I had never heard of until that time.  I'm not going to spend time here covering the history of the art. I've left enough keywords in this paragraph that anyone interested should be able to find whatever they want through some creative Googling.

For the first few months, the training was hard for me. This was the most athletic thing I'd ever done. I'd never played sports or exercised on a regular basis before, and initially my body was not at all happy with the change. Eventually, though, it became easier. I began to lose some weight and feel better in general, and the techniques and mindset started to become familiar, even natural. I slowly learned things about myself that amazed me as I began learning how to do things I never thought I could. What's more, I found that the techniques and mechanics of body motion I was learning didn't apply only to fighting, but to many other things as well. Moving large pieces of furniture became easier, and if I got clumsy and fell, I could roll out of it and be back on my feet without getting hurt.  The latter is an especially amazing thing for a 6 foot tall, 250 pound nerd, let me tell you!

About a year or so into my training, my personal life fell apart as I went through a bitter divorce. I won't write about the details here, but suffice it to say that the mental training I had received through To-Shin Do played a significant part in my getting through the situation with my sanity intact. I kept at it for a while, but balancing everything was now suddenly a lot more difficult.

Finally, when the divorce was finalized, I was forced to move very far away from the martial arts community I had grown to love so much.  I kept at it for a while longer, but eventually finances and the pressures of life forced me to put my training on hold.  I had just advanced to the rank of green/white when I made the decision. I was 10 belts in, and another 6 away from a black belt. That was 2 years ago.

Today, it feels like everything is different. I like most of the changes that have happened over the last 2 years, for sure. I've re-married, and we're very happy together. We have a beautiful baby girl and a decent place to live. I've changed to a much better job than I had before, and the financial situation is getting better slowly but surely.

I miss my friends and training, though, and my body certainly misses it too.  I've gained a lot of weight back, old aches and pains have returned, and I'm sure I'm no-where near as agile as I was. With all that come lots of regrets and things I wish I had done differently. Mostly, I wish I had just stuck with it. I regret making the decision to go on hiatus, even though I still feel I had no choice at the time. This all adds up to what is basically a profound sense of loss.

But .. today, in a couple hours, I plan to start over.  I'm going to a new dojo where the same art is taught, and I'm going to start training again. This time, I'm going to stay with it - especially now that I know first hand the consequences of stopping.  Still, I can't help but feel a sense of trepidation in this. It won't be the community I was used to. It won't be the same instructor or the same people .. it just won't be the same, and that worries me. I'm also about to find out just how far I've fallen off the bandwagon and how much of what I've learned I will now need to re-learn. It's not going to be pretty, and honestly, I'm worried about finding and keeping the motivation to continue at all.

What I must understand, though, is that the situation simply is what it is. The only way I'm going to change anything is to actually do something - it won't get any better if all I do is think about it and worry. I must act deliberately and with consistency. I must focus my intention and attention on what needs to be done rather than what should have or could have been done in the past. The past is done and immutable .. but the future remains to be written, and I hold the pen in my hand, trembling as I move to set it to the paper.

In To-Shin Do, we have 14 "codes of mindful action," each one corresponding to a rank above white belt. We're supposed to memorize and mediate on them, and find ways of applying each one to the way we live and think. Some, of course, are easier to internalize than others. The one that's speaking to my heart today is still a few belt levels ahead of me, but still appropriate:
"I strive to be so strong that nothing can disturb my peace of mind. I avoid the negative effects of worry, doubt, and regret." -- To-Shin Do code of mindful action #13
I'm learning that this does not imply that we are to avoid worry, doubt, and regret themselves, but rather the negative effects of those emotions. From now on, I need to avoid allowing my legitimate worries, doubts, and regrets from becoming the kind of fear that keeps me from moving forward. And if they do become fear in spite of that, I need to maintain the courage to act in spite of that fear. As has been said, courage is not the absence of fear .. courage is doing what is right despite your fears. Courage, therefore, is peace of mind in the face of worry, doubt, and regret.

Five years ago, in a moment I remember vividly, I stood in front of my friends and fellow ninjas at the end of a class. I held what will one day be my own black belt over my head, affirmed that "I will be a black belt," and began the journey of a lifetime thinking I could make it on my own.

Today, I look to my friends and family for the support and encouragement I know I will need, especially in the weeks to come, as I start that same journey once more.

Tuesday, September 11, 2012

September 11 - 11 years later

Oddly enough, I'm starting this post at 9:11 am on September 11, 2012.

As everyone undoubtedly knows, eleven years ago this very moment, the world was changing before our eyes.  Thousands of lives were lost or in the process of being lost, and we were all staring silently at television screens or the sky above in horrified disbelief.  That day was my generation's Pearl Harbor - our very own 21st century Day of Infamy.

Lit Candle, Up Close
I'm sure there will be thousands upon thousands of blog posts similar to mine today. Some will be peppered with images of the attacks themselves .. mine, however, will not. Frankly, I don't want to see it all again - it was bad enough the first time. The first image I'm going to post today is one I've used before .. a single lit candle, up close.  Today, I'm sitting in my cubicle, sipping a cup of now-lukewarm coffee and tapping away at my keyboard. Just another day at the office. Probably the same thing everyone was doing at the WTC and Pentagon 11 years and a few minutes ago.

Now, I was planning on launching into more of a political-oriented speech at this point, but I just now decided that sort of thing will be more appropriate tomorrow.  September 12 was the day the political fallout from the attack began. Today was the day America came together as a nation to stop a 4th attack, to save as many as could be saved on the ground, and to just help each other get through the rest of the day with our sanity intact. I will leave you now with the one image from that day that I feel summarizes how We, The People responded that day...
The Girl with the Flag

Sunday, August 19, 2012

My Android Journey from ICS to JB (and back)

So, the other day I decided to upgrade the ROM on my trusty old Samsung Fascinate to the latest Jelly Bean offering from the AOKP crowd.  It turns out it was quite an ordeal, so I thought I'd detail the steps I took and the mistakes I made in the hope that someone might benefit. At the very least, maybe you can learn what NOT to do.
Challenge .. accepted.

So the first thing I did was download Steve Spear's latest test ROM, dated August 12.  Then I found a JB version of the google apps package on goo.im, and figured that would be safe, so I grabbed it, too.  Steve advised me to try the Devil's 1.1.3 kernel for JB, so I downloaded that as well.

I'm currently running AOKP Milestone 6, with the devil kernel and some of Steve's custom tweaks for Fascinate. So, I reboot into the TWRP recovery that comes with that and begin my journey.

The first thing I do, naively as it turns out, is set up a queue of 3 zip files to flash (in order): the ROM, the Google Apps package, and the kernel.  TWRP is supposed to be able to handle that sort of thing, so why not?

Because the JB ROM file apparently needs to re-partition your device when you flash it, that's why not. Also, apparently TWRP doesn't handle that very well, and leaves me in a recovery boot-loop with some error message flashing a big red exclamation point for about 1/5 of a second before rebooting. Just long enough that I realize I have no hope of actually reading it to find out what it thinks is wrong.

So, I load up Odin and nuke my phone all the way back to the stock, bloated, non-rooted Verizon EH03 Gingerbread ROM. This is the firmware you folks who don't believe in rooting your phones are currently stuck with, by the way.  So I let that boot and do its thing, which is basically a way to wipe the phone clean and start over with a clean slate. Whatever craziness was introduced by my previous error is now gone.

But, so are all the custom goodies I love so very much.  More importantly, so are the Gingerbread bootloaders required by most AOSP ROMs, so now I have to power off and Odin those separately.  At this  point, my only way back to AOSP goodness is via the ancient CWM 4 recovery with the CM7 fix. This particular file should be stored in the national archives. As old  as it is, it can still solve my problems most of the time. So I load that up and try flashing the AOKP JellyBean test ROM straight from that.

Oh hey!  Success!  Great!  Now I just have to get my google apps and the devil kernel on it.  So I reboot into the CWM-based recovery and flash the Google Apps package, reboot recovery, and flash the Devil-1.1.3 kernel, then reboot the system.

This is getting old..
The system comes up, and I sign into my google account, and everything seems good.  So I proceed to restore my apps from Titanium Backup.  Well, now .. where are my apps??  Opening TiBu, I only see system apps. None of my user-installed and paid apps are backed up!  The only place they are backed up is in the nandroid backup of my Milestone 6 install I had made before starting this little adventure .. which means I have to go back to that and run another FULL backup in TiBu.

But .. since the JB ROM re-partitioned my device again, I have to un-re-partition it to move back to Milestone 6. Which means Odin the ancient CWM recovery again, flash the old THS build 2 ICS ROM and let that boot.  Now I can put any ICS rom on my phone, so I flash the Milestone 6 ROM.  Once that boots, I have to reboot into TWRP recovery from there and restore my nandroid. 

Once that is back up, I open TiBu, and do a full backup.  Still with me?  Good.

At this point, I hadn't realized that I need to flash the JB ROM in the Ancient Recovery, so I encounter another recovery loop after trying to flash it in TWRP.  This time, though, instead of going back to stock, I Odin the Ancient Recovery and use that to flash the JB ROM.  After that, use the new JB recovery to flash Google Apps and Devil kernel.

Now, I launch TiBu again and restore all my apps, but without data.  This goes well.  But I have a few apps that I really have to preserve their data, so I restore only those (there are 5 of them out of 80+).  TiBu asks me for my encryption password to access the data, so I enter it.

TiBu - Y U NO LIKE
MY PASSWORD??
It doesn't work. I think maybe I used a different one .. so I try a few more of my standard passwords thinking surely one of them must be right.  But no. TiBu refuses to decrypt my data.  So, instead of restoring from the backup, I decide to try and restore the data from the nandroid I had made. I was thinking that maybe TiBu would be smart enough to handle this in a compatible way between the two ROMs, but I was wrong.  With their important data restored, every app in question now force-closes immediately on execution.  So .. back to MS6 .. again.

Once I had fully restored the MS6 nandroid, I decided to check the apps themselves and found out how useful OI ConvertCSV is.  It allows me to export the app data to the SD card in a format that the same apps can then re-import once I have them loaded in the new ROM. This should work .. and it does.

So, now I have a nice new Jelly Bean ROM running on my ancient Fascinate, and its AWESOME. It feels much faster than ICS. No lag in the UI, even with the bloated Apex Launcher I insist on using. Everything seems perfect, like this is what Android was meant to be all along.
Accepting defeat .. this time.

.. until it randomly reboots on me twice in a matter of hours.  And did I mention that the modem dies randomly without any warning or indication?  Yeah.  I'm not trying to detract from the awesome work the guys are doing with JB, but I personally can't deal with that level of instability. I have a wife and young child at home who need to be able to contact me reliably, and my Fascinate is the primary way for that to happen.

So .. Once again, I restore to my trusty old AOKP Milestone 6 nandroid, and quietly admit that this whole process was all for nothing.  For now.  You can bet I will revisit JB once the critical errors I mentioned above are ironed out.