Life, The Universe, and EVERYTHING
Your old men will dream dreams
0I don’t really consider myself an old man, but I do find that God speaks to me through dreams quite a bit.
I haven’t written about it here, but my grandfather passed away near the end of May. As I wrote in my journal, it was “a moment I’ve been dreading most of my adult life. But it’s here, and so is God, and because of that, it’s okay. Granddad is not suffering anymore. He’s with the Lord. And I will see him again.”
The night after he died, I had the following dream. I have always known Granddad to be a believer, so as his health declined I never fretted about his eternal estate. After sharing this dream with my parents, they told me that as Granddad breathed his last in this world (after having suffering for so long), he had a smile on his face.
Here’s the dream:
I saw a sprawling property with multiple buildings and fields. It was very pleasant—the sun was shining brightly, the trees were green and swaying in the breeze, and the day was comfortably warm. The sky was a blazing, rich blue, full of bright white puffy clouds. Granddad was outside tending the property, preparing one area for some sort of race that he was hosting (I had the sense that it was a children’s event – the track he was creating was small). He was clearing debris from the field. He was not a young man – he looked older. Not as old as he did as of late, but the way I remember him in his 60′s. But he was hale, and spry as a man in his prime. He strode briskly around the property, shirt off, gloves on his hands, work boots on his feet. At one point, there was a stump in the ground he needed to clear. With incredible, superhuman strength, he grabbed it with both hands, effortlessly snapped the trunk way from the roots, and hurled it aside. As I observed this, I thought, “I’m in my 30′s and there’s no way I could do that!” I was concerned for his heart condition as I watched him work so hard, but nobody around me was worried. I looked at his face, and he looked back at me briefly – he was not smiling, but he seemed intent on his work. And deeply content.
Hey, Robert, It’s Your Birthday!
0Happy Birthday, buddy! I can hardly believe you’re 6 already. You are an amazing boy and a gift from God, and I’m so glad I get to be your dad.
And now, straight from outer space…
Web design excursus
0I have given a name to my pain, and it is Internet Explorer (IE).
More specifically, it’s versions predating IE 8, which (IMHO) is Microsoft’s first really solid Web browser and gives me little to no trouble. IE 7 and IE 6, on the other hand, are what Napoleon Dynamite would refer to as decroted pieces of crap.
Here’s my most recent study in IE pain. I’m making a Web page that uses a variation on an accordion menu. Said accordion menu needs to allow users to open more than one pane at a time, so I can’t use the handy little .accordion() method in the jQuery UI plug-in to create it. After a little digging around on teh interwebs (Did you see that subtle, humorous allusion to internet culture there? Did I mention that it was subtle?), I opted to write a little click handler that would apply slideToggle to create the modified accordion effect, like so:
var currentAccPane = $(this).next();
$(this).toggleClass(‘ui-state-default’);
$(currentAccPane).slideToggle(‘fast’);
});
BTW, for all you self-appointed code police (SACP) out there, I’m fully aware that the guts of this function can be chained. For me, this looks cleaner and is clearer. There. Are we okay now?
Anyway, this accomplishes the following:
- When each accordion item is clicked, it sets the variable currentAccPane to the next sibling element, which happens to be the div containing the content associated with the clicked heading.
- It changes the on/off state of the clicked heading by toggling the class ui-state-default.
- Then, it slides the pane of associated content down (on) or up (off).
Everything was just ducky in Firefox, IE 8, and Safari, but IE 7 choked on it. Hours of arduous Googling revealed that IE 7 and slideToggle don’t like each other when you’re slideToggling positioned elements (which I was). In this instance, IE 7 simply ignored the height of the parent element and stretched absolutely positioned child elements vertically to the height of the viewport.
Holy MonT-SteR Consternation™, Batman!
After trying every CSS trick I could find, as a last resort I tried resolving my issue with jQuery in a separate JavaScript file targeting IE 7 and older. All I can say is, “I heart jQuery.”
Here’s what worked:
var currentAccPane = $(this).next();
var divH = $(currentAccPane).innerHeight();
$(currentAccPane).css(‘height’, divH – 24 + ‘px’);
});
The fix occurs in the last two lines:
- After getting the content block associated with the heading, it calculates its pixel height based on the content it contains (which is the same whether open or closed — when the latter, it’s simply hidden) and stores it in the variable divH
- Then it uses divH to assign a hard pixel height to the content’s parent element via inline CSS on the fly (minus the top and bottom padding in the element, which in this case added up to 24px)
Voila! jQuery to the rescue! IE 7 now happily constrains the absolutely positioned blocks that were being inordinately stretched to the size of the containing block in the accordion.
Now, let me preempt the SACP by acknowledging that there may be a more savvy, efficient way to do this. And I admit that this may break the rule of keeping style and behavior separate in Web design. I suppose one could argue that my use of the .css() method here in my script is actually addressing a behavior — albeit a bad one — and so everything’s kosher.
In any case, I’m just getting my feet wet with jQuery, so I’m open to suggestions. But this works without any deleterious effects on other browsers (except IE 6, but that’s a animal beast monster form of torture horse of a different color). And, it solved my IE pain. For a jQuery noob, I think that’s a pretty good day’s work.
Blessings,
Rob
aka The MonT-SteR
Tilapia Po’Boy recipe
0So, my wife buys these breaded tilapia filets from Sam’s Club. Usually, she bakes them in the oven until they’re crispy on the outside, and I enjoy them with thorough doses of vinegar (I’m not really a seafood person).
Well, she had somewhere to go this evening, and graciously cooked up some of these tilapia filets for me to eat while she’s out. This time around, however, the ol’ take-it-with-vinegar routine just didn’t seem appetizing. So, in the fine Monti tradition of improvisational gastronomy, I experimented with what we had on hand in the kitchen.
The result was (IMHO) delicious, and a welcome change of pace. If you’re trying to get more fish in your diet and in a rut, try this for a quick and tasty meal.
Tilapia Po’Boy
Ingredients
- 1 breaded tilapia filet, baked until exterior is golden brown and crispy
- 3 slices of onion, coarsely chopped
- 1/2 long hot chili pepper, coarsely chopped
- 1 roma tomato, chopped
- 1-2 t. soy sauce
- 1 T lemon juice
- 1/2 t. Tabasco sauce
- 1 T olive oil
- 1 small pat of butter
- Shredded Monterrey Jack or sharp white cheddar cheese
- Salt
- Pepper
- Crushed red pepper
- 1 Small Italian sandwich or hoagie roll, or (better yet) some ciabatta bread or about 4″-6″ of a Louisiana baguette (whatever you use, be sure to toast it)
Directions
- Heat the olive oil and butter in a non-stick skillet.
- Over medium heat, add the onion and long hot chili pepper. Stir to make sure the oil/butter covers everything.
- Sautee until the onion becomes translucent.
- Add soy sauce, Tabasco, and lemon juice. Add salt, pepper, and crushed red pepper to taste. Stir.
- When this mixture has sauteed for just a moment more, fold in the tomato. Stir thoroughly. Continue to sautee until the tomato wilts a bit, then remove from heat.
- Take your toasted roll/bread, and spread a little mayonnaise on the inside. Place the baked tilapia filet on the bread, and spoon the sauteed vegetable mixture on top. Sprinkle just enough shredded cheese to give it a bit of a tang, and enjoy.
YUM! I never enjoyed a fish sandwich this much. Some suggested variations:
- Put a little Cajun seasoning (like Tony Chachere’s or Slap Ya’ Mama!) in the mayo, or substitute it for the salt and pepper in the sauteed veggie mix.
- Flatbread or a tortilla could make this a tasty wrap.
- If you want a healthier cheese option, feta might be a good choice.
Give it a try and let me know what you think!
Blessings,
Rob
aka The MonT-SteR
Voiceover recording FAIL!
0While recording voiceovers for a training video at work this week, I got real frustrated. I use something akin to a Porta-Booth to do recording. While it does a good job approximating the quality of a full-blown soundbooth, it makes reading copy and controlling the computer a tad difficult sometimes. I just couldn’t get situated, and so goof-ups were frequent and hard to recover from.
Witness the EPIC MonT-SteR Consternation&trade!
Blessings,
Rob
aka The MonT-SteR
A free Macbook Pro?
0I received credit for completing my offer — my ShamWow! towels arrived yesterday (happy happy, joy joy), and my offer was marked as complete by Notebooks4Free last evening. Now I just have to figure out how to get referrals.
Call me crazy, but Macinlust can drive one to do crazy things from time to time.
You’ve probably seen these sites where they offer goodies that appeal to anyone with a bit of a gadget bug. Complete an array of offers, and you’ll get the techno-carrot they dangle in front of your face to entice you—anything from iPods to PSPs to, well, Macbook Pros.
The problem with many of these sites is that they want you to complete the most ridiculous offers to get the goodie. No, I’m NOT going to apply for a mortgage and buy a European vacation package just to get a LAPTOP, for Pete’s sake. My gadget greed isn’t THAT out of control, thank you very much.
I recently encountered a site that asks one to complete a modest offer (like a trial at Netflix or a sample pack of gourmet coffee) and refer 24 people who also complete offers to get the goodie. That seems doable to me. So, I took the plunge.
In my case, I had to order some ShamWoW! towels, which is fine; I’ve been wanting to try them anyway. But now comes the work of referring 24 people who are willing to complete offers like I did.
So, if you’re interested in getting a Macbook Pro on the über-cheap, pay Notebooks4Free.com a visit. From what I’ve seen, this is actually a reputable company that’s not out to scam you (go here for a positive and seemingly credible review).
I’ll keep you posted on how my application for the Macbook progresses.
Blessings,
Rob
aka The MonT-SteR
P.S. The MonT-SteR Reduction has been going badly. I really fell off the horse after my business trip. A day off for Good Friday tomorrow will give me the chance to go to the gym for an extended period of time, thus breaking the pattern of not getting to the gym for an extended period of time. Pray for me! This whole weight-loss, fitness thing HAS to happen.
Photoshop World and The Biggest Loser, Blog Edition
0Greetings from Beantown. I’m here in Boston for the Photoshop (PS) World conference, learning all sorts of yummy new things about every designer’s favorite killer workhorse application.
I consider myself an intermediate to almost-advanced PS user, and it was gratifying to find that a good number of things presented today were review for me. But I got to see lots of nooks and crannies in PS CS4 that I was unaware of. The neat thing about PS nooks and crannies is that they can have a very meaningful impact on your workflow. For example:
- If you have PS CS4, check out the Content Aware Scaling. In essence, if you have an image that you need to scale in a non-proportional way, you can protect the important content of the photo so it doesn’t squish or stretch. Very powerful when you have a photo that is perfect for your project but it doesn’t fit the dimensions of the end product.
- PS CS4′s mask and adjustment panels are awesome time savers, and they give you the ability to apply masks, feathers, and adjustments to an image in non-destructive fashion. Very cool.
I could go on, but I don’t want to bore my few readers. In any case, I’m learning lots, and having a very good time here at the conference. I’m eager to get back and put these little tidbits into practice.
In other news, your One and Only Favorite Friendly Neighborhood MonT-SteR™ is, well, fat. Portly. Obese. Rotund. Corpulent. Some of you who actually see me on a regular basis will doubtless be completely UNsurprised at this revelation. But it’s true. Call me Moby Dick (Ishmael was thin, I’ll wager).
And so, The MonT-SteR must reduce. Lots. Like, the “over 100 lbs.” kind of “lots.” To be specific, I need to lose at least 140 lbs.
This seems kind of daunting, but I done this before. I lost nearly 100 lbs. years ago, and over time (especially after the birth of my first son) I gained the weight back, and then some (and how!). And corresponding medical complications are forcing my hand. I’ll not be done in by hypertension and declining cholesterol.
So, as a therapeutic measure, and to help with motivation, I’ve decided to use my blog to chronicle my progress. Think of it as The Biggest Loser for the blogosphere.
Not sure what shape this will take, or how I’ll publish my results. But I think it will be helpful to know that readers and other netizens can come along for the journey. I’m sure there will be days when I’ll need encouraging words from folks out there!
In an effort to continue my recent trend of getting to the gym, I’ll be heading to the fitness center here in the hotel before breakfast and class.
So, off to bed with me!
Blessings,
Rob
aka The MonT-SteR
Best YouTube clip EVER
0Well, some of you may quibble, but I challenge you to watch this without laughing at least a little bit. For my own part, I laughed so hard I very nearly passed out. My stomach still hurts…
Blessings,
Rob
aka The MonT-SteR
P.S. Okay, I admit it. I’m easily entertained. You can stop making fun of me now. There are benefits to getting a good hearty guffaw out of silly little things, you know…
Robert + mic = fun (for a while, anyway)
0I hooked up my shiny new Samson C03U USB microphone last night to test it out, and my son decided to get in on the act. The result was some considerable cuteness, at least until it went south at the end (it was way past his bedtime).
Blessings,
Rob
aka The MonT-SteR
Browser testing services: caveat emptor
1It’s time for some MonT-SteR Consternation™.
One of the maddening things about building Web pages is cross-browser compatibility. Most modern browsers are standards-based, which means that solid CSS designs will display consistently whether you’re using Firefox, IE7, Safari, Opera, etc.
The fly in the ointment is IE6, which is regularly cursed by beleaguered Web designers the world over by virtue of its plethora of CSS rendering bugs.
“IE6 is old, Rob,” you say. “Just stop supporting it. People need to upgrade.”
Au contraire, mon frère (ou mon soeur, s’il vous plaît). People do need to upgrade, but somewhere around a third of all Internet users continue to use IE6 for a multitude of reasons. I’m sure there are plenty of individual users who don’t upgrade because they don’t know how, or IE6 feels like home, or they heard someone badmouth IE7 because of its updated UI, or they don’t know about Firefox, ad infinitum. But it’s not just home users. There are plenty of corporations with beefy IT departments out there refusing to upgrade as well.
Until usage statistics for IE6 drop to infinitesimal levels, it stubbornly remains a thorn in the flesh. And beleaguered Web designers who use the Mac tend to curse IE6 even more, because Microsoft stopped building IE for the Mac at version 5.2. How do we test our designs?
Enter Browsershots.org and CrossBrowserTesting.com, which provide free (and paid) online browser testing without the hassle of finagling your system to run IE6 alongside other modern browsers. The former will give you a screenshot of your web design displayed in the browser of your choice. Helpful, but slow — even if you pay the $15 for a month of priority testing. On the other hand, CrossBrowserTesting.com provides what amounts to a remote desktop session in your browser window using your requested computer/browser configuration. And it offers more flexibility for paid users with subscription and pay-as-you-go models.
Sounds good, right? Yes, but with one significant caveat (and here’s where the “emptor” comes in).
I was excited about CrossBrowserTesting.com until I noticed that my credits were disappearing way too fast for how much I was using the service. It turns out that partially used credits are not carried over from one remote session to the next. For me, the net result was that I lost almost a third of the 30 credits I purchased. When I discovered this, my slack-jawed disbelief turned to anger. And I vowed to warn others.
Consider yourself warned. If you go with the pay-as-you-go service, you will lose credits unless you use all of them in a single remote session. It doesn’t matter how unused a partial credit is; whether 20% or 99%, that credit goes bye-bye forever when you end your remote session. And so does your money. Granted, credits cost about 20 cents each or less, but it can add up — especially if you go whole hog and opt for 500 credits at $200. Imagine losing a third of that, and you’ll see red as well.
To be fair, CrossBrowserTesting.com does state that partially used credits do not carry over. My surprise at this after the fact was my fault — chalk it up to failing to read the fine print. And there is a monthly subscription option with a flat fee of $29.95 for the first month and $19.95 each month thereafter for unlimited priority testing (FYI: these rates will soon be raised by $10 a month). Obviously, that would solve the disappearing credits issue.
In the interest of full disclosure, I should also mention that when I complained bitterly to CrossBrowserTesting.com about losing almost an hour of testing time, they gave me complimentary credits to cover the loss. But they were also unapologetic about their pricing structure, stating that it’s a common practice in the industry.
Funny, but that everybody-else-does-it argument never worked on my mom.
Blessings,
Rob
aka The MonT-SteR