War Corporatism

Last night I finished watching No End In Sight, an eye-opening expose on how the war in Iraq has really been conducted. The film has won accolades at Sundance and from various other organizations. Highly recommended.

And tonight I stumbled across this clip on YouTube:

Succinct, sharp, and an interesting bit of synchronicity. The War Corporatocracy of the United States.

(Oddly the Knife Party video fails to mention Wolfowitz, who seems to be one of the chief architects of what has become neo-con PNAC.

See Hijacking Catastrophe

for an excellent summary of Wolfey’s role.)

I would have to agree with the Knife Party clip though: What was once a cabal of radical thinking within the Republican party has been shifting, for many years, possibly by design, from ideology to economic necessity, and from economic necessity to political policy. Eat your heart out, Orwell.

Now that the most overt members of the cabal are ostensibly out of power (again), what new policies will the corporatocracy be cooking up behind closed doors? How will they re-re-take power, I wonder?

In the meantime, as Wall Street slides ever further into collapse, I am eager to see what the Obama administration does with the neo-con’s deficit-funded military juggernaut. And how, or if, it can depressurize the Middle East vacuum begotten by our years of War Corporatism.

Testing J2ME Timers

And I thought developing against cron was bad.

In J2ME, at least on BlackBerry devices, one cannot test Timer and TimerTask objects by simply changing the device clock. J2ME apps seems to remember the time at which they were launched, rather than pinging what the clock on the device says.

Testing involves shutting down the app, resetting the clock, and starting the app back up. Time consuming if you’re working on an app with some heavy startup / shutdown overhead.

Thoughts on marathon training for the casual runner…

About a month ago I ran my second marathon in seven years, the Mount Desert Island Marathon in Bar Habor, Acadia National Park, Maine.

The MDI Marathon is famous for being one of the most beautiful marathons in the world.

It’s also famous for being one of the more difficult.
And painful.

Nevertheless, I was pleased with my performance.  I didn’t set any records, nor did I come close to my goal time of four hours.  I did, however, finish in the top third of participants (it really was a tough course) running a race for which I trained and completed — for the most part — according to plan.

I also even kind of enjoyed it.  The course truly is beautiful, and the weather couldn’t have been nicer.  Quite a difference from my last race where it rained so hard we were wading knee deep though flood water!

Anyway, here are some things I’ve learned, as a casual runner, from two very different, extremely challenging races.

1.  Come up with a plan and stick to it.

Of course, this goes for just about everything in life.  And I tend to be consistently bad at doing this.   But hey, at least I’m consistent.

In my opinion, the trick for marathons is to come up with a plan and track your results religiously.  You don’t necessarily have to stick to the plan..  Just try to come close.  Everyone gets busy and, as the miles add up, it’s easy to fall off the wagon.

I only half-heartedly tracked training for my first marathon.  Looking back through sparse running logs, I see now that I came nowhere close to the plan I was supposed to be following; even though I had felt I was training  intensely.  This year I achieved maybe 80% of my training goals, went into the race apprehensive, and yet ran far better than I did when I was seven years younger and a stone or two lighter.

Was I in better shape this year?  Probably not.  But I knew clearly what kind of shape I was in relative to my training ideal.  I knew what I was capable of relative to my original plan, and ran the race accordingly.

2.  Start hard and give yourself plenty of leeway.

I tend to cut things close and, no surprise, training has been no different.  Four months prior to the race, as I was just starting to get back into shape, it felt as though I had all the time in the world.  By the time I had six weeks to go, my training log made it perfectly clear that I was flirting with disaster.  And then suddenly I was off for a week with the flu.  Woah.

Though I was able to bump up my number of weekly runs as well as sharply increase average distance… it was painful, and certainly a bit risky.  In retrospect, I would not have had this problem had I not taken it so easy during the early days of training.  Rather than start with challenging distances, I started with low mileage runs.  In other words, I procrastinated doing the real training.  I didn’t push myself until a month into the training.

For the next race I plan to do myself a favor and start real training right away:  Starting from the peak of my ability,  and covering maximum mileage well in advance of the race.

3.  Go the distance while training.

There are a number of marathon training guides out there that recommend limiting long distance runs.  One popular heuristic is “If you can run eighteen miles, then you an run a marathon.”

While I can attest that this is true — this is the maximum distance I trained on before running both of my races — I do feel that to run your best, it’s important to run some mileage that’s a little bit closer to actual race mileage.  After all, eighteen miles is less than two thirds of a marathon.

I recommend training on at least a couple of twenty-two plus mile runs.  This is an incredible confidence booster, and should give you all the feedback you need about how you will perform over the actual race in it’s entirety.  For me, the last four miles tend to be on auto pilot:  a long, slow stride through a haze of adrenaline.  My goal, then, is to train so that I can get to where the adrenaline takes over, and eighteen miles is way too soon.

4.  Train for both distance and strength.

Seven years ago I focused on speed, running lots of short, intense workouts interspersed with only the occasional day of high mileage.  This year I focused on mileage with virtually no speed work.  In both cases I avoided strength training to maximize, instead, the number of runs.

The first marathon taught me, the hard way, the value of gaining stamina through actual experience.  Since I hadn’t training on anything longer the seventeen or so miles, I struggled painfully through the middle of the race, stopping and starting almost every ten minutes.  It still surprises me that I was able to keep going.

This year, although I avoided the mistake of not going the distance while training, and while I had no trouble finishing the race, I found myself stuck in an increasingly sluggish stride.  By mile twenty three I had virtually no strength left. And at mile twenty-five, breathing comfortably, surprisingly full of energy,  I could not for the life of me convince my legs move any faster.

For the next race I plan to mix distance training with quite a bit of weight work, and finish the race with enough stamina and strength to ensure that I can stride, rather than stagger, across the finish line.

5.  Plan to hit the wall.

Last week I discovered that it is possible to run a race and not hit the wall.  This thanks to how extraordinarily well organized the MDI Marathon is.  Gatorade and water available every two miles.  A GU Energy Zone just past mile fifteen.  And all along the route residents were passing out free treats.  (The Fig Newtons I grabbed at mile eighteen really hit the spot!)

Now, I haven’t exactly run a lot of races, but I think this kind of service might be rather unusual.

I learned during race number one that I will likely hit a wall, and that the wall is probably lurking around mile seventeen or so.  The solution?  If you’re not running MDI, plan.  Have a plan to hydrate and get electrolytes and energy back into your body.  Try to stay hydrated throughout the race.  The rule of thumb:  if you wait until you’re thirsty,you’ve waited until it’s too late.

As for me, I make sure to down 20+ ounces of Gatorade an hour or so before the race, and carry an emergency pack of energy gel.  I know that loading up on a sports drink will generally last me through about mile sixteen or so; by which point I expect to have passed at least one or two water stations.  Seven years ago, however, I wasn’t able to get any kind of energy drink until around mile twenty-one.  The sudden performance pick-up after gulping three cups of Gatorade was — no pun intended — staggering.  Carry your own supply of energy gel to help with races like this.

Conclusion

I believe that finishing a marathon is an achievable goal for anyone.  And while there are a number of good books out there for amateur runners, the above simple advice could have saved me from learning some painful lessons the hard way — literally.

Gettting TCP connections to work on an AT&T BlackBerry

If you’re trying to run an app that requires TCP connectivity and find it to be mysteriously failing, then probably your BlackBerry is missing it’s APN settings.  See Options -> Advanced Options -> TCP.

There are four recommendations floating around the net.  So far, this works for me:

APN: wap.cingular
Username for APN: <blank>
Password for APN: <blank>

Other allegedly successful access patterns, eg:

APN: <blank>
Username for APN: <blank>
Password for APN:
<blank>

APN: proxy
Username for APN: <blank>
Password for APN: <blank>

APN: isp.cingular
Username for APN: <blank>
Password for APN: <blank>

would appear to be lies and damned lies.

On the backend, bad APN’s will fail with “Invalid tunnel name” if the device can’t figure out what type of network connection you’re trying to use, otherwise “Open tunnel – failure” if it thinks it can connect but authentication fails.

Oh BlackBerry people, why have you made basic networking so complex?  We at our little startup are starting to think we can’t afford to support network-enabled apps on your devices.  Life is so much easier on the iPhone…

じいじ馬鹿

Got a note from Japanese Grand Papa (“Jiiji”) in Nagoya.   He and “Baaba” have been obsessed with getting clothes for Layla.  A couple of days ago he apparently spotted a cute little Santa outfit and, without a second thought, whipped out his wallet and snapped it up.

Walking proudly out of the store he noticed that a number of people shopping with dogs in tow.  Looking around he also noticed that the store mannequins were… dog shaped.  He made his way back to the sales counter and asked, tentatively, “This wouldn’t happen to be a dog outfit, would it?”

“Of course” replied the confused sales clerk.

Fortunately Jiiji returned the outfit.

Bulk Rename Utility: The Missing Link of Utility Software Awesomeness

The Bulk Rename Utility is a free Windows app from the makers of ViceVersa.

And it is awesome.

Of course, this is something only a true geek like myself can get excited about… but in all honesty it is the single most welcome addition to my arsenal of software tools in many years.

Every so often (or, as seems to be the case lately, every freaking day) I need to rename a large number of files from pattern X to pattern Y.  Usually this involves firing up Cygwin and working out some kind of rename script snippet.  Not rocket science this, but enough to make me groan inwardly.

I’ve tried a couple of rename utilities over the years; none powerful enough to replace script writing.

BRU is different.  You can see from the screenshot that it has intuitive (well, kind of) filters for just about any possible renaming combination.  Best of all it gives you a preview of how your files will be renamed… before you accidentally mung that entire directory tree.  BRU includes many, many more features, including exotic transformations such as renaming photos from EXIF extensions as well as renaming MP3 files using ID3 tags.

Anyway, enough gushing of the geekery.  It’s a nice tool.  Recommended.