Skip to content

Syriana Sucks!

Dear Reader,

The title says most everything I wanted to say, except this. I think the wrong people are directing movies. Let the guy that makes the trailers make the movies. The trailer for Syriana looked great. Even though I knew it wasn’t. There is an inverse relationship to the quality of a movie and the number of high-profile actors in it. That plus the fact that the star produced this cinematic crap-fest.

Save your money. Sit at home for 2 hours with the remote control and watch 2 minutes of random TV shows hoping that the plots will somehow come together. Then turn on the lights and walk out of the room disapointed because they didn’t.

Until next time, it was good to hear your voice today.
(l)(k)(bunny)
=C=

Time for a few Nana Images

Dear Reader,

I’m in a reminiscing mode so I’ll take a break from programming to share a few mental images I’ve collected over the years of my Nana. These aren’t stories…just memory fragments.

Nana sold “World Book” Encyclopedias (think dead-tree wikipedia) for a long time. She also drove a Forrest green Olds 442 with white leather interior. It’s no wonder she won”Top Salesman” more than once. In that car she could cover more ground! (Given Pop’s life-long hobby of collecting grease, he was only allowed in the car on Sundays or when he was working on it.) :)

Nana is into her 90’s but still has the energy to visit ‘the old folks’ at the nursing home every week like she’s been doing for 20 years. I’ve just got to wonder how old these people are!

My Nana is a staunch Conservative and one of the most God-fearing women I have ever met. The night before my wedding she told me to make sure that Kathy had a nighty with fur around the bottom…to keep her neck warm.

Nana gave us so much but the one thing I remember her for more than anything is “Jesus’ birthday cake.” We still do that every year at our house, just like she taught us to. Christmas isn’t about presents, it’s about yellow-cake w/chocolate icing.

Nana grew up in a vastly different generation than I did. She can dye her own hair…sew anything that Donna Karen can design, and I’ve seen her grow her own vegetables for many years. Honestly, I believe she could spot-weld if she had to. It’s too bad that my generation has lost a lot of the generalization that her generation had. If my car doesn’t start, I call someone…Nana rebuilds the engine.

Summer at Nana’s consisted of 3 things. Swimming, great hamburgers in plentiful supply, and fighting with my cousin’s and sister. Good times….Good times.

I don’t drink a lot mainly because of Nana. When I was 18, I moved to Orlando and lived with them while working at Disney. One night we had an impromptu party after work. I woke up the next morning still at the party. I finally made it home but was too sick to stay upright for more than about 5 minutes at a time. Once I could sit up and talk, Nana made me tell her about it. Nothing more humiliating than having to explain to your sweet grandmother how you got totally ‘faced. Every since then I’ve tempered my drinking.

Every Christmas we drove from wherever we were (Charlotte, Miami, Mobile) to Orlando for Christmas. Many years we arrived in the middle of the night. Regardless of the time of arrival, it always coincided with a chocolate pie coming out of the oven. There were already 2-3 on the table of course but I always remember her pulling one out of the oven soon after we arrived.

Upon arrival every year for Christmas we were greeting by the same artificial tree. An entire generation has come and gone but this artificial tree, with it’s 1950’s Christmas lights permanently melted into the plastic pine needles, still stands. The last time I saw it it was looking a bit mangie…patches of needles gone in some places…but it’s still one of my favorite Christmas images.

I remember one year traveling – I guess to Miami – with my sister and brother and Nan and Pop. I remember going through the Everglades. We were all real little. I was the oldest and I couldn’t have been more than 6. We took turns sleeping, one in the back window, one on the seat and one ‘on the hump’. (The floorboard of the car) I had a little cigar box full of bubblegum I bought at a gas station. It was my treasure chest. That was one hot trip.

Until I was 14 my favorite seat at Nana’s was the highchair.

Nan and Pop’s house was the setting for ‘The Young Boy and the Sea’.

But there are 2 overriding images in my mind when I think of Nana, food and Jesus. She always made sure we were full and she always made sure we knew who to thank for that. (and it was NEVER her!) Thank you Nana, I love you.

Until next time, the weekend is here and you aren’t.
(l)(k)(bunny)
=C=

My First WordPress Plugin!

Dear Reader,

I looked up at the clock last night and it was midnight. I’d been tinkering with this idea for 5 hours without stopping. (God, I love it when I get a burr under my saddle!) You programmers in the audience will know what I mean.

This is not an original idea. I saw the guys at Zimbra demo this feature in their mail client at Web 2.0. It struck me as a cool and easy to implement idea. So I set about implementing it. I first did it manually on my resume…just because I start all good projects with my resume. Once I had it working I decided I wanted it in my blog but I really didn’t feel like going back and retrofitting all the URLS with the mouseOver and mouse Out attributes. So I decided a plug-in was in order.

Also, I wanted to see how easy it was to write a WordPress plug-in. My hat is off to you guys. The plug-in was the easiest part of the whole task. Actually getting both IE and FF to play nice was the hard part! When I implemented it on my resume, the JavaScript code to find the current mouse position in IE was:


posx = e.clientX + document.body.scrollLeft;
posy = e.clientY + document.body.scrollTop;

For some reason in the WP environment, that does not work. I had to modify it to say:


posx = e.clientX + document.documentElement.scrollLeft;
posy = e.clientY + document.documentElement.scrollTop;

I’m not sure why it worked in one environment and not the other so I’m gonna research that. Other than that it was pretty easy and a fun way to kill an evening! (Well, I stopped for Veronica Mars but c’mon…who wouldn’t!)

Anyhow, here it is if you want to implement it on your own blog.

Until next time, it’s cold here too…just not AS cold. :)

(l)(k)(bunny)
=C=

Happy Birthday Pop!

Dear Reader,

Dang it, the ONE family Birthday I know, I forgot to blog. Sorry it’s so late Pop but Happy Birthday anyhow. Hope you have/had a wonderful day puttering in the garage.

For those of you who do not know him, Pop, my maternal grandfather, has the worlds largest collection of grease. He conveniently stores it on his tools, clothing, car-seats, just about any surface in the garage. As a matter of fact, any surface that is in his garage more than 5 minutes will be used to help store his collection.

Till next time, time is short now angel.

(l)(k)(bunny)
=C=

Building a “Tag Cloud” in PHP

Dear Reader,

Just a few more and I promise I’ll get off the programming kick. I was working on my AJAX based resume last night (what, doesn’t everybody have one?) and got everything but the Skill Cloud” done. My idea of a skill cloud comes from the latest toy that people are deploying on the web, tag clouds. It seemed to me that it should be pretty straight forward to create one and so I dove off the board before making sure there was water in the pool.

Not being very good at math, I was struggling with how to take my list of x skills and evenly space them into a maximum of 10 categories. (tagcloud_1 – tagcloud_10) Here’s a quick rundown of what I came up with.

My data set is my list of skills deployed at a given company. Each bullet point for a company has a list of skills attached to it. Each skill has a weight that is determined by how proficient I am at that particular skill. (1=nubie…10=demigod) For each company, I gather the list of skills I used and sum their weights. For those of you in the valley, I will explain. If I used FoxPro on 3 bullet points in a job and my FoxPro weight is 10 (which it is) then my FoxPro score for this job will be 30. If I also used Java on 1 bullet point at this job and my Java weight is 1 (which it is) then my Java weight for this job will be 1.


$ceiling = 1;
$floor   = 99999999;

First, compute the boundaries of the current weights. I thought about using array_walk in this situation but I eventually want to OOpify it and I’m not sure if array_walk can play nice in an OOP world.


for($lcvA=0;$lcvA<count ($rsArray);$lcvA++)
{
	$ceiling = ($rsArray[$lcvA]['weight']>$celing
		?$rsArray[$lcvA]['weight']
		:$ceiling);
	$floor  = ($rsArray[$lcvA]['weight']<$floor
		?$rsArray[$lcvA]['weight']
		:$floor);
} // for($lcvA=0;$lcvA<count($rsArray);$lcvA++)

Now get the spread. The spread is the difference between the ceiling and the floor.


$difference = ($ceiling-$floor);

Ok, now break the spread into 9 different buckets. We already know what 1 is, it’s the floor. Since we want a total of 10 total categories we divide the spread by 9.


$increment = $difference/9;

Finally, take the current weight for each item and shove it into the proper bucket.


for($lcvA=0;$lcvA<count ($rsArray);$lcvA++)
{
	$rsArray[$lcvA]['weight'] = 
		intval(($rsArray[$lcvA]['weight']-$floor)/$increment)+1;
} // for($lcvA=0;$lcvA<count($rsArray);$lcvA++)

That’s it. Now the array contains weights that are comparable to their original weights but are in the range of 1-10. Now in the output, I use a span tag to wrap each skill and the ID of the span tag is tagcloud_x where X is the weight. Add 10 IDs to my style sheet and it’s done. This code is overly verbose mainly because I’m using it as an example. Also, please forgive my lack of OOP. Version 2 will be OOpier, I promise!

Here are the styles I added to mine for reference.


#tagcloud_1 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:16;
} 

#tagcloud_2 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:16;
	font-weight: bold;
} 

#tagcloud_3 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:16;
	font-style: italic;
	font-weight: bold;
} 

#tagcloud_4 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:20;
} 

#tagcloud_5 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:20;
	font-weight: bold;
} 

#tagcloud_6 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:20;
	font-style: italic;
	font-weight: bold;
} 

#tagcloud_7 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:24;
} 

#tagcloud_8 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:24;
	font-weight: bold;
} 

#tagcloud_9 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:24;
	font-style: italic;
	font-weight: bold;
} 

#tagcloud_10 
{
	font-family: Arial, verdana, sans-serif; 
	font-size:28;
} 

Until next time, love you bunches,
(l)(k)(bunny)
=C=