Jason's BLOG pages



Jason Grose's BLOG

June 2003




What's a blog, you ask? It stands for "weblog" and it's basically an online journal of daily thought. We'll see how long I can keep this up (as though I don't have enough to do!)

If you must have a title, I'll go with: The daily thoughts/rants of a Marine Officer, father, scholar, husband, marathon runner, Flash cartoonist, computer nerd.

Saturday, June 28, 2003

Quote of the Day:
"If you borrow $2000 dollars from a bank and can't pay it back, you have a problem, but if you borrow a million and can't repay, they have a problem."
- Unknown

I know, I know, I’ve been gone for a few days but you should know by now that when I do that, I’m usually enthralled with something which is true. I will get to the ciphering in a second but I want to address some things first.

It a moment of insanity, I broke down and plopped down over a grand on a new 51 inch TV. I lost my mind because I’m buying a house later this year but decided life is short (the insanity moment) and since there is no interest for a year, I rationalized that I’d pay it off in a year and save a lot of money…. other than the 1400 buckaroos but like I said, I don’t think I really thought it through. I just saw the monster screen and, well, now it’s sitting in my living room. I’m not sure how it happened because I don’t even watch that much TV but I was sick of my old one with the big rainbow pattern on the side from an earthquake incident a few years back in 29 Palms. But now I’m my kids’ newest hero, as they will be the main beneficiary of my lapse of common sense.

An ulterior motive was that the new Ren & Stimpy cartoon debuted Thursday night (when I bought the TV) and was stoked. Way back in my enlisted days, I was hooked on Ren & Stimpy to the point that I knew all of the dialogue of almost every episode. It got so bad that when I went on deployment with a fellow R&S fan (LCpl Landman), we communicated almost solely through R&S dialogue, with voices and all. OK, that’s a bit sad but like I said, we were real fans and kept ourselves entertained on an otherwise boring deployment.

So imagine my galactic disappointment when the new show sucked hard. I mean, I’m all about disgusting humor but they forgot the humor. And in the ultimate stab in the fans’ collective backs (retroactive pun coming up) they made them GAY!! Yes, you read right, they made Renwald and Stimpleton queer lovers!! I absolutely could not believe my eyes. It’s like finding out the Super Friends were all, you know, “Super” “Friends” (except Wonder Woman, of course). It just isn’t right and I have no idea what possessed them to introduce that little twist into the cartoon. It’s like someone who hated the cartoon series hijacked the R&S concept and wanted to ruin it. So they made them gay and now everyone hates it, except gay people, I suppose.

OK, now to get to what I’ve been doing for the last two days (other than wrecking my financial health). After going on about ciphering in my last blog entry, I put up a challenge to crack the message I posted. Here is what I got the next day:

Hey Captain Grose,

I am a regular at your site, yesterday I noticed that you posted some encrypted text - "I'll make quick work of this" I thought :) But it is pretty difficult with no spaces, and no leading characters (it is my understanding that capitalized characters use a different key). So gimme a break and use a longer cipher, from looking at the most frequent top three characters I get the feeling that you are altering your writing pattern to throw me off :) 110 (uncapitalized) characters aren't enough to get a good frequency table.

Before I could even get back to him, he sent me this two hours later:

“Scratch that last request -

"For seven and a half years I've worked along side President Reagan. We've had triumphs. Made some mistakes. We've had some sex... uh... setbacks." --George Bush

I would have gotten it earlier, but I misread your blog and thought that this had no Caesar element, after I figured out that it did it only took ten minutes to crack.”

This is what I sent him back:

WOW! I'm thoroughly impressed and have a few questions:

How did you crack it? By hand? Computer? Could you crack it without a shift i.e. random substitutions?

The book I'm reading is really interesting but obviously I'm a novice. What is your background with cryptography?

He sent this back to me:

It was sort of a mixture; I initially started with a frequency analysis and found that 'q' was hitting almost 0.20, and that made me sure that this one would have to be done by hand because the letter frequencies were a little crazy. I was pretty sure that it was gonna be 'e' (which is usually 0.12), but I wasn't sure if you were trying to pull a fast on on me. Never the less, I decided to let a "Hill Climbing" algorithm have a run at it (I used Crank v0.1.4 http://crank.sourceforge.net). The "Hill Climbing" algorithm basically does random substitutions and then compares the results to an english Unigram frequency table, if the result is better then before, then it makes another random permutation and discards any permutations that do not improve the statistics (this is a genetic algorithm at it's most basic level). Since the text was very short, the frequency of certain letters can be thrown off considerably, especially if it is composed of short - halting sentiences (I love the CiC anyway :)) so the algorithm didn't work out very well. The text was also too short for bigrams, and of course trigrams also. I was starting to get frustrated with the lack of spaces, but I decided to run a shift against it before I took a break, words started to magically appear when A=O. After that I had to figure out what the caps and punctuation were, that didn't take to long. So in the end, I'm pretty sure I could have cracked it without the shift only if the text was longer. If you wouldn't mind, I would like to try that out (after you make a few changes to your encryption scheme). I have a few more tools that I have been dieing to test out, so let me know whenever you have another challenge.

I don't know if I would call myself a novice, I've been around cryptanalysis for a while, but that was out of necessity - as my main interest has always been information security. I've been programming for a while also, but that was also out of necessity - as I worked as a database manager for JCPenney (Perl is my language of choice). Anyway, thanks for the puzzle and great site, I'll be going to San Diego in a few weeks (infantry) and your stories of bootcamp have helped me pass the time.

While this was going on, I decided to take the next step in my cipher programming. My plan was to improve on my program so that it would create a scrambled set of all the upper case letters, lower case letters, and symbols on the keyboard. In case you’re wondering, that’s 94 items = 94! permutations = almost half the cuss words I yelled in the last 24 hours.

With one of these random sets of alphabets, I would have a key to cipher a message. I could then take each letter in the plaintext, find its corresponding place in the key, return that key value to the outgoing ciphertext, move onto the next plaintext letter, and so on until I had the entire message encrypted. Sounds easy, huh? That’s what the bastards would have you think (I don’t know who “the bastards” are, exactly, but they were blamed for all my mental midgetry in the last two days).

I slaved with a variety of schemes until 0300 this morning until I mad a little progress and was NOT pissed enough to get some sleep. The problem is actually a bunch of little problems, shown below:

1. Generate the random mixture of letters and symbols.
2. Use this key to encipher the plaintext
3. Build the deciphering program

a. Bring in the key
b. Bring in the cipher text
c. Apply key to ciphertext to get plaintext
d. Output the plaintext

At one point last night, I had #1 done but while messing with it to accomplish #2, I pumped the pooch Ren & Stimpy style and ruined #1. So then I got tired and frustrated as I tried to get back to where I was (getting slower, more frustrated, more tired) and wallowed in the living Hell, dutifully following the law of diminishing returns. I finally got #1 and #2 done at 0300 and almost started #3 but a wave of clarity washed over me and I collapsed into bed.

At 0800, I couldn’t sleep anymore and I thought “I’ll just go in and do the easy step of reversing the ciphering algorithm so it will decipher.” I will never learn how untrue those kind of thoughts really are.

After a few more frustrating hours, I realized I didn’t have all the kinks out of #1 and # 2. I got so mad after not being able to fix it, I gave up. I put away my books, closed the program, and got up to tell my wife I just couldn’t do it. I should be able to but I just can’t do it. When I heard those words come out of my mouth, I turned around and went right back into my office, opened the program, and gave it a fresh start. The son-of-a-bitch was not going to beat me.

It took until about 1400 to get it but I fixed #1 and #2 and even figured out a cleaner way to do #3. After hours of debugging and testing, I came to a point that I pushed back my chair and stared blankly at the screen. “I’m done! I did it!” I said this with a voice of disbelief. The end came unexpectedly and unceremoniously. Suddenly, I realized that I couldn’t make it NOT work so I was done.

Here is the email I sent back to my code-cracking buddy:

This program has taken over my life. I've spent the last 24 hours programming (I basically suck and the damn programming took more time than the logic of encrypting schemes!!!). I won't go over the gory details but I finally got to where I'm pseudo-satisfied.

I've programmed the computer to create a random permutation of the 94 letters (upper AND lower case) and symbols. My calculator will not even tell me what 94! is so you won't stumble across the key!!!!!!

After it creates this, it encodes a message but still takes out all spaces (heehee). It took me just as long to build a deciphering program that takes the key and gives you back the plaintext (without spaces, though). I know, it should have been elementary after building the ciphering program but... no.

This time, the text is long but there is no shift and nothing sneaky. I've put the ciphertext below but wanted to ask you something.

My next stab (if I dare come near it again for fear of being sucked into the vortex again) is to create two random keys and then alternate between the two while enciphering. This takes care of frequency analysis but I read that the way to break this is to find patterns at the repeat borders that randomly occur in long text. So by increasing the number of keys you cycle through, you cut down on the possibility of repeating patterns at the borders. Taken to the extreme, you create as many keys as data items therefore there are no repeats. (Take 1st letter, encipher using a key, take 2nd letter, encipher using a second key, ...). I believe this is the concept of the one-time pad(???)

This is great (and a deceptively simple-looking programming effort) but my question is how your counterpart decodes this. Would you have to save every random permutation that you use so they can use it to decode? I see no other way (his random permutations would be different from yours) but it seems silly to send ciphered messages if you have to send the deciphering keys with it. (If you have a secure way to send the keys, why not just send the message through that pipe?)

Now don't get too technical on me because a short chapter in a security class, the book I'm reading, and this discussion represents the sum total of my experience.

Here's the ciphertext:


My next step is to improve the program so that it enciphers each letter with a different key set but I promised my wife this would not be anytime soon. I’ve been hell to live with for two days and no one wants to be near me (must be all the yelling). I am not a graceful programmer and the flipside of my dedication (obsessive vendetta) is frustration. I’ll have to work on that.

Tomorrow, I’m going camping for three days so I will be off the net. Everyone in my family will be happy I’m away from the computer but that many days totoally void of technology will be scary. I mean, I’ll have to interact in the real world, with real people, and out in the wild. What do they think I am, a Marine or someth… oops, oh yea, um, I guess maybe it’s good I’m getting away from it all.

Meanwhile, try to crack my code and I’ll leave you with my own cartoon since Ren & Stimpy are dead to me now.

Free Advice for Today:
“Remove your sunglasses when you talk to someone.”
- H. Jackson Brown, Jr.

Wednesday, June 25, 2003

Quote of the Day:
"Anyone who sees in his own occupation merely a means of earning money degrades it; but he that sees in it a service to mankind ennobles both his labor and himself."
- A. Lawrence Lowell

Today’s BLOG is all about ciphers because I spent the entire day (from about 1100 until 2230) programming a cipher program in C++, hardly coming up for air.

I’ve been reading a book about ciphers and I wanted to try and make one using programming. As crazy at it sounds, I think I hit upon one that is almost unbreakable (if you know anything about ciphers, you know never to claim one is “unbreakable” but let me explain.)

I got the idea when reading the book about a Caeser’s shift cipher which is a simple substitution method. All you do is replace every letter in the alphabet with a different letter and then rewrite your letter using the substituted letters. The easiest way to do this is by writing the alphabet in a row and then again right above it and then you shift the upper row a certain number of places left or right, wrapping the ends around. You now have your cipher and you take your “plaintext,” find the plaintext letter on the bottom row, and write down the letter above it to create your cipher text.

For example, I’ll use a shift of 2 so you would have this:


If you wanted to encrypt the word “dog” then you write “bme”.

So this is what I attempted to do today using C++ but because I haven’t programmed in it for almost a year, it was just like it always was: seemed easy enough at first but ended up being a hell of a ride. But I knew I could automate the damn thing because that’s what computers are for, right?

I wrested with strings, literals, arrays, cout statements, cin statements, etc, for most of the day and just when I was about to give up, I found my old C++ text and it started anew. Every time I got frustrated, I got just a little morsel of success and before I knew it, it was dark. I must have started over about 50 times but I finally hit upon something strangely advanced considering my novice skills.

I finally had to settle for a very long “case” statement which, if you know anything about C++, is a very bare bones way to do it. Let’s just say it isn’t the most elegant way of doing it and I’m sure my HUGE codeline length could be substantially reduced by a few very basic structures (sorry, Prof. Cote). But I’m at the sub-basic level so this is what I came up with (code that would bleed profusely if I handed it in to my C++ professor a year ago).

My final product requires you put your plaintext in a text file and then run the cipher program. It takes each letter and replaces it with another predetermined letter and outputs the result into another text file. I also created a program to reverse it by simply substituting back to original letters.

BOOM, that’s it!!! What? You’re not impressed? Fine, Mr. Smartypants, let me elaborate.

Playing devil’s advocate, you might say that the Caesar’s cipher is the most primitive form, as cryptology goes, and has been broken for centuries through frequency analysis. Basically, you can count the number of times a letter shows up in the ciphertext and then because “e” is the most prevalent character in the English language, it’s easy to pick out (just get the % and look for anything above 30%). Once you know what “e” is, you can plug it in to the ciphertext. Then you may be able to pick out “THE” because it has three letters and is really common. Once you have “t” and “h” and plug those in, you may be able to glean other words. As the snowball rolls, you can crack it by plugging in newly discovered letters.

Also, if you know it’s a Caesar’s cipher and you already figured out “e” through frequency analysis, you can count the number of letter between the “e” and whatever the ciphertext letter that replaced it. Now all you have to do is draw your two alphabets and shift the top one over that many places and voila, you have the key.

Well, a couple of things I should point out which I cannot claim to have purposely designed. They are a result of my ignorance and lack of forethought which ironically, makes my cipher seem damn strong.

First, I didn’t do a true Caesar’s shift. Without thinking, I just counted over a certain number of keys on my keyboard and hardcoded the values in. So even if you did a frequency analysis and found “e”, you still would not be able to immediately create a new pair of alphabets and have the key. Of course if you figured out my shift method on the keyboard it would be just as easy but it occurred to me that if I were to just randomly assign the associations without any kind of shift method, I would negate that weakness.

My second bumble was that I made 3 separate substitution sets: upper case, lower case, and the other symbols on the keyboard. This weakens the cipher because you can pick out which letters are upper case, lower case, or other in the ciphertext which gives the codebreaker an advantage. I will fix this by throwing them all into one set and mixing them up randomly. This gives me a set of 94 units so I have a factor of 94 permutations to choose from which, if I was really interested and smarter, would calculate to a cubic butt-ton of possibilities (preventing the “try every combination” uber-geek from succeeding).

My third challenge ends up being the most advantageous of them all for the cipher. For the life of me, I couldn’t figure out how to get the program to recognize a space (I know, it sounds simple but it’s not until one of you smartasses writes me to tell me how). The result is that the ciphertext has no spaces and just runs all together in one long string of letters and symbols. To add imbecility to my idiocy, I tried like hell to figure this out until I gave up and then discovered why it was so much better without spaces. Without spaces, there’s no way to tell where anything starts or stops. No clues about word, sentence, or paragraph division which takes away a huge trick for the codebreakers.

If they can’t figure out easy things like the only two letters in English that are words (“a” and “I”) or the two most common 3 letter words (“and” and “the”) then the only thing that I can see is that they can still find “e” through frequency analysis. But what are they going to do about a bunch of “e’s” sprinkles throughout a solid block of junk? There is no other foothold, especially if I randomize the assignments because then a shift won’t give it away AND they won’t even know where the punctuation is which tells them (at least) where the sentences end.

I’m halfway though “The Code Book” and past the portion that talks about these kind of ciphers so I doubt if I will find anymore about it. They are talking about really complicated machines like the Enigma which the German used in WWII and was thought to be unbreakable. It took me three tries to even partially understand how they created it and even more to see a shadow of how they broke it so I’m wondering (and seriously doubting) if my freshman method could possible be all that strong.

The negatives about it is that when you decipher it, it runs it all together but if you really wanted the message, you could figure it out. Also, each end (sender and receiver) has to have the exact settings but that’s true of all ciphers. Changing the associations would be trivial but it would have to be done to both the cipher program and the decipher program and then redistributed (but it’s a program so it could be sent electronically by some secure method).

So here’s my challenge: I’ve ciphered a piece of text below and even left the weaknesses in. If you can break it, let me know.


Free Advice for Today:
“When moving from a house or apartment, for nostalgia's sake, take a photo of each room while the furniture is still in place.”
- H. Jackson Brown, Jr.

Tuesday, June 24, 2003

Quote of the Day:
" I can't say enough about the two Marine divisions. If I use words like brilliant, it would really be an under-description of the absolutely superb job they did in breaching the so-called impenetrable barrier...Absolutely superb operation, a textbook, and I think it'll be studied for many, many years to come as the way to do it."
- General H. Norman Schwarzkopf, USA, Riyadh, Saudi Arabia, 27 February 1991

With all my time off lately, I’ve been able to do the thing I love to do: NOTHING. Just kidding, I’m reading at the rapid rate. I finished one book (Swift, Silent, and Surrounded in which I have three of my own stories) and am also trying to finish Colonel Hackworth’s behemoth About Face. It’s good but weighing in at over 800 pages, it’s the second largest book I ever took on (#1 being Stephan King’s It which by the end I was just reading to accomplish the completion.). Of course with all this going on, I found another book in a bookstore the other day and couldn’t help myself so I started reading it. The hundreds of other books I have waiting at home cried foul but whattcha gonna do?

The book is called The Code Book and it chronicles the history of codes, ciphers, and cipher analysis by introducing the most famous ciphers throughout history and both showing how they work and how to break them. Now I know this sounds all geeky and stuff but it really is interesting reading because the author gives real life historical accounts and he explains the techniques in such simple terms that it’s actually easy to follow! I find myself enthralled and quickly wading through the book; an unusual event for me, Capt Poky-Reader. I read a variety of books and this math/logic/history piece is a nice break from the military ones I’ve concentrated on lately. I actually feel my head getting heavier.

I’ve also been on the weight-losing bandwagon since I have a weigh-in on Friday. I don’t consider myself overweight and exercise almost every day but the Marine Corps has specific height/weight requirements that doesn’t take into account body types so despite my appearance, I’m right at the upper limit for my height. I don’t begrudge the Corps for this because I understand they want Marines to be thin and that’s fine. Plus, I’m always looking to lose weight because it makes the running that much easier. It’s just those late night cravings that I have to fight back which add the few pounds I can’t afford. So it’s all for the best but it sure is a bitch.

It blows me away that I have to even think about it. For most of my 16 years, weight has never been a problem. I never even had to sweat it out because I usually hit in the middle of the mid/max weight requirements (yes, they have minimums, too). But then I hit that big 30 and things tend to settle in the midfield. I guess I shouldn’t expect to be immune from this tendency but I can take solace in the fact that some of the best leaders I’ve known (and the apparent incredible shape they were in) have fought against this. My favorite CO exercised 3 times a day when he was the Tanks’ Battalion Commander. I asked him one day why this was and he told me that he had to in order to stay under his weight limit which blew me away because he was tall and it obviously incredible shape, especially considering he had at least 15 years on me. He would get up early and hit the gym. Then at lunch he would run (even in the 115 degree desert heat) and then would finish his day at home with his own rowing machine.

So come Friday, I will have to make the walk of shame and hope I can come under the mark once again. It sucks but it keeps me in shape even if only through pride since I’ve never oozed over the max and I’m not willing to start at this point in my career.

Free Advice for Today:
“Buy a used car with the same caution a naked man uses to climb a barbed-wire fence.”
- H. Jackson Brown, Jr.

Monday, June 23, 2003

Quote of the Day:
" The Marines I have seen around the world have the cleanest bodies, the filthiest minds, the highest morale, and the lowest morals of any group of animals I have ever seen. Thank God for the United States Marine Corps!"
- Eleanor Roosevelt, Fist Lady of the United States, 1945

Last Saturday, I ran my first 5K race. Well, I guess you could say that I run a 5K every 6 months as part of the Marine Corps Physical Fitness Test, but this one had two distinctions. First, it marked the first time I had actually paid a fee to run 5K, not that this is too outrageous considering I’ve paid a lot of money to run many longer races. Second, it was the first time my son ran any race. I was so proud of the little guy.

This run was in celebration of the Army birthday. Ask any Marine and he can cite not only the date of the Marine Corps birthday but also the place (November 10th, 1775, Tun Tavern Pennsylvania, if you were wondering). Ask an Army dog about the Army birthday and you’ll likely hear the answer “Huh? The Army has a birthday?” (June 14th, 1775, if you were wondering). Chad, my buddy and fellow Marine, and I were likely the only Marines present (after all, it was an Army thing!) along with his wife and their two kids. It was also the first race for the mini-Sbragias and both did better than they had ever hoped.

My son agreed to this race because his best friend, Zach, signed up for it and he thought it was a good idea at the time. Ever since I found out (my heart swelling with pride because I always thought about us running together some day), I bugged him to train. He went out on all of one training run with me (as I was recovering from my marathons) and opted out of my other attempts to get him to hit the pavement choosing instead to watch yet another episode of Sponge Bob. He went with his mother to the track a few times but he obviously did not take his training seriously. What was his 11-year-old mind thinking? Did I not pass on the obsessive compulsive gene to him?

The race day was perfect for running, a slight chill in the air and overcast. We awoke early (maybe the only time I’d ever NOT had to fight with him to get out of bed) and we had toast and banana for breakfast. He babbled incessantly as we drove to the start line, admitting that he was a bit nervous about the whole thing. I don’t think the reality of it being a race hit him until that morning. I assured him it was normal and I’d never gone to a race without feeling nervous.

While waiting for the start, Forrest Gump stopped by and offered us a sample from his box of chocolates. OK, maybe it wasn’t the real Forrest Gump or even Tom Hanks, but whoever it was, did a spooky job of imitating the character right down to the vanilla suit, checkered shirt, worn tennis shoes, ratty suitcase, and bad haircut.

My son’s goal was to break 40 minutes. He had only completed the distance one (12 laps around the track) so was not comfortable with his abilities. I told him we’d go as fast or slow as he wanted and that I was there just to be with him. He started out strong and kept a good pace, only stopping once to drink some water along the way. At about the 3K mark, he got a cramp in his side and chest. I asked him if he wanted to stop but he wanted to go on and I was almost blind with pride. I knew he was hurting, struggling with uphills, and completely out of breath but he kept going.

At the finish line, Alex came across the line at about 28 minutes, shattering his goal of sub 40. He could never have been more proud of himself than I was of him. Not only had he set a goal and accomplished it, he didn’t stop when it started to hurt. He did his old man proud that day and I sincerely hope the success he enjoyed will motivate him to continue because I see a real talent forming. What a great day to remember forever.

Free Advice for Today:
“No matter how old you get, hug and kiss your mother whenever you greet her.”
- H. Jackson Brown, Jr.

Sunday, June 22, 2003

Quote of the Day:
"Son, we live in a world that has walls, and those walls have to be guarded by men with guns. Who's gonna do it? You? You Lieutenant Weinberg? I have a greater responsibility than you can possibly fathom. You weep for Santiago and you curse the Marines. You have that luxury. You have the luxury of not knowing what I know. That Santiago's death, while tragic, probably saved lives. And my existence, while grotesque and incomprehensible to you, saves lives. You don't want the truth because deep down in places you don't talk about at parties, you want me on that wall, you need me on that wall. We use words like ‘honor,’ ‘code,’ ‘loyalty.’ We use these words as the backbone of a life spent defending something. You use them as a punchline. I have neither the time nor the inclination to explain myself to a man who rises and sleeps under the blanket of the very freedom that I provide and then questions the manner in which I provide it! I would rather you just said thank you and went on your way. Otherwise I suggest you pick up a weapon and stand a post! Either way, I don't give a DAMN what you think you are entitled to!"
- Fictional Colonel Nathan Jessup portrayed by Jack Nicholson in "A Few Good Men"

Yeah, yeah, been a couple of days but I had some company over the weekend and my time and computer room was taken. But you will be surprised to hear that I didn’t mind at all. In fact, it may have been the only time in history that I had people stay at my house that I wasn’t ready to see leave by the visit’s end. My brother-in-law, his wife, their two kids, and her mother came for a few days and we all had a blast. Ben is almost one and my youngest of three nephews. Maddie is about 3 and my only niece (also the cutest human being I’ve seen since my Alex was that age). OK, enough bragging, I’ll get back to the BLOG.

It seems I never SEE my own town until I get visitors. Then I take them out and do the tourist crap and … BING BING BING, DANGER, DANGER, WE HAVE A RANT HORIZON. YES, IT’S DEFINITELY A RANT… BATTLE STATIONS, BATTLE STATIONS, RANT EMINENT, I REPEAT, RANT EMINENT!!!!

We took our guests to Fisherman’s Wharf where we saw approximately 14 billion tourists, the vast majority of them I wanted to kill slowly and painfully. It was bad enough that I was among their ranks and therefore was treated like them by the local merchants. No, I don’t want to buy a shell ashtray with “Monterey” etched on it for $46, thank you. Oh, and that’s a lovely smell you have here. What is it, rotting chum? Yeah, I think that’s the one.

So I’m walking down the wharf, trying to avoid the idiots walking on the wrong side, head in the air, and oblivious to anyone else trying to go around them. I swear, if I just cold-cock one, the others might get the hint and snap out of their tourist retardation. OK I doubt it but it WOULD make me feel better.

After a half hour of playing tourist, my wife decides to volunteer all of us to go into a restaurant on the wharf for lunch. We get seated right away but I can just feel that to pay for this special little meal, I’m going to have to sell my truck or one of my kids. Maybe a kidney. Because we all know that a restaurant in the heart of the tourist Mecca that is Monterey, the average price of a meal is roughly equal to a mortgage payment in Manhattan.

The other tidbit of trivia I should add here is that I don’t like fish. Any kind of fish. Sorry, the little fishies don’t get past these lips. Therefore a trip to a wharf restaurant is a little slice of hell for this hombre. Bring on the turkey croissant (although I was hesitant since it did have a 'french' ring to it. Come to think about it, I had french fries, too. My God, what have I done?). It seems all the price stress was for not since my brother-in-law secretly paid for my meal with the clandestine help of the waiter. Sneaky bastards! I like Scott too much to allow him to pay for the meal but he knew this and thus, the sneakery.

All in all, it was a great visit and we spent a lot of good time together. Scott and his family are wonderful to spend time with and we’ve always had similar interests so our visits have always had a fun vibe to them. I got to spoil my niece and nephew rotten and give them a break from the whole young parents thing.

Here is my list of lessons learned:

1. Toilet paper practically evaporates off the roll when you have 9 people in a house
2. Venders in Monterey think tourist need expensive glass dragons, knives, anything with “Monterey” on it, or hardened starfish before they go home.
3. I am the world’s shittiest lead driver when having people follow me
4. My dog is a crotch-seeking missile and never gets tired of showing you so
5. The guy at the wharf with the pet monkey who dresses up like an old Italian street performer scares the bejeebies out of me.
6. Mothers don’t like when dads let their boys watch The Man Show.
7. Women think The Man Show’s juggies are disgusting
8. Men don’t think The Man Show’s juggies are disgusting but say they do when wives are in the room.

Free Advice for Today:
“There are people who will always come up with reasons why you can't do what you want to do. Ignore them.”
- H. Jackson Brown, Jr.

Thursday, June 19, 2003

Quote of the Day:
"Marines I see as two breeds, Rottweilers or Dobermans, because Marines come in two varieties, big and mean, or skinny and mean. They're aggressive on the attack and tenacious on defense. They've got really short hair and they always go for the throat."
- Rear Admiral "Jay" Stark, USN; 10 November 1995

There is nothing more depressing for me to go to the mall and interact with civilian society. The funny thing, I forget how much I loathe being among the average mall-goer until I actually get there and when the opportunity arises, I stupidly get a bit excited about going, much like a dumb dog going for a car ride.

Let me explain my disdain for mall society. First, there’s the mall rats. You know the kind, teenage kids with nothing better to do than to stroll up and down the halls making all kinds of lewd, loud outbursts to impress each other. I just assume place a big chunk of rat poison in the center of the mall and an hourly body drag by the mall “police” which is the topic of my next pet peeve.

The mall police is to a real policeman what the Harlem Globetrotters are to professional basketball. On second thought, at least the Globetrotters have skills so I’ll have to go with the team they always play/beat in my analogy. There are generally two varieties: the kid who looks no older (or acts any differently) than the mall rats or the 350 pound bucket of lard wallowing around the mall like Jabba the Hut, wearing a uniform that looks like he slept in a septic tank with it on. Neither of these two “keepers of the peace” instill the least bit of confidence that they could or would handle a situation more stressful than a hangnail.

Here is a rapid fire of my pet peeves in my famous bulleted list:

  • No, I don’t want to try out your cell phone service so stop harassing me and my name is not “Yo!”
  • Lady, if you don’t shut that kid up, I will.
  • Walk on the right side, people, RIGHT SIDE, just like driving!!!!
  • Good Lord, missy, how can you have Dunlap Disease at 15? And regardless, why would you wear a mid drift-revealing shirt? Praise Buddha.
  • Nice pants, Peggy Bundy. Do your socks inflate when you fart?
  • Excuse me but we are not interested in your cell phone conversation so tone it down a little, Rico Suave!
  • English! This is America! The official language is ENGLISH!!!!
  • (In bookstore): Hey, thanks, are there any more filthy words you want to teach my kids?
  • I know you can’t read so why are you in the bookstore making noise?
  • For the love of God, NO, no, no a thousand times, I don’t want to join your book club. Just the book, thank you!
  • Dude, they still have Spencers? And you are considering buying that neon sign?

The root of all my angst boils down to common courtesy which is seriously lacking in today’s younger generation. Over and over again, I was subjected to kids who didn’t seem to care that no one but themselves was interested in their conversations whether it be on a cell phone or 4 inches behind me walking down the mall. Even in the book store, they talked both loud and incessantly. What ever happened to public manners?

OK, so I’m the grumpy old man but that doesn’t change the fact that good manners are timeless and mall rats are clueless. Now if you’ll excuse me, I have to go to get some rat traps.

Free Advice for Today:
“Read a lot when you're on vacation, but nothing that has to do with your business.”
- H. Jackson Brown, Jr.

BLOG entry for this day from 2000

Wednesday, June 18, 2003

Quote of the Day:
"When the (C-130) ramp opens you will hear a loud banging noise. Don't worry, it's normal. It's just the sound of forty assholes snapping shut simultaneously!"
- Airborne Instructor to student parachutists

Slothonthon: that’s the name I give my morning that didn’t even start until 1000 (unheard of from a Marine, I know but not anymore). It might have had something to do with my 0200 (The truth is out there, Scully!!) bedtime last night (this morning) but probably had more to do with the fact that I’m FREE AS A BIRD for a couple of weeks. It felt so good and I’d probably would’ve pissed my bed just to stay there if my wife didn’t, you know, have a case of the ass about it.

So as not to completely forgo my military training and to keep the wrath of my drill instructors’ ghosts at bay, I knew I had to make up for this unsightly sleepathon so I decided to go to the gym and get a workout. While there, I wear headphones and the gym I go to has TVs everywhere. The net effect is that I can see what’s on but not hear it, not that it would make much difference since I’m there to work, not watch (unlike some people but I’ll get back to my story).

I look up between sets and notice that ESPN is showing some kind of pool tournament, proving to me that during the daytime, ESPN is scraping what’s underneath the bottom sludge of the proverbial barrel. But as sad as the concept of professional pool is, I was unprepared for what I saw next. They were obviously introducing the “athletes” or whatever they call the players, but without sound, it looked like a upper body shot of the pool players in an awkward pose, smiling at the camera while, I assume, the announcer was saying cool stuff about them. OK, maybe “cool” is a stretch but I gave them the benefit of the doubt.

What scared the bejeebies out of me though was one particular um, person. It turns out that it was a women’s tournament but it was a close call with this one. Since she had big round boobs, I gotta go with “female” but that was the only indicator. Hair: short and feathered. Glasses: smoky owl-lenses like she’s on her way to a church bake sale. Now it was bad enough that this gal pal looked like she straddled the gender fence but then the goofy introduction shot without sound was almost too much to take. I hope the judges did a systems check because I’d cry foul if I was a competitor. I’ll take “Pat” for $300, Alex.

Free Advice for Today:
“Never tell a person who's experiencing deep sorrow, "I know how you feel." You don't.”
- H. Jackson Brown, Jr.

BLOG entry for this day from 2000

Tuesday, June 17, 2003

Quote of the Day:
- Unknown

Did you miss me? A couple of days off, right? Wrong, I’ve been working my tail to the bone (disturbing image). Well, relatively, compared to the normal workload in Monterey. Compared to my last command, it would fall under the heading of “confoundedly untasked.”

I buttoned up the academic quarter today by emailing my final final. No, that was not a typo, it was the last one because next quarter, I have only one class and it has no final. Of course I have a thesis to write and a directed study, but NO TESTS!!!!!

Last night while I worked on a paper for yet another class, I had a wonderful conversation with another Marine Officer. We ended up talking for hours about our profession and what it means to be a Marine Officer. It was the first in depth conversation I had in a long time and if you are reading this, Brandon, thanks for the mental exercise; it was a long time since I was exposed to anyone else’s view other than my own. I’ve had my head in the books and in front of the computer too much in the last year and not enough “round table” discussions. My fault, no one else’s.

After finishing my test today, I broke out my cartooning. On top of the Flash work (which I need to get back to), I also started a regular comic strip idea long ago and it was about time to resurrect it. It follows the same lines as Semper Flashback but it’s classical cartooning (ink and paper) rather than computer generated. The strip is simply called BOOT and is about, you guessed it, bootcamp. There is a similar cartoon called Semper Toons written and drawn by SSGT Wolf and he’s become quite famous in the process. His work deals with the Corps in general while mine will focus on bootcamp. The problem is, I have to avoid his work or it will try to sneak into my cartoons (“I should have thought of that!!!”)

Anyway, I will be posting my first two cartoons tomorrow so stay tuned for a new section on the site.

Tonight, I will go to bed with no homework hanging over my head. I’ll point out that my routine will not change, I’ll just feel less guilty when I don’t do any homework. I’ll likely stay up until 0200 watching the X-Files because the truth is out there and I’m an “uber-geek” extraordinaire.

Free Advice for Today:
“Don't believe people when they ask you to be honest with them.”
- H. Jackson Brown, Jr.

BLOG entry for this day from 2000

Saturday, June 14, 2003

Quote of the Day:
"Shout the good...whisper the bad."
- Unknown

Today was a day for the books. It started with an early call to PFT which I put off for weeks. I finally had to go ahead and do my twice-yearly duty and prove to the Marine Corps that I’m not a sloth. I fooled them yet again.

Sit-ups, no problem. Running, no problem. Pull ups, (sound of a record needle screeching) PROBLEM. You see, I’m built much like a T-Rex: full torso with little girlie arms, or at least that’s the way I feel, especially with a pull-up bar looming over me. So it’s not too surprising that I only yanked out 50% of the max for this event with 10 dead hang pull-ups and like every PFT in the last few years, I vowed to work on them to max out the full 20 next time.

Once you get over the fact that another man is holding your legs and mere inches away from your crotch, the sit-ups are no stress. I did my full 100 in two minutes with 15 seconds to spare. I almost felt proud if I hadn’t just dropped 50 points out of 300 on pull-ups alone.

All that was left was the 3 mile run. Everyone assumes since I run so much that the running portion should be a breeze. I normally kill these people on sight. You see, running a marathon or other crazy long distances has as much in common with a 3 mile run as driving an 18 wheeler does with a formula racer. Different worlds altogether. But I will claim my 20:10 run today despite my sub-20 goal. Oh well, yet another less than spectacular 1st class PFT under my protruding belt.

Next on my plate was my daughter’s last baseball game which I had about 5 minutes to make upon returning home from the PFT. Now I’m not saying watching a bunch of 8 and 9-year-olds fumble around a baseball field for two hours isn’t just a big slice of heaven. OK, I am saying that. It’s not but the things we do for our demon seed. I dutifully sat there and watched while trying to recover from my morning exertion which, truth be told, was more difficult than it should have been but I digress.

I received a bit of a reprieve afterwards when we had lunch. Because I’m a moron, I caved to my family’s suggestion of eating Mexican food (a cycle of exertion and reward I cannot seem to break) and stuffed myself into a bloated haze that required a midday nap (the bad habits are piling up, I know). This sweet escape was then interrupted after a half hour when it was time to go to my son’s game. Great, watching 10-12 year olds play baseball. Will the fun ever end (only when the swweet release of death comes like a shadow in the night...)

So I dragged my food-induced comatose ass to the ball field to sit in the sun for another couple of hours. But I had a special treat in store when my son forgot his glove. I hopped in the car and drove the 15 minutes back to the house but after searching the entire place (oh, there’s that “Oh Mickey” single), I came up empty.

Fit to be tied, I returned to the field sure that they had located the lost glove in my absence. No such luck and Carrie grabbed the keys, sure she could find the glove after her idiot husband couldn’t find water in the ocean. Meanwhile, my absentminded son sat in the dugout, unable to play because he’s a lefty and couldn’t borrow a glove from anyone. I sat brooding and he knew better than to even come over near me to inquire aboiut the glove-finding status. I had decided on the way back to the ball field that my son was going to walk all the way home in the hot sun as a lesson about gear accountability (loosely based on the concept of carrying his bat bag the entire way). I, of course, would be joining him, making the mental pressure memorable and making sure he was safe. This plan was scrapped when I discovered the coach was having a pizza party afterwards and we had other events scheduled shortly after that. But the reverberations were not complete by any means.

Carrie returned, sans glove, and we determined the glove was gone forever. A few minutes later, we found the glove in an adjoining filed where some kids had used it as a base after Alex left it laying around. I grabbed the glove, walked over to him, handed it to him with the grimmest look I could muster, and told him we’d talk about this after the game. i knew this was the start of his punishment.

I let him stew in that for the rest of the game and to make matters more difficult, he had a great game with two hits (the first ones I’ve ever actually seen from him). We had the little pizza party afterwards and I was silent all the way home. I knew it was the elephant at the cocktail party but that was part of the punishment.

When we got home, we had our talk and I told him he wasted my time, his mother’s time, and most importantly, he let his team down. I talked to him about responsibility, about checking his gear (especially when specifically told to do so), and about taking care of the things that his mother and I buy for him. I then asked him what his punishment should be and he didn’t have an answer. I then told him that there would be no computer games, no Nintendo, and no TV for the rest of the day. He was to either read or do chores for mother to make up for her time he wasted. I could have made it worse but the delay I purposely imposed was a big part of the punishment.

After this drama came the end-of-the-season awards ceremony. If you’ve never been to one of these, it’s where every kid in the league shows up and then each coach calls each kid up one at a time to get a medal. In other words, chaos and boredom except when your kid gets up there. Actually, I take that back because it’s fun to see some of these kids show unrestrained pride and joy when they come up to get their medal. But most of the time, it’s an exercise in clapping for kids you don’t know until your hands bleed. The things we do for the evil spawn!

So that was my day and as I write this, I could sleep on glass through a firefight. After last night (see Friday BLOG), I think I might crack under the strain. Good thing that for Father’s Day tomorrow I’m only driving an hour to hike all day and then returning to go into school and finish up a report due on Monday. You know, taking it easy.

Free Advice for Today:
“Wear audacious underwear under the most solemn business attire.”
- H. Jackson Brown, Jr.

BLOG entry for this day from 2000

Friday, June 13, 2003

Quote of the Day:
"Our grand business is not to see what lies dimly in the distance, but to do what lies clearly at hand."
- Thomas Carlyle, historian

Captain’s Blog, June 12th, 2003. I’m pinned down in the battle zone and I don’t know how much longer I can hang on. We’ve been invaded by a large irregular force of boys and girls who initiated contact at about 1500, launching Operation Birthday Party on my unsuspecting command post. Posing as friendlies, their higher HQ set up the ambush and dropped their forces via minivan. Not long afterward, reinforcements infiltrated and a full attack ensued. Situation is grim, supplies are running low, and the enemy shows no sign of letting up. Hyped up on sugar, popcorn and soda, their strength seems to be increasing as my XO and I try to repel wave after wave. I hear their battle cry as I write this and fear the end is near. I will fight back until my last weapon is expended. The battle scene is ugly with wreckage strewn all over my HQ. These animals are not human… must repel attack… the door is bulging under their combined weight…. tell my mother I love her … COME AND GET SOME YOU LITTLE… ahhhhhhhhh ……….. (silence).

I once had wonderful kids, I really did. Once they were these sweet gifts from Heaven that any father would be proud to claim. So I don’t know when they became evil spawn but through deduction, I believe that when multiple kid’s behavior aura come in proximity, the resulting harmonics create demonic distortions and summon the soul of Lucifer himself. Then you pump sugar and salt into the equation and it’s the end of reality as you know it.

Of all the horrors, the balloons might have been the worst. I nearly fainted blowing them up and I was never very good at tying them, getting away with just a flesh wound this time. Then there was the Rugrat’s movie that, for all intents and purposes, was God’s payback for making my mom sit through Pete’s Dragon when I was a tike. The only way I clung to my fleeting sanity was to observe the animation for my own purposes but even that was a stretch.

But the combination of my daughter’s friends and my son’s friends (for the sake of all that is good in this world, what were we thinking?) made Clash of the Titans look like a minor squabble. At one point, I had to take my own heathen human-cubs into the back room and inform them that their lives were close to curtain call. Normally, it wouldn’t be a problem but since I have a PFT tomorrow, I couldn’t drink like a redhead named Mally McGregor on St. Patrick’s Day like I wanted to. Like I NEEDED to!!

The boys were whisked away by a neighbor who, whether I have the authority or not, I have granted sainthood upon. Things got a bit more quiet after that but it was too late. My position was already overrun and nothing was left to do but stick bayonets in the strewn bodies.

My after action report will be forthcoming but it will include suggestions such as Nyquil for every child passing through the door and allowing minimal blood in my beerstream.

Free Advice for Today:
“Own at least one article of clothing with Mickey Mouse on it.”
- H. Jackson Brown, Jr.

BLOG entry for this day from 2000

Thursday, June 12, 2003

Quote of the Day:
“Inspirations never go in for long engagements; they demand immediate marriage to action.”
- Brendan Francis

Sorry no BLOG yesterday, I was doing my final stress fracture for the final I had today. You try learning everything about organization structure theory overnight!!!

But the big news for today is that it’s my baby girl’s 9th birthday. To celebrate (other than waking her up at 0600 to wish her a happy birthday and leaving a note) we took a family bike ride after opening some presents and then let her choose anything she wanted for dinner. She chose “Daddy’s kind of pizza” which are the Chef Boyardee mix packs that the kids love so much, as did I when I was, OK, I still gobble them down.

As is tradition, we will have a party tomorrow where 8 little girls will invade my normally quiet abode and turn my house into a giggling madhouse. I’m looking for a doc to provide me some Valium and my son, showing incredible forethought, is spending the night at a friend’s house. My wife would not allow the same for me. I’ve been tasked to help take them to see a Rugrats movie (equivalent to a vigorous rectal exam by a fat-fingered doc named “Butch”) and do the normal cat-rustling routine. May the strength of Zeus be with me.

Jumping around to another subject: famous people are dying at the cyclic rate today. David Brinkley bit it and the article I read made no mention of Christie Brinkley which, to my generation and gender at least, was his enduring legacy to our sexual coming of age. Oh yeah, and I guess he was a news reporter or something.

Next on the bucket-kicking list today: Gregory Peck. Sucks to be famous today.

And while we are on the subject of death, for the sweet love of God if I hear another thing about Laci Peterson, I’m gonna vomit. Now I know it’s a tragedy and the bastard who killed her should be torn from limb to limb but the media is really doing their damndest to make me really not give a rat’s ass. I mean everywhere I turn there she is. People die every day, tragically and senselessly. Murders take place by the minute across our nation so let this one go already. Let the cops do the investigation, find the bastard, try him, and kill his dumb ass but please stop throwing every little detail in our face. I don’t want to NOT care but that’s where it’s heading.

Whew, glad I got that off my chest. Now I can go contemplate how my BLOG entry on my sweet daughter’s 9th birthday somehow contained the words “rectal,” “sexual,” “vomit,” “damndest,” “bastard,” and “ass.” There’s a little corner of Hell reserved just for me I know but right now, I gotta go make some pizzas.

Free Advice for Today:
“Learn three knock-knock jokes so that you will always be ready to entertain children.”
- H. Jackson Brown, Jr.

BLOG entry for this day from 2000

Tuesday, June 10, 2003

Quote of the Day:
“Always use a pie driver to crack a nut. The pile driver doesn't sustain much damage and the nut stays cracked.”
- USMC axiom

I'm still studying for my final (^%$#$) but I wanted to take a break to follow up on my June 5th entry. Like that one, you are in severe danger of catastrophic dweebism is you follow my explanation. Proceed at your own risk.

I went online to look for downloadable add-ons to Photoshop and through my research, caught onto the "actions" concept. I downloaded one that made thumbs and it didn’t work at all which is good because it made me dissect it and see what made it tick. Once I discovered the actions menu in PS, I saw that it was nothing more than recordable macros so I built two of my own.

But it wasn't without a little effort since I couldn't record the macro step to "save" because when I hit "save" or "save as", it wanted to know where to (duh!). If I told it a specific location, it always saved it there. If I closed out the dialogue box without telling it, it didn’t record the macro step ("Do what I WANT not what I SAY!"). What I wanted it to do was save and then use the batch function parameter to know where to put it. But I also want to be 6'2" with rippling muscles and that ain't happening either!

I then tried to find an "expert" function in PS where it would let me dive into the code of the macro and see if I couldn’t figure it out but it offered no such capability so I had to try something else. (The "6'2" with rippling muscles" function was conspicuous by its absence, also!)

I looked on the help menu and it did say that when you are recording an action step of "save" that you should leave the name alone and it will then save it as the same name rather than renaming it to what you specify in the action (which prevents renaming every subsequent pic the same name, overwriting the last as it goes along in the batch function).

Fine, after trial and error, here is what I have to do now:

1. Put all the raw pic files in a directory I created called "1Pics to be processed"

2. Run PS, File, automate, batch and run the JResize action I created. This will resize each pic in the "1Pics to be processed" folder to a standard size of about 100 K and copy them into another folder I created called "2Resized pics"

3. Run PS, File, automate, batch and run the JNails action I created. This will resize each pic in the "2Resized pics" folder to a standard thumbnail size and copy them into another folder I created called "3Thumbnails generated"

4. I then do a mass rename of all the pics in the "2Resized pics" and move them into my webpage structure under "pics."

5. I then do a mass rename of all the pics in the "3Thumbnails generated" and move them into my webpage structure under "thumbs." (Adds "tm_" to each file name).

6. Lastly, I erase all of the files in the "1Pics to be processed" folder and then build the webpage with the proper links.

This might sound longwinded but once I get going, it's much faster than opening each pic in PS, resizing it, copying it, pasting it, and resizing it to a thumbnail.

One thing I did learn is that the batch function is different than the action function. You can run an action on anything but the batch function runs the action on a set of items (this was an epiphany for me). The trick was to generalize enough so it would work on an entire set but specify enough to be useful. The other confusing point about the batch was that it is supposed to let you specify the source and target folders but when I did this, it didn’t want to play nice. I had to incorporate the target in the action steps but the end result is that it worked.

Onto the other portion of my programming queries:

Some of the feedback I got had to do with a few different programs:

I took a class in VB but it was only 10 weeks and it was over a year ago during a ball-busting quarter. Therefore I just did enough to get by and retained even less. I've had C++ also but only command line programming (none of the sexy Windows stuff). I've never done C#.

I think I'll concentrate on VB and VB Script because I can mix it with ASP, all of which I've dabbled in. All and all, I'd rather use what others have done but I would also like to get into the basics of building small apps suited to my own needs.

Free Advice for Today:
“Every so often watch Sesame Street.”
- H. Jackson Brown, Jr.

Monday, June 9, 2003

Quote of the Day:
“Tougher than a one-dollar steak and madder than John Wayne at a peace rally...”
- Steven Lee Beeber's review of Col Hackworth's book STEEL MY SOLDIERS’ HEARTS

Cram, cram cram. That’s the song I sing every three months so why should this time around be any different? With finals coming up, I must identify all the stuff I should have paid more attention to over the preceding 10 weeks and then initiate battle stations to learn the salient (read: will be on test) points. Yes, graduate school is much like undergrad which in turn is much like high school, at least for me. The only thing that changes is the level of concepts I’m trying to stuff into my little pea brain.

So I sit here in my study and wade through pages and pages of, in this case, command and control readings about organizational structure, trying to yank out the gist. Unfortunately, the gist is playing hide and seek within virtual reams of Word documents, PDF files, and webpages. Yes, boredom does digitize with nearly perfect fidelity.

So I’m gonna cheat tonight and paste in a story I wrote today about a former Sergeant Major I served with. Like much of my webpage, it was a diversion from my studying and more will be forthcoming. Enjoy.

(Warning, this story has some graphic content so if you're faint of heart, you might want to skip it. If you are and you read it, I don't want to hear your whining because you've been warned!)

As the Adjutant, I wrote the duty schedule and to keep down the complaints (notice I didn’t say “negate”), I made sure I always put my name on the monthly roster. What’s more, I always took a Friday, one of the least favorite days of the week, because that way I wouldn’t have to work all day, have duty all night, and work again the next day with no sleep.

One Friday when I was making my rounds, I came upon a scene and watched from afar as the Sergeant Major pounced on his prey. I saw the whole thing and knew in an instant that it wouldn’t be pretty when a Marine walked in front of the battalion in civilian clothes and a baseball cap on backwards. While there is no official order that forbids this, I knew that a silly little oversight such as that wouldn’t stop the Sergeant Major who was on a direct collision course with this poor lad. I just watched to see the bloodletting from afar and this is what it sounded like.

SgtMaj:   Hey, Marine.
  Good afternoon, Sergeant Major.
SgtMaj:   Are you a faggot, Marine?
Marine:   Umm… no Sergeant Major!
SgtMaj:   You sure you ain’t no faggot?
Marine:   No Sergeant Major. I mean, yes, Sergeant Major, I ain’t no faggot.
SgtMaj:   Oh, I just assumed because of your cover.
Marine:   What do you mean Sergeant Major.
SgtMaj:   Your cover. You know, being backwards and all.
Marine:   I don’t get where you’re coming from, Sergeant Major.
SgtMaj:   Well, you know only faggots where their baseball caps backwards. And you know why?
Marine:   No, Sergeant Major.
SgtMaj:   Because the bill gets in the way when they SUCK DICK!
    (The Sergeant Major forms an "O" with his mouth and taps the Marine's forehead with the bill of his cover as he bobs his head back and forth.)
    (With a look of terror, the Marine turns his cap around quickly)
SgtMaj:   OK, Marine. You have a good weekend and be safe (walks off).
Marine:   er, Ok, thanks Sergeant Major..

As I was chuckled, I called the Sergeant Major over and we both laughed about it. A few weeks later I asked him if he ever saw the kid again and he told me he had indeed seen the him in town and on top of it, the Marine had his hat turned backward again. From across the restaurant, the Sergeant Major caught the kid’s eye and just smiled an evil grin (showing the diamond star on his gold tooth), bobbed his head a couple of times, gave him a wink, and waved. He said the kid turned beet red and removed his cap altogether.

Free Advice for Today:
“Teach your sons as well as your daughters to cook.”
- H. Jackson Brown, Jr.

Thursday, June 5, 2003

Quote of the Day:
“You crazy bastard!”
- Captain Luis Garza, USMC, in response to my marathon trilogy


In my never-ending quest to know a little about a lot and expert at nothing, I have a question but it's kind of amorphous so beware.

It started yesterday when I had a bunch of pic files I wanted to make thumbnails for. In the past, I would just open each one in Photoshop, save as a similar name, then alter the image size. After doing this for dozens of pics, it got old and it hit me that anything you do repetitively on a computer, you can automate. My thoughts wandered toward a macro and then a .bat file. Then I realized that I had no idea how to proceed.

(Before you jump to an answer, read on)

I started with a bat because I had all of one successful experience with .bat files (automating the search engine updates on my site, which made me feel smarter than it should have). I quickly realized that I was in over my head because a bat file is just for DOS commands. I knew how to copy a file and could figure out how to rename it. But the iteration through a folder got me and stopped me dead in my tracks.

Then I turned toward Photoshop and started poking around. It had some very basic batch functions but none to make thumbnails. I discovered a function that creates a web page gallery and you can tell it both the source and destination files. I ran it and just as I suspected, it created a collection of subfolders, one of which was thumbnails. I saved those and trashed the rest of the files (I didn’t like the canned output of the webpages). So in the end, I found a new way to make thumbnails quickly by means not originally intended by Photoshop but it works. I should be satisfied, right?

No. My secondary problem was never solved.

As to not lose momentum, I then went through my standard menial, repetitious task of putting a thumbnail in a table cell, linking it to its larger version, and then copying and pasting that same pic to the other cells all the way down the column (you will recognize this as my pic pages for marathons). Then all I have to do is click on each thumbnail and alter the number in the "source" and "link" property boxes down the line to subsequent numbers and voila, they are linked. (I've learned to name all my pics the same, depending on the theme, and then number them sequentially for this purpose.)

But again, this is a highly repetitive task that I know I could automate. I found a way to automate the creation of thumbnails within Photoshop (and I'm sure there is an extension I could find to simply do it without bastardizing the web photo gallery function). I suspect there is an extension in Dreamweaver that I can automate the task I described above, too.

So now for the meat of the matter. I realize that I can find extensions to almost any program where someone has already figured out how to program added functionality. But I want to know how to do it myself and/or if it's a matter of it not being worth the hassle. If it's way complicated, forget it.

Here is a distillation of my questions:

1. What is the program(s) that one would use to do SIMPLE Windows stuff? (VBScript? VB? C++? JScript? Windows Scripting software? Scripting4Morons)

2. Is it easy to learn these or is it the land reserved for ultra-geeks?

3. What do you suggest I would invest time in learning if I wanted to write automating scripts within the Windows environment (and I don’t mean being a sys admin or network guru. I just want to work on my own machine(s) so we're talking Windows XP). A simple example would be iterating through a folder and changing the name of each file based on some criteria.

I have to go now and take inventory on my pocket protector collection, reapply the tape on my glasses, and get ready for The X-Files on TNN.

Free Advice for Today:
“Before taking a long trip, fill your tank and empty your bladder.”
- H. Jackson Brown, Jr.

Wednesday, June 4, 2003

Quote of the Day:
“I don't know what your destiny will be, but one thing I do know: the only ones among you who will be really happy are those who have sought and found how to serve.”
- Albert Schweitzer

I like reading.

Let me clarify that; I like the thought of reading. You see, as much as I like to say that I like reading, the fact is that I don’t read as nearly as much as I would like to. I really have no excuse for this failing but by the end of the day, I find myself wondering how I could be awake for 17 hours without dedicating some of that time to personal reading. It’s simply exasperating.

And it’s not like I lack reading material. If I never bought another book in my lifetime, I still would not run out of things to read. I have shelves of books just waiting for a chance to hop in my hot little hands but year after year, their ranks increase while my reading falls further and further behind.

My losing battle isn’t even limited to books. Much to my wife’s chagrin, I have a pile of newspapers in my office (earliest one dated Dec 13th, 2002) that I continue to swear to get to. I subscribe to only two magazines (Runner’s World and Smart Computing) and yet I have months worth of copies still in the plastic which makes renewal season a time for false promises and not a small amount of begging.

Even my email is no sanctuary, although I’ve made a concerted effort to catch up on it. I subscribed to a daily internet tip email list and had over 400 piled up before I launched an all-out assault and cleared it all out (of course this was during the time I should have been paying attention in class but that’s another issue).

Everyday I read the Early Bird which is a collection of military articles compiled by the government. It started when some low level government worker’s job was to stay up all night and collect all pertinent articles concerning the Department of Defense coming out in the next morning’s major newspapers. They would cut and paste these together and make copies for all the high level political types in Washington D.C. so they could gauge what the American citizens were going to see when they awoke. Eventually this evolved to an Internet site where anyone belonging to the DoD can log in and get the articles via a webpage. It’s a nifty little tool but represents a never ending flow of reading material updated every morning.

Part of my problem (of which there are many) is that I read slowly. You would think that after years of reading, my speed would increase but you’d be wrong. Also, I tend to put off any reading until I’m ready to go to bed so after a few pages, the Sandman cometh and my reading sessions are cut short. I’ve discovered that this phenomenon is less pronounced while watching TV and thus I’m sucked into staying up half the night watching The X-Files.

Of the half-dozen books I’m in the middle of (another problem I have, I start books and get interested in others before I’m done. I have an enormous collection of bookmarks), I’m reading a biography of Abraham Lincoln. I find it depressing that while I have a veritable limitless supply of reading material at my fingertips, Lincoln had but a few while growing up and cherished every word of every book he read. He sometimes read books more than once because he had no other material. Now take me in contrast; I have so much and don’t tend to dedicate much time at all to reading. It makes me wonder what a man like that would have done with the availability of reading material of the 21st Century. Would he be overwhelmed? Would he be more informed than the average man?

If you think about it logically, any one of us will only read a limited amount of material in our lives and if we were to collect all of that material, put it in a bookcase, we would see that it would likely only fill up maybe one row of an average library aisle. I think about this when I pick out a book because there is so much that I will never read (I’m finally facing the fact that I am mortal after all). And when I think about writing a book, I’m asking people to choose my paltry addition to the literary world of which millions of books of higher quality exist. It’s a daunting thought.

So what’s my point? Well, I guess I need to read more but that’s no revelation. Replace sleep for reading? Nope, tried it. Doesn’t work. I guess as long as I’m trying, I’ll keep improving. At least I have the hardest part: the love for reading. Now to put it into action.

Free Advice for Today:
“To help your children turn out well, spend twice as much time with them and half as much money.”
- H. Jackson Brown, Jr.

Tuesday, June 3, 2003

Quote of the Day:
“Our Country won't go on forever, if we stay as soft as we are now. There won't be any AMERICA because some foreign soldiery will invade us and take our women and breed a hardier race!”
- Chesty Puller

The hardest leadership scenario I ever faced happened shortly after I was promoted to Corporal back in 1990 when I was an avionics technician for Harriers in Yuma Arizona. It was around then that the 2nd ugliest woman I ever met checked into the shop, the first being a Gunny who had been thrown from a motorcycle onto her face. Reconstructive surgery could only do so much and added to her chain-smoking, scarecrow-like body, gravely voice, and overall sour demeanor, the Gunny took the 1st place prize, claws down.

The woman I’m talking about, we’ll call her LCpl Frog, was simply an ugly woman and I say that not to be mean but as a commonly agreed upon perception among the other Marines. Within the enlisted rank, no punches are pulled and if you are ugly, be you a man, woman, or frog, well, you are reminded of the fact by your peers. But she was a Marine and I was an NCO so I kept my opinion of her homely appearance where it should have been: to myself. But it was tough sometimes because in addition to her looks, or lack thereof, she had the personality of a lizard and I wondered if she had any redeeming qualities at all. She was new so I had not assessed her technical ability but if that followed suite with the rest of the package, there would be trouble.

The next thing you must know about LCpl Frog was that she smelled, and I’m not talking about everyday smell. She smelled like a woman doesn’t want to smell, ever, for any reason. It steadily got worse until I started to get complaints from the other Marines. We worked in small maintenance vans in close quarters so personal hygiene was more important than usual and the outside environment reached into the 100s regularly so the situation was ripe (excuse the pun) for repugnant odors. LCpl Frog would work on a piece of gear in the back of the van and afterwards, the van would smell bad until we opened a door and refreshed the air. Something had to be done so I took some initiative.

I tracked down a female Staff Sergeant (I’ll call her Adams) and explained the situation to her. I stated that it would better for all parties involved if she heard it from another female and I thought this was one of the few situations when female considerations should be taken into account. The Staff Sergeant agreed and I walked away feeling like the problem was all but taken care of.

Boy was I wrong.

About a half hour later, the shop NCOIC, SSGT Slusser, called me into his office. I had no idea what he wanted and his first line of questioning gave no clear indication of what was about to happen.

“CPL Grose, you just got promoted, did you not?”
“Yes, Staff Sergeant.”
“I hear you’re having a slight problem with LCpl Frog, is this correct”
(Danger, danger,…)
“Um, yes, Staff Sergeant, but I talked to SSGT Adams and she said she’d take care of it.”
“Well, she informed me of the problem and I think this is a good opportunity for you to show some leadership. I want you, as an NCO, to counsel her on her hygiene.”
“But..but, Staff Sergeant, do you know what this is about?”
“Yes, Corporal.”
“Then you have to agree that it would be best handled by another female.”
“You’re a noncommissioned officer, Corporal Grose. Need I remind you of what that entails?”
“No Staff Sergeant but…”
“Dismissed Corporal!”
“Aye, aye, Staff Sergeant.”

I was floored. How the hell was I going to tell LCpl Frog she smelled to high heaven? There was just no tactful way to do it and I paced inside one of the vans for a half hour trying to come up with the words. Finally, I walked up to LCpl Frog and told her I needed to talk to her outside, still clueless of how I was going to broach the subject.

When we got outside, I felt like I was about to club a baby seal (a rather ugly one but still). She had no idea what I was about to say and this is what came out of my mouth:

“LCpl Frog, I need to counsel you on something and I hope you will receive it in the same professional manner in which I’m going to deliver it.”
“OK, Corporal.”
(long pause)
“I’ve received some complaints that you have a certain… aroma…”

Aroma? Did I really say “aroma”? What the hell was I thinking?!!?

“Now hear me out on this. You’re new here to Yuma, right?”
“Yes, Corporal.”
“Well, I had a similar problem when I first got here because my body was adjusting to the blazing heat. The problem is, when your body acclimates, you tend to sweat a lot more and the worst thing is you are the last to notice. So I’m letting you know so you can do something about it. You can use a stronger soap such as Irish Spring and maybe hit the showers at lunchtime until your body adjusts to this climate. Again, I don’t want to embarrass you but it’s better that you know now before it gets out of hand. I won’t bring this up again if it improves and I hope you understand my concern.”

“Yes Corporal. Thank you.”

The truth was, I was the one embarrassed and the lie just flowed out of my mouth about having a similar problem. To tell the truth, I was infuriated with SSGT Slusser for making me do this and I felt he could stick his leadership lesson clear up his ass. LCpl Frog took the counseling in stride and things improved so we never had address the subject again. I still don’t know exactly how she felt about it because it’s hard to read a lizard but I’d like to think I did some good.

Free Advice for Today:
“Never miss a chance to dance with your wife.”
- H. Jackson Brown, Jr.

Monday, June 2, 2003

Quote of the Day:
- Unknown

I’m an honest person. I’d like to say that I predisposed to be that way but the truth of the matter is that the root reason for my honesty is that I’m the worst “dishonest” person alive. I’m the kind of person that would get a ticket for jaywalking while my brother is the kind of person who could shoot the President and get off scott-free.

I don’t stray far from the rules because I always get caught. I guess that’s a good thing because it’s kept me out of trouble for most of my life and most of us would agree, honesty is the best policy.

One of my earliest experiences in this arena happened one day in junior high when I was walking to the cafeteria which was in a separate building. As I crossed the parking lot, I looked down to see a booklet of lunch tickets just sitting on the ground. Coming from a rather poor household, I was looking at what basically amounted to free money and against my better judgment, I scooped them up with the intent to use them.

Just because I was an honest kid didn’t mean I wasn’t a scheming kid. I knew that the dreaded lunch ladies who took the tickets had a list by the register that had the numbers of stolen tickets and therefore I thought it smart to “lay low” for awhile. I hid those tickets in the most secrestest of all secret places; somewhere not even the keenest detective would never think to look. Yes, they resided in my underwear drawer for about 3 months.

Finally, I thought the time was right and I delved into my little stash (thus freeing the $1.25 my mom had given me for more important items like candy). With sweaty palms I shuffled through the lunch line, knowing that enough time had passed that there was no way I’d be caught. As I handed over my ticket, the demon in the hair net randomly performed a cursory check of the ticket and waved me on. Even though I had gotten away with it, I vowed to throw away the tickets when I got home because it just wasn’t worth the stress.

Just as I was thinking these thoughts, the demon’s voice rang through the cafeteria, “Just a second, young man!” I turned in horror and she was once again comparing the ticket to the list by her register and dang if she didn’t have a match. Busted.

I swear I’m not making this up: the vice-principle’s name was Mr. Savage. Mr. Savage looked a lot like Willy Wonka with curly blonde hair and everything but that is where the resemblance ended. He lived up to both his title and his name and remains one of the most hated caricatures from my childhood. I was delivered to Mr. Savage with more shame than I had ever felt in my young life. To make matters worse, I lied about where I got the ticket, claiming that I had bought it for $1 from an unknown student.

As Mr. Savage called my mother, I was forced to look through old year books to find this mystery kid. Mr. Savage knew I was lying but I could not admit the truth even when my mom showed up with all the disappointment in the world on her face. I was “the good one” in the family and such behavior was unfathomable from me. She argued my case (which made me feel worse as the bickering went on) until Mr. Savage relented and ensured me that we’d revisit this situation for the rest of the year if that’s what it took. Great, I had made the Savage list.

So for the rest of the year, I had to try to avoid Mr. Savage which was difficult considering he was the VP and roamed the halls constantly. I was always deeply ashamed of myself every time he’d pass me by and he knew it, giving me a disapproving look to add to my shame. I was never so glad to get out of a school in my life.

On the last day of school, I took the tickets and showed my mother. I admitted what I did and she was very upset that I’d done that and that she had spent so much effort to defend me when I knew I was guilty. But for a lousy $10 book of lunch tickets in junior high, I learned a couple of life lessons that stay with me to this day: it’s infinitely easier to do the right thing than to deal with the consequences of doing the wrong thing. Second, when you falter, admit it and get it over with. In other words, take responsibility for your actions no matter how bad. It would have saved me a lot of heartache in an already difficult time in my life.

As for you, Mr. Savage, thank you for teaching me this harsh lesson, you bastard (sorry, couldn’t resist).

One final note; the booklet belonged to a friend of mine named Betty White. I somehow ran across her email address in 2002 and sent her an email from out of the blue. I admitted what I had done and even offered to buy her a lunch if we ever met up. She thought it was funny but for me, it was tying up loose ends.

Now if I could catch Mr. Savage and flip him the bird, that chapter in my life could finally be completely closed.

Free Advice for Today:
“When you are a dinner guest at a restaurant, don't order anything more expensive than your host does.”
- H. Jackson Brown, Jr.


Sunday, June 1, 2003

Quote of the Day:
- Unknown

It’s a sad statement but it’s true; I expect poor customer service when I go to medical.

Before I was an Officer, it was much worse but even as a Captain, I’ve come to expect that walking into the medical facility, I can count on long waits, confused status, and overall lethargic treatment. The problem lies in the fact that they have something you really need, there is no alternative but suffering through whatever ails you, and they see a never ending parade of sufferers, sometimes legitimate, sometimes not.

A couple of things have tempered my patience with this unwavering scenario. First, I know that as a whole, these docs and medics would put themselves in very real danger on the battlefield to save my butt. Of that, I have no question. Second, I know the whining and malingering youngsters they must deal with. Hell, I was one of them not too many years ago and the daily weeding out of those that need help and those that are using medical as an excuse to get out of something is enough to jade even the most earnest of docs.

So I take my book (a habit I was depressed to notice I alone had the foresight to do) and play brick in the wall. Because my appointment was at 1540 on Friday, I knew I would likely not have to wait too long because everyone wanted to secure.

I was dead on.

I have the ability to catch poison oak spontaneously. OK, I guess I would have to rename my dog “Spontaneously” because I’ve determined this is the only plausible source of my unending rashes. As a result, he’s been banished from our bed at night; a decree my wife insisted on from day one but that I vetoed and allowed with the agreement he horded my side of the bed only. No, she hasn’t come out and stated “I told you so” but I can feel it burning in my ears via telepathy.

After checking in, I waited in the waiting room. Practically alone at this late hour, I observed young Army soldiers who worked in the hospital standing around in doorways waiting for the magic second hand to reach the secure time. I tried to concentrate on my book. After 10 minutes I was called and led to a small room where my temperature and blood pressure was very matter-of-factly taken before being led to yet another room. The doc would be with me shortly.

After another 10 minutes, the doc entered and I explained to him what I had to which he quips, “Yep, that’s poison oak.” He wrote a prescription in on a computer and told me to go pick up my medicine. He also prescribed a shot in addition to the pills and cream.

I thought “Is that it? Can’t be!”

I mean getting out of medical in under an hour is unheard of. I walked to the pharmacy in a daze. Once there, it only took a few minutes to get my medicines and then headed to the Vampire.

The Vampire this time was, from the look on his face, a young soldier whose liberty I was obviously impinging on and who took obvious delight in having the power over an Officer (and one in civilian clothes, at that). He told me to wait out in the hall and I would have been a bit less understanding if I wasn’t so impressed with the speed of my appointment this far. So I cracked my book and noticed every minute or so that he was not doing much more than talking to his buddy. But he had the power here and I really didn’t feel like getting into it with a man that was about to insert a stainless steel needle in me. So I waited with only a couple of interruptions which, considering my last BLOG, made me laugh every time: “Have you’ve been helped, Sir?” At least someone cared but if one more person asked me that...

Finally, he called me in.

“I need a shoulder.”
“I thought it was going to be in the hip.”
“No, Sir, shoulder.”
“Is this going to put me down because I have a PFT tomorrow.”
“No Sir.”

Lying bastard. It was like someone took a baseball bat to my arm and stayed that way for two days.

As I feigned manliness in the wake of a rather painful shot, I put my shirt back on and tried to leave. But the liar told me I had to wait 5 or 10 minutes so they could make sure I had no adverse reaction. How about the stabbing pain, is that adverse? So I cracked the book and dutifully sat by and waited. When I’d had enough, I tracked the liar down and told him I was leaving.

I still got out of there in record time and was impressed by the speed. From experience over the years, I know it was due to the late hour of a Friday and if anyone wants to argue that point, I can recount hours of sitting around just to get a few bottles of Motrin more than a few times in my career.

I don’t mean to badmouth the military medical system and as I’ve stated, I know they would be there in battle when I needed them the most. But in garrison, I get a little tired of what I see as part of the incentive NOT to visit medical. If you make the process too easy, you get more business than you want. But when you got a legitimate medical gripe, the bureaucracy is a little irritating.

And since I try not to offer complaint without suggestion, I think that my advice could be used in almost any field. When in a service industry, remember that no matter how many times you’ve run across the same annoying scenario, it’s likely the first time for the person you are dealing with and very important to them. As long as I see a reason for legitimate delay, I have no problem with it. Your job is to help people so enjoy your job or find one that you do.

There, rant complete.

Free Advice for Today:
“Grind it out. Hanging on just one second longer than your competition makes you the winner.”
- H. Jackson Brown, Jr.

Email -- jason@grose.us
Web -- http://www.grose.us/