Hilton Head Island, SC – Day 5 of 8

July 29, 2010 – 10:26 pm

Today started off at 7:30 with four sets of tennis: 6-0, 6-1, 6-2, 6-0. My goal this entire week has been to win three straight sets at 6-0 but I can’t seem to do it. Maybe tomorrow.

The beautiful weather magnified the enjoyment of the beach and pool. I did try-out for the 100m sprint today while in the ocean. A large school of fish started leaping out the water towards Kara and me, jumping out all at once at least three or four times. Needless to say, we followed suit and raced to the shore. I never did see the shark, but I’m fairly certain something large and scary was lurking under the surface.

We decided to hit up Skull Creek Boathouse (another top-6) for a late lunch after failing to find an all-you-can-eat crab leg place that was open for lunch. SCB is hidden on the water behind the Hilton Head Boathouse. I had the Salmon B.A.T. which contained grilled salmon, bacon, avocado, and tartar sauce and was served with sweet potato fries. It was scrumptious! My mom had grilled scallops. Kara had shrimp linguine. Pam had a cod sandwich. Everything was amazing!

Sorry for the dearth of pictures. I had a huge mental lapse as the food arrived because it smelled so good!

Rating: 5/5

After lunch, we went to the boat ramp behind SCB where Kara took these beautiful shots.

We really wanted dessert at SCB but it was kind of pricey, so we opted to get some at Harris Teeter. Ice cream was buy 2, get 3 free or 2 for $5. So we got mint chocolate chip and double fudge brownie.

We cooled off for a bit and then headed to Adventure Cove where we played mini golf.

Mini golf results:
1) Pam
2) Jeremy & Kara (tied)
3) Sue

We headed back to the condo and learned how to make yummy pound cake from Alton Brown. And then I was forced to watch So You Think You Can Dance.

Tomorrow we plan to play tennis in the morning, hit up the beach and pool for a short while, go on a dolphin cruise, and have all-you-can-eat crab legs. Should be awesome!

G’night!

Hilton Head Island, SC – Day 4 of 8

July 28, 2010 – 11:36 pm

Our vacation is halfway over but today was great.

We decided to skip tennis this morning so we could finally sleep in. It was refreshing.

For breakfast, we headed to Flamingo’s Doughnut Cafe which is located right outside the Sea Pines gate. I’ll let the pictures do the explaining.

Boston Creme

Black Forest

House Special

Total Cost: $9.70
Rating: 5/5

We’ll probably go back at least once this trip!

We spent almost all day in Sea Pines. There’s a $5.00 fee to get in but the pass is good for all day and they do provide Trolleys.

First stop: Harbour Town

A kid caught a blue crab as we were standing beside him and trapped it with his foot so it couldn’t get away.

Next stop: The Shoppes at Sea Pines Center

Back to Harbour Town for lunch at The Crazy Crab

Rating: 4/5

We took the trolley back to the car and then drove to South Beach where there were three random Macaws. Here’s one of them.

Then we went to Lawton Stables.

We headed home and watched TV for awhile. Then the girls went to the pool and came back shivering. We finished off the evening watching So You Think You Can Dance (or American Idol as Nigel misspoke).

Tomorrow we plan to resume our morning tennis regimen and then hit up the beach and pool. I’m also hoping to find my all-you-can-eat crab legs for dinner!

G’night!

Hilton Head Island, SC – Day 3 of 8

July 27, 2010 – 10:34 pm

Today started with tennis at 7:45. It seemed a bit cooler so my mom and I played three sets. 6-0, 6-1, 6-1. I’m down to one racket from three after breaking a string each day so far. Let’s hope that trend doesn’t continue!

The squirrels here are really tame and photogenic.

We headed to the beach where I got some great exercise walking in the water down the coast while pulling Kara. She enjoyed it until I got tired and told her she had to walk back :p. The pool was super-crowded but very relaxing after the ocean workout. I don’t know who invented these things, but someone came up with an octopus life preserver/float that took up about a 7-foot diameter in the pool.

For lunch we decided to cross off another restaurant on the top-6 list: Giuseppi’s. It was fantastic! There’s a reason only 1/2 the pizza is showing in this picture!

Toppings: amazingly-fresh mozzarella cheese, grilled chicken, broccoli, and bacon!
Price: $21
Rating: 5/5

My only complaint is that it’s all gone! :(

After lunch we headed to the site of the infamous Tuesday night concert and fireworks to scope it out. The stage was tiny and my mom questioned a worker about what to expect. Apparently it’s mostly for kids. They have a bounce house and music that stops for the fireworks at dark. So if it’s for kids, why was there a Budweiser trailer parked there? Weird. Anyway, we decided to pass on that event.

Shortly after heading back to the condo, heavy, much-needed napping ensued.

Dinner? Yummy leftovers from Giuseppi’s (at least for me)!

We thought about going mini-golfing after dinner but after checking the Weather Channel and seeing that the heat index was 107 (actual high today was 100), we passed on that too. The women took a long walk while I stayed in and watched Hell’s Kitchen and Master Chef.

Here are some beautiful shots Kara took on the walk.

Tomorrow I’ll be sleeping in and then we’re going to Harbour Town.

So far this vacation has been great! G’night ya’ll.

Hilton Head Island, SC – Day 2 of 8

July 26, 2010 – 10:33 pm

The day started off at 6:45 AM. Usually that would irk anyone on vacation, but if you want to play tennis in Hilton Head during the summer, morning’s the only way to go. My mom and I played for about an hour and ten minutes after which point I collapsed at the dining room table and had some cereal.

Next, we headed to the beach where Kara mocked me severely because of my hat.

Ok…it’s not quite that goofy, but the only differences are the tassels and writing. This year, I decided my hat was an ample substitute for sunblock lotion. I hate that stuff. With a passion. And after one day of being in the sun for about four hours, I can say that it seems to have worked.

So we went to the beach, the crowded pool (webcam-monitored) where we watched Kara’s mom learn to swim, and then back to the condo. Lunch was delicious: pulled rotisserie chicken sandwiches.

Then we got bored and took a trip to the chamber of commerce which we mistook for the visitor’s center. Whoops. So they directed us to the visitor’s center where a very helpful woman doused us with great info.

Top 6 places to eat:

Today we knocked Sea Shack off the list. The food was amazing but the wait was ridiculous. We got there at 5:50 and didn’t get seated until 7:30. The place had maybe 15 tables and the ginormous line we waited in was outside in the 91-degree heat.

I got the Shack Attack: crabcake, scallops, shrimp, oysters, and tilapia.

So was it worth it? Not really. Go for lunch instead and enjoy shorter waits and cheaper food.

I’m an ice cream-aholic. So we stopped at the Piggly-Wiggly after dinner and snagged some Double Fudge Brownie ice cream which hit the spot with bananas and a crushed-up Butterfinger. Yum!

Time for bed…we’re playing tennis at 7:30 tomorrow morning.

G’night!

Hilton Head Island, SC – Day 1 of 8

July 25, 2010 – 10:16 pm

To celebrate Kara’s mom’s retirement, Kara and I thought it would be nice to treat her and my mom to a week at the beach.

Our mothers arrived yesterday afternoon from Motown and we spent the evening catching up. We watched My Life in Ruins with the chick from My Big Fat Greek Wedding. Not bad for a sappy chick flick. After some much-procrastinated, late-night packing, we hit the sack.

Today started out beautifully—pancakes for breakfast, relatively painless packing, and my mom driving. We made a quick pit-stop at Wendy’s and arrived at the condo around 3:00 where we found the maids’ supervisor doing a last-minute inspection. We quickly hauled our belongings up three flights of stairs in 110-degree heat (heat index). I’m pretty sure my shirt melted off as I was doing the stair-master marathon because I wasn’t wearing one when I looked in the mirror while checking out our bedroom. You’re welcome.

After a five-minute break in the cold living room (thermostat set at 65…w00t!), we slid down the stairs and took an unprepared tour of the island, wandering around aimlessly for about an hour before we decided we needed milk for breakfast.¹ So of course we stopped at the Piggly-Wiggly where the deli turkey breast was $9.69 per pound…all varieties. Thank you Boar’s Head for forcing your monopoly down my throat. So we nixed the turkey and opted for rotisserie chicken at under $7, got some supplies for sandwiches, salad, and the milk.

My mom, being the prepared mother she is, was kind enough to bring meatballs for dinner so we could save some cash. They were delicious as meatball hogies and saved approximately $75 compared to eating out.

The cellphone reception is terrible in our condo with AT&T. It stutters between “No Service”, “Searching…”, and 1-to-2 bars of signal. Who of us has AT&T? All of us. So I busted out my laptop and got on Skype. Ohh wait…no I didn’t. The cable modem, wireless router, and TV were all unplugged, cords draped across the floor. What was that count?

1) TV
2) Cable Modem
3) Wireless Router

That’s right: 3. How many outlets are there? 2. Spectacular. And…if you wait long enough, the plugs shoot out of the outlet from the magical force known as gravity because that’s just how loose they are.

So the TV remains unplugged as I write this…

Anyway, we fired up Skype and my mom was able to check in with her sister so that at least someone, other than you all (ya’ll…we’re in the deep south, right?), knew we got here safely.

Crap…now my laptop is dying. Better plug it in. Great…after nearly electrocuting myself due to another faulty outlet behind the couch (missing wall plate and not mounted to anything…I can literally hide it in the wall if I want), my laptop is now powered up! Other than electrical outlets, this condo is fairly nice.

“To the beach!”, said Kara. So we went. The pool is nice and is “continuously monitored via webcam”. You know some creepy dude just sits on the other end enjoying the snot out of his job. The beach was also very nice—long, shallow-sloped descent from the dunes to the water. We walked south for about two minutes and quickly changed directions due to the sand-blasting wind buffeting my glasses.

So far, the plan for day 2 is tennis at 7:45 AM, necessary due to ridiculous temperatures, and relaxation at the pool and on the beach until dinner time. Any good suggestions for dinner?

G’night folks!


¹ I’m currently struggling in my life with how to keep the Sabbath holy per God’s commandment (Exodus 20:8-11, Deuteronomy 5:12-15). A person told me that the Sabbath has been abolished since it was a ceremonial law (according to that person) and all ceremonial laws were abolished when Jesus died for us. So Jesus reemphasized some commandments but abolished just that one? Even though Jesus, himself, kept the Sabbath? Anyway, I feel that we are still supposed to keep the Sabbath and I’m finding it very difficult, in the world I live in, to do that. For those that want to contribute, here’s where I stand on what work should be allowed on the Sabbath: God’s work. I realize that’s up for interpretation, but I don’t want to narrow it down to specifics. So, the best example I can come up with currently is vacations on cruise ships. The employees work every single day that you’re on that cruise (at least that’s been my experience on the two cruises I’ve taken which were both one week long). When is their Sabbath? Am I causing them to sin by going on the cruise? Thoughts?

Force Zend Framework to use the index controller by default

July 6, 2010 – 7:13 pm

Maze

Everyone wants pretty URLs these days—both for convenience and to optimize for search engines. So having URLs with unnecessary information is a major no-no. Over the past year I’ve been slowly absorbing the Zend Framework and its MVC pattern. Historically, projects I created required the user to specify the index controller like so:

http://www.mysite.com/index/page

…where “index” is the controller and “page” is the action. Since almost all people will be using the index controller, why is it in the URL? Want to get rid of it? Add the following to your application.ini file in the production section:


# Routes
resources.router.routes.default.route = /:action
resources.router.routes.default.defaults.controller = index
resources.router.routes.default.defaults.action = index

Now your application will use the index controller by default so your URLs will be even prettier:

http://www.mysite.com/page

But wait! What if you need to access a different controller? Maybe an admin controller (or module)? Add this beneath the previous addition:


resources.router.routes.admin.route = /admin/:action
resources.router.routes.admin.defaults.controller = admin
resources.router.routes.admin.defaults.action = index

The downside, of course, is that for each additional controller you create, you’ll need to add these three lines to your application.ini file. Luckily for me, I don’t anticipate having very many controllers.

While this technique may seem obvious, I couldn’t find it anywhere on Google. So, if you’re successfully doing this some other way, please share in the comments.

More on the Zend Framework Router

Create Multiple Windows in Excel

February 16, 2010 – 10:24 am

Excel Logo

Part of my job entails working with multiple Excel spreadsheets simultaneously. You would think with four monitors I would have no trouble. For whatever reason, Microsoft decided that Excel will open all spreadsheets in the same instance of Excel, causing it to be nearly impossible to quickly glance back and forth between sheets.

Here’s the quick fix, thanks to Brian on Google Answers:

  1. Open Windows Explorer (win + E)
  2. Click on Tools -> Folder Options -> File Types -> XLSX -> Advanced -> “Open” -> Edit
    (note, if you’re using an older version of Excel it may be XLS instead of XLSX)
  3. Change “Application used to perform action:” to \EXCEL.EXE” /e “%1″
    (note, you must have quotes around %1)
  4. Uncheck “Use DDE”
  5. Click “OK”

Voila! Now each time you open a spreadsheet from Windows Explorer it will open in an entirely new instance of Microsoft Excel that you can move to another monitor, minimize separately, etc.

Pillars of Faith

February 2, 2010 – 8:51 pm

Last week in our Disciple II class with Jay (scroll down), he asked us to come up with five verses or passages from the Bible that give us hope and sum up why we are Christians.

1. Matthew 17:20

He replied, “Because you have so little faith. Truly I tell you, if you have faith as small as a mustard seed, you can say to this mountain, ‘Move from here to there,’ and it will move. Nothing will be impossible for you.”

I find comfort in that because I realize my faith is ever-growing and yet I can still do things through God already. How much more will I be able to do as my faith continues to mature.

2. Deuteronomy 31:6

“Be strong and courageous. Do not be afraid or terrified because of them, for the Lord your God goes with you; he will never leave you nor forsake you.”

God is always there for us.

3. Psalm 23:6

Surely your goodness and love will follow me all the days of my life, and I will dwell in the house of the Lord forever.

I can’t think of anything better than knowing I will always be in God’s presence.

4. Psalm 100

1 Shout for joy to the Lord, all the earth.

2 Worship the Lord with gladness;
come before him with joyful songs.

3 Know that the Lord is God.
It is he who made us, and we are his;
we are his people, the sheep of his pasture.

4 Enter his gates with thanksgiving
and his courts with praise;
give thanks to him and praise his name.

5 For the Lord is good and his love endures forever;
his faithfulness continues through all generations.

This one speaks for itself.

5. Genesis 1:1

In the beginning God created the heavens and the earth.

We can never forget that God was and is and always will be. It is our duty to glorify Him with our lives.

What are some of your favorite and inspiring Bible verses or passages? Please share them in the comments!

“Twas the Month Before Christmas”

November 19, 2009 – 11:36 pm

A politically correct Christmas poem…sent by a friend.

Twas the month before Christmas
When all through our land,
Not a Christian was praying
Nor taking a stand.

See the PC Police had taken away
The reason for Christmas—no one could say.
The children were told by their schools not to sing,
About shepherds and wise men and angels and things.

It might hurt people’s feelings, the teachers would say—
December 25th is just a “holiday.”
Yet the shoppers were ready with cash, checks and credit,
Pushing folks down to the floor just to get it!

CDs from Madonna, an Xbox, and iPod,
Something was changing, something quite odd!
Retailers promoted Ramadan and Kwanza
In hopes to sell books by Franken & Fonda.

As Targets were hanging their trees upside down
At Lowe’s the word “Christmas” was nowhere to be found.
At K-Mart and Staples and Penney’s and Sears,
You won’t hear the word “Christmas”—it won’t touch your ears.

Inclusive, sensitive, di-ver-si-ty
Are words that were used to intimidate me.
Now Daschle, now Darden, now Sharpton, Wolf Blitzen,
On Boxer, on Rather, on Kerry, on Clinton!

At the top of the Senate there arose such a clatter
To eliminate Jesus in all public matter.
And we spoke not a word, as they took away our faith,
Forbidden to speak of salvation and grace.

The true Gift of Christmas was exchanged and discarded,
The Reason for the Season, stopped before it started.
So as you celebrate “winter break” under your “dream tree,”
Sipping your Starbucks, listen to me.

Choose your words carefully, choose what you say,
Shout MERRY CHRISTMAS…not Happy Holiday!

– Anonymous Author

Caching With Zend Framework Using Zend_Cache

August 17, 2009 – 8:18 pm

Cheeks Blowing

Today I taught myself how to use Zend_Cache and implemented it within 20 minutes. It’s super easy and very effective. Take a look at the code sample below and you’ll be up and running in no time.

 

Step 1: Setup the Cache

$frontendOptions = array(
	'lifetime' => 180,	// Cache for 3 minutes
	'automatic_serialization' => true

);
$backendOptions = array('cache_dir' => dirname(__FILE__) . '/cache/');
$cache = Zend_Cache::factory(
	'Core',
	'File',
	$frontendOptions,
	$backendOptions);

Step 2: Use the Cache

$data = null;

if(!$data = $cache->load('data'))
{
	$service = new Service(API_KEY);
	$result = $service->generateReport();
	$data = $service->getReport();
	$cache->save($data, 'data');
}

else

{
	print("Cache Hit!");
}

The page load time went from about 9 seconds to 0.5 seconds! 18x faster and it only took a few lines of code. Awesome.

My main motivation for caching the data ($data in the code example) was actually to reduce the load on the web service which provides the data. We have a good relationship with the company providing the service but there’s a good chance they would become annoyed if we hammered their system to get the exact same data over and over. The load time improvement was a good side effect, though!

For more information on Zend_Cache which comes with the Zend Framework, check out the reference guide and API documentation.