Jack Kapanka

Weekend Birthday Bash

Send to Kindle

Our friends from Richmond came up to spend a very special birthday weekend with us in NYC. They were supposed arrive at our apartment by 10am on Friday. That didn’t happen. There were significant snow flurries in NYC (nothing stuck), and the navigation system on the airplane was unable to make an instrument landing at LaGuardia, so while they were descending in NY, they we rerouted to Philadelphia.

I was tracking the flight in real-time and saw that it landed safely. I just didn’t realize it wasn’t anywhere near us… They ended up catching a 12:05pm flight from Philadelphia to LaGuardia, which got in at around 1pm, but that was enough for us to have rejigger Friday’s plans.

We had a blowout lunch scheduled for Rock-N-Sake. I have only eaten there once before, and loved it. I was really looking forward to introducing them to it. We ended up having to cancel that reservation (because they close at 2:30pm and reopen at 5:30pm). Instead, we went up to see Laura at her office and grabbed a light (and very fresh) lunch at Chop’t (a place I was interested in trying after hearing Laura speak highly of it).

(It’s been a long while since I’ve mentioned that clicking on any photo in any of my posts will display a larger image in a separate window/tab, so I’ll mention it again, now.) 🙂

Chop't

Chop't

We walked back to the apartment after lunch and relaxed for a bit. Not too long thereafter, we headed up toward Lincoln Center for dinner. We had tickets to South Pacific at the Vivian Beaumont Theater for an 8pm show and we wanted to eat in the neighborhood. I searched the web and read a ton of reviews, and settled on an Indian restaurant called Sapphire.

We met Laura there. Unfortunately, Chris got hung up at work, and ended up joining us just as we ordered dessert. The food at Sapphire was simply extraordinary. The four of us who ate the Tandoori lamb all claimed that it was the best lamb we ever had. All of the other dishes were superb as well. As much as we were all looking forward to Rock-N-Sake for lunch, if we had eaten there, we would have opted for a very light dinner, and would not have discovered this jewel!

Saffron Shrimp

Saffron Shrimp

Sapphire Indian Cuisine

Sapphire Indian Cuisine

From there we walked over to see South Pacific. Laura thought of this as a special birthday gift for her dad, given his love for this show. She made a perfect choice, because love it he did! The two leads are exceptional. Interestingly, neither of the leads that we saw are the Tony winning actors. Kelli O’Hara left the show on March 7th and Paulo Szot took two month-long leaves, the second of which occurred during our show. Laura Osnes played Nellie Forbush, and David Pittsinger played Emile de Becque.

South Pacific

South Pacific

I suspect that Bob loved this show more than Wicked. As much as I enjoyed South Pacific, for me personally, there’s little comparison to Wicked. Since this was Bob’s birthday bash and not mine, South Pacific was the perfect choice! 🙂

When we got back, Lois and I conked out while the rest of them stayed up way too late watching the NCAA tournament.

Saturday morning we had breakfast outside on our deck. It was chilly, but the sun helped make it not-too-unpleasant. This was our first meal outside in 2009, so it was very special in that respect as well. As much as I love restaurant dining, there are few more special places to have a meal than our deck at the apartment, so I’m glad that the season is finally underway. 😉

Deck Breakfast

Deck Breakfast

After letting the food settle, Sally, Bob, Chris and I went for a long walk. Lois took care of things around the apartment, and Laura baked her magical Apple Pie for a birthday dessert. After walking roughly 2.5 miles, the three of them broke off and headed back to the apartment, making for a five mile walk in total. I continued on my normal walk, roughly 8.25 miles in total.

Mid-afternoon, we decided to foist our presents on Bob. He opened a bunch, one-by-one, but he had no idea what was in store for him as his special gift. After he thought it was all over, we broke out a package of gifts, specially created by his family and friends. In fact, it’s so cool that I will be devoting an entire post to it later on (could be as much as a week from now), but I’ll describe it briefly here as well.

We took a song by Colin Hay called What Would Bob Do, and seven of us wrote our own verses about our Bob. We then had it recorded by Jack Kapanka over a simple background acoustic guitar. We sent 100’s of photos to Jack, who put together a wonderful video synchronized to the words and music. He then produced a DVD of the movie/music. The song is 10 minutes long (we wrote lots of verses), and the result was phenomenal.

The six of us watched the DVD at least five times between Saturday and Sunday, and got a huge kick of out of it each and every time. In addition to the video, Lois created a book with the lyrics and photos, and some song-sheets with the lyrics as well. The full package was a wonderfully creative custom gift for a very special person, celebrating his life (to date) and his amazing accomplishments.

Watching the DVD

Watching the DVD

Like I said, more on this specific topic in about a week. 🙂

Right after viewing the DVD a number of times, we walked up to our favorite restaurant, the Peking Duck House. We had a fabulous meal (as always), and waddled back to the apartment.

Duck House

Duck House

We all gathered in Laura and Chris’ apartment to watch the Duke game, and couldn’t wait for half time to dig in to the Apple Pie. Again, Lois and I called it an early night, and the rest of them continued on with more NCAA action.

Apple Pie

Apple Pie

On Sunday morning, the four of them had breakfast out, and then walked up to attend church services. We then all met up outside of Joe’s Pub at 12:45pm. We had tickets for a 2pm show for Eden Espinosa. This was her solo debut in NYC. Of the many Elphaba’s we’ve seen in Wicked, Eden was by far our favorite, so we were really looking forward to see her at our favorite club.

We had a nice lunch before the show, and she came on, with a five-piece band at about 2:05pm. She has a fantastic voice, with a surprising range (she hits incredibly high notes, with amazing power, and sustains them, even though you think, or at least I think, she’ll miss them). It was a real treat to see her, though I have some small nits to pick with the show.

Eden Espinosa

Eden Espinosa

The volume on the band was too high. They are superb musicians, and there was no distortion, but the place is too small to play that many pieces at that volume. While you could make out Eden’s voice even at the maximum volume of the group, that’s sheerly a testimony to how hard she was belting it out (and sweating as a result, even though it was on the cool side in the club).

Thankfully, she also did quite a number of songs with only the electric piano or acoustic guitar for accompaniment, so it wasn’t all top-of-the-lungs all the time. That brings me to my second nit. Song selection. While she’s great at the full range of songs she sang, I so much more enjoyed the ones with solo accompaniment (not just because of the volume). I don’t think she needs to prove her rock capabilities, at least not in a place as small as Joe’s.

She had a surprise guest, Katie Thompson. She came out and did a solo number, accompanying herself on the electric piano, called What Turns You On (available on the MySpace page linked above). She has one of the better voices we’ve heard, and she plays the piano marvelously as well. It was a real treat. After that, she played another of her songs, and Eden sang along with her, a bit of harmony (beautiful), but mostly alternating verses.

Katie Thompson

Katie Thompson

They played a third song together (with the rest of the band accompanying them as well), and then Katie left the stage.

Eden closed the show with an encore, singing Defying Gravity. We would have been disappointed to miss this one, so we were grateful that she came back out and gave us a taste of Wicked. 🙂

Even with the nits, I was very glad to see her (and discover Katie), and I suspect that I was more critical of the show than the rest of our guests, which is also a good thing!

Lois Eden Laura

Lois Eden Laura

Bob Eden Espinosa

Bob Eden Espinosa

Katie Bob Hadar Lois

Katie Bob Hadar Lois

Laura Bob Sally Chris Hadar

Laura Bob Sally Chris Hadar

Three of us headed back to the apartment to relax, and three more headed to B&H for some browsing (in anticipation of future camera shopping). We all met up at the apartment for a little more snacking on Apple Pie and Cupcakes (and two people even had some shrimp), watched the DVD again, and then we headed out.

We dropped Bob and Sally back at LaGuardia, then headed up to the house. Other than being colder than predicted, and the nuisance of being routed to Philadelphia at the beginning of the trip, it was a picture-perfect weekend, and we hope Bob enjoyed his birthday blowout a fraction as much as we did!

Happy Birthday Bob!

Two Flew South

Send to Kindle

Lois asked me to name this post Two Flew South. She had a good reason, it was clever, so I didn’t hesitate in accepting her suggestion. Let’s not make it a habit though. This is my blog, not hers, and I intend to keep it that way. Of course, all of the photos are taken by her, so we’re partners in this, as we are in everything else in life. 🙂

Vacation is not a word that Lois or I use often. Even when we have a few days where we aren’t technically working, at least Lois (less so me), is working the Treo non-stop, and thinking about work issues non-stop as well. I’m better than she is at shutting that off, but I get sucked in, since I’m with her…

We’re on a two-week road trip at the moment, which is most definitely a vacation for me. Parts of it are even a vacation for Lois, though nowhere near the level that I am enjoying it. Since the road trip is mostly southbound, and there are two of us in the car, the title Two Flew South seems appropriate. It turns out it’s not the specific inspiration for the title (that’s coming later), but that’s why it was so easy to agree on.

The trip started nearly two weeks ago when we left NY and spent the day with our friends in Leesburg. We always have such a great time with them, even though seeing the dad suffer through his cancer treatments is heartbreaking. We then spent a week working at Zope.

Leesburg Friends

Leesburg Friends

We spent last weekend with our friends in Richmond, including a fantastic Super Bowl party at another friend’s house (10 of us enjoyed the game together). I was the only one rooting for the Steelers. That said, I really like Kurt Warner a lot, and wouldn’t have minded seeing him snag the victory. That made the last quarter all-the-more exciting, since the outcome was truly in doubt. A great game all around!

Richmond Friends

Richmond Friends

Super Bowl Party 1

Super Bowl Party 1

Super Bowl Party 2

Super Bowl Party 2

At 6:50am on Monday, we were on the road, officially on vacation (there’s that word again, I’m liking it a lot). 😉

We were headed straight for Nashville. On Ocotber 29th, 2008, we saw one of our many CMA Song Writer Series shows at Joe’s Pub. While the entire show was fantastic, we both were really blown away by Hillary Lindsey, and I highlighted that fact in a post the next day. Through that post, I ended up with an email relationship with a wonderful woman who lives and works in Nashville.

Through that email relationship, we had arranged to meet for dinner on Monday night. We had never even spoken on the phone, a true e-relationship. We asked her to select the restuarant. We met at 7pm at Tin Angel. We had the most wonderful evening. She’s a fascinating person and she picked an excellent restaurant (we all loved our meals). We ended up spending nearly three hours together, and we will definitely look her up the next time we’re in Nashville, and hope she does the same when she’s in NY!

New Nashville Friend

New Nashville Friend

The next day was carved out in advance to be spent with our good friend Jack Kapanka. It was freezing all over the south, Nashville included, so we decided in advance to see the sites from Jack’s car, rather than walk around the city. Jack picked us up at our hotel, and zigged and zagged all around Nashville, telling us about every building as we passed it. I loved every second of it!

We also took a long ride in the countryside, to and through Franklin, TN, gawking at mansion after mansion (they don’t call it Mansion Hill for nothing). We had lunch at a Pub in town (I should have written down the name, because we all really enjoyed our meals!). When we left, three men were approaching us (from quite a distance). Jack immediately recognized the middle man as James Otto. As we walked by them (they were headed to a Sushi restaurant for lunch) Lois casually said “Hi”, and James said hi back, so Lois can officially say that James Otto said hi to her. 😉

One Mansion

One Mansion

We then headed for Jack’s house, catching some incredible scenery along the way (including a bridge that isn’t obviously a bridge, until you’re on it, at which point everything around you is breathtakingly beautiful.

We had met Jack in person before, but this was the first time we were meeting his family. When we got to his house, his wife and toddler twins were there (the older girls were still in school). It’s hard to describe how/why you know you’ll be life-long friends with someone the instant you meet them, but there’s no doubt that this will be the case between us and Jack’s wife.

Jack's Wife

Jack's Wife

She’s an awesome person in her own right, on every level, but she might also be the best mom we’ve ever observed. That’s saying an awful lot, considering that our Richmond friends include a number of near-perfect moms (our godchildrens’ mom heading that list!). Lois can describe it better than I can, but no matter what’s going on around her, Jack’s wife exudes a strength and calmness, that nearly instantly tames all of those around her (her kids included!).

After meeting the older girls, and hanging for a bit, Jack and I took the oldest daughter and took a tour of their home town. Jack had been telling me for a while about another resident of the town, someone he had met in his church. He really wanted us to meet, so we stopped by his house. It took me all of 10 seconds to know how wonderful this man is, and why Jack likes him so much. We chatted for 20 minutes and then headed back to Jack’s house.

Jack and Older Daughters

Jack and Older Daughters

Shortly after getting back, we took two cars and headed to dinner with the entire family. We had an excellent meal at the Applebees right near our hotel. We said goodnight and were missing all of them by the time we were up in our room. Thanks for a wonderful day to all of the Kapankas! 🙂

Jack and Twins

Jack and Twins

The baby girl does fist bumps on cue!

Fist Bumping Baby

Fist Bumping Baby

On Wednesday morning, we worked in the room a bit, catching up on a ton of emails, then hit the road again. This time, our destination was Atlanta. We got there mid-afternoon, checked into the hotel, and did a bit more work.

At 5:30pm we headed over to a friend’s house. A number of our Atlanta friends also came over and we had an extraordinary home cooked meal. We brought wine from NY, and were really afraid (sure might be a better word) that it would spoil due to the extreme temperature swings throughout the trip (it was 19 degrees that morning in Nashville and Atlanta). Amazingly, the wine tasted yummy to me (and I hope our friends agreed).

Home Made Feast

Home Made Feast

Incredible Pie

Incredible Pie

The next morning we got together with a subset of the same folks we were with the night before for an incredible breakfast at Rise-N-Dine. It’s quite unusual to have an appetizer during breakfast, but we all split three Sweet Potato Pancakes as one. Wow. They were amazing, and I knew I would love my Polish Omelette as well (and I was correct!).

We said our sad goodbyes, lamenting that this wonderful whirlwind 18 hours was ending, and we hit the road for Birmingham to visit our godson. We settled into our hotel in Birmingham, and caught up with some more work. When David called to say he was on the way home from the hospital, we were thrilled to log off and head over to see him.

After catching up for a bit in his apartment, we headed for dinner at Jim ‘N Nicks BBQ. I didn’t realize it was a chain until I just looked it up. It’s a beautiful place. The service was excellent. All that is nice, but get to the food Hadar! Man, it was unbelievable. They start you off with homemade corn muffins that are infused with cheese (subtle, but delectable) that melt in your mouth.

Feeding the Meter

Feeding the Meter

David and I both had the Pulled Pork platter, and Lois had Smoked Chicken that she raved about. We capped it off with some Starbucks and headed back to David’s to cath up on Lost. We were two episodes behind, but David was happy to watch the one he had seen already again, and then he too got to watch the new one from the night before. We’re all caught up now, and anxiously awaiting the next few episodes. The excitement is back (it never left for me, but Lois is into this season more than last year’s).

Being a first-year resident, David is one rung above an indentured slave. Today is one of his all-too-regular 30-hour calls (he leaves early in the morning for the hospital, and doesn’t return until the following afternoon!). That meant we were on own own today. We headed to his apartment after breakfast and set up our computers for more catching up (he was long gone, and yes, it’s still a vacation). 😉

Just before lunch, we headed out for a shopping spree. Being godparents, we had a severe need to populate every empty space in David’s apartment with useful things (OK, so it was really more of Lois’ maternal instincts, but I was happy to play along). We bought a bunch of stuff at Bed Bath and Beyond. Then I dropped Lois at Costco and headed to have lunch by myself.

When we were last in Birmingham, we had another of our friends along with us, Wes. During that trip, both Wes and David told us that their favorite fast-food place is Chick-Fil-A. They couldn’t believe that I had never been in one. We had an aborted attempt to have lunch from there one day (my fault). After the trip, Wes sent us a Chick-Fil-A gift card (thanks again Wes!) to ensure that we made it our business to check it out.

Amazingly, in two consecutive trips to Zope, we were unable to schedule a visit to any of the Chick-Fil-A’s, including the one that is 1/4 of a mile from our hotel! I was determined to make it to one on this trip, and this seemed to be the most opportune time.

So, I drove 1/4 of a mile from Costco and ate a #1 meal in the place. It was excellent, so I now understand why many people rave about Chick-Fil-A (since Wes and David, at least five additional friends have told me that they consider it the best fast-food place). Considering that I still have a couple more meals left on the gift card, I will be thanking Wes again (and again). 🙂

I wandered into the Costco, and was surprised that I didn’t have too much trouble finding Lois, even though she was in the diagonally opposite corner from the main entrance (a very long walk!). She was just about done, so we both were impressed with the timing of my arrival. You would not believe how much stuff she bought. Of course, you might, given that I got to drive to Chick-Fil-A, eat a meal there, and get back, before she was done shopping. 🙂

When we got back, we experienced a few weeks worth of weight-lifting exercise. There is a very steep set of stairs outside of David’s apartment complex, then two more landings inside to get to his unit. We lugged all of the booty up over the course of four or five trips. Given how cold it had been on this trip, I had forgotten that sweating was possible. In addition to the manual labor, the weather broke today, and it was 60 degrees while we were unpacking.

While I am finishing this blog, Lois is on the phone with a Zope engineer, working away (is anyone surprised?). We will relax the rest of the evening (a little late night shopping is on the current agenda, but not for David this time). We can’t wait to see David again tomorrow afternoon (or more appropriately, after his obligatory nap!).

So, what’s left to say? Just the real explanation of the title of the blog.

In addition to listening to a ton of music (live and on the iPod), Lois also reads about music a lot. When something sounds like she would like it, she makes a note. A few times a year, she emails a list to me telling me that the time has come to place a large order. Lois really prefers physical CDs, largely for the liner notes, and I prefer downloads, both because they are cheaper (typically) and immediate (always).

One of the groups that she had on her list was One Flew South. I downloaded it a while ago, but for any number of reasons, we hadn’t listened to it (or most of the others on her most recent list). During this trip, Lois fired up One Flew South. Instant love. Lois thought there were nine voices (the harmonies are so rich), but it turns out that it’s only three guys.

Lois usually zones in on a handful of songs on a CD and she plays them over-and-over, to the exclusion of the others. This happened on this CD as well, and the ones that sang to her, have been listened to more than I would care to admit.

So, after hearing them for the umpteenth time, Lois said, “When you blog, please title it Two Flew South“, and it was so. 🙂

One more week to go on this road trip, and I intend to savor every single moment!

Rebuilding jackkapanka.com

Send to Kindle

I have written twice now about taking over the maintenance of Jack Kapanka’s website. There were three distinct phases of working on the site:

  1. Fix the broken links
  2. Change the home and store pages (adding PayPal support)
  3. Redesign (rebuild) the site from scratch

All three phases are now done, though there is no trace of #1 or #2 left, now that #3 is complete.

I have zero design skills. I have very limited experience building websites. Therefore, I struggled mightily along the way. I had to Google my brains out, and still had a number of false starts and long debugging sessions.

So, I decided to write this post for two reasons:

  1. I’m sure I’ll be building other sites in the future, and I could easily forget some of the things I discovered along the way
  2. While everything I did was discovered through the web, I found different bits on different sites, so I might save some poor soul a few minutes in the future if they stumble on this post

I did not take notes along the way, so this will most definitely not be exhaustive. If I later recall anything that is material, I wll come back and update this, again, just for posterity.

The site I inherited was being hosted on a shared system, running Windows Server, with IIS serving up the pages. As far as I know, I have no access to the IIS instance (which is likely shared, though I don’t really know). I have no shell access, just web and FTP.

The site was coded a long time ago, was optimized for 800×600 resolution, and was stitched together with a complex web of HTML tables, with images in different cells, which had been sliced up from original PSD files, to create a look and feel. Everything was an image, but they weren’t uniform in size. Some spanned multiple columns, other multiple rows, etc. Rearranging anything on the stite was a nightmare (for me, with my limited skills!).

The menu system was 100% JavaScript (JS). Each menu item had an image background, with the top level menus having images for the labels. Many other navigation elements on the site were JS-based, giving little or no feedback to the user that clicking would take them somewhere. There were no scroll bars for any long content (like the Bio), as they wanted the neatness of an 800×600 design, so you paged a few paragraphs at a time with JS controls.

Having nothing to do with code, the site was typical of many artist sites, very dark (in this case brown), and completely image-laden. I am sure that they think it’s edgy and cool, and perhaps it is. That said, it’s also often hard for people (especially older people, who might actually have disposable income) to see well or navigate. Lois and I prefer lighter themes, with less images, when possible.

Many of the links on the site were broken, and the reasons varied (target was missing, link had a typo, target was renamed, but still existed on the site, etc.). Some of the important content needed to be updated to reflect updated contact info and to correct typos as well.

So, the first sweep of the site was straightforward, but painful. I fixed the broken links and the content. The only thing that made that painful was tracking down the right targets or deleting the links, and finding the content which was buried deep within nested tables, while ensuring that I didn’t disturb the flow in the small viewport.

Once the site was stabilized, the next priority was getting a PayPal button on the site, and an embedded YouTube video of Angel In My Arms (perhaps Jack’s most famous and successful song) right on the front page. Most people who visit the site are looking for that, and for the ability to purchase a copy to use for the Father/Daughter dance at their wedding.

I had never incorporated PayPal into any site before, but this turned out to be the easiest part by far. Once you have a PayPal account, which Jack did, you basically log on to your account there and fill in a small form and they generate a button and the associated code that you simply cut and paste into your site. It just worked, the first time.

Embedding the video on the home page was much more painful. I didn’t have the skill (HTML or image manipulation) to embed it into the existing table structure, possibly requiring a different slicing and dicing of the background images. I wrote a separate post about Table2CSS describing this amazing tool that helped me accomplish that. Basically, Table2CSS turned the home page into a CSS-based page (no tables whatsoever), with every cell from the original table becoming a named DIV.

This allowed me to position things with much greater accuracy, at the CSS level, without having to worry about spanning rows and columns. As I said in that post, this is not a good way to code a production site, but it was the perfect way to quickly accomplish my goal, and buy myself time to consider the real redesign.

Once that was done, I was ready to consider the new site. I have direct experience with two systems for building websites: Zope and WordPress. Opticality.com is built in Zope, and this blog is built in WordPress. Both of those systems are designed to produce pages dynamically, assembling the pieces with programming logic and content that is typically stored in a database. They offer tremendous power. Zope and WordPress are but two of dozens of extremely popular Content Management Systems (CMS). They are designed to handle this exact type of problem.

Unfortunately, they are also typically designed to run in a slightly higher-grade hosting account (shared is still fine), with WordPress being more available on some lower-level hosting accounts. Neither seemed to be a good option for this account, and I didn’t want to be one of those people who told Jack “You have to upgrade your account, because I have a hammer, and therefore all problems are nails…”

Also, while I wanted/needed the benefit of a template-based solution (on the existing site, the JS-based menu was embedded directly in 50+ static HTML files!), it didn’t need to be a dynamic template system, since for the first cut, there was no need for personalization (i.e., different users don’t get different views of the same URL).

So, the first two decisions that I made (after way too much Googling, reading and a bit of experimenting) was to select the YUI Grids CSS for the base CSS layout engine and the htp: HTML pre-processor for the static templating system. The live site uses both, so those initial decisions stuck. That said, along the way, the YUI Grids frustrated me enough that I nearly bagged it, and went so far as to implement another one before switching back.

The entire YUI system (of which Grids is but one small piece) is very powerful, elegant, and well-documented. Unfortunately, I didn’t want to have to read for days, to create a simple layout, so I didn’t. In not reading, I missed one crucial piece, which none of the examples or Layout generators included. As a result, while the layout looked exactly like I wanted it to, the reset portion of the Grids system (amazingly, I actually knew what that meant) 😉 wiped out all styles. So, lists didn’t look like lists. Headings didn’t look different than normal text, etc.

Fixing it turned out to be trivial, but not when I had no clue as to what was going on. The fix meant including just one more YUI component, Base (which redefines all of the various HTML elements to a sane default that Yahoo feels works well in most browsers). I agree, and for the most part have kept their defaults, but I was pulling out my remaining single hair until I realized what I was missing.

I looked at a number of template systems, and I am completely used to the concept of templates in both Zope and WordPress. This was the first time I used a static template system. Basically, you assemble the final production page from a variety of different inputs (page fragments that can be stored in separate files, variables, blocks, etc.). You run the preprocessor on a template input file, and create the resulting static HTML file to be put on the live site.

HTP is quite powerful, yet unbelievably simple to use for the use-case that I had. I couldn’t be happier with my choice in that regard. I have a single master template for the entire site (at the moment). That one template includes a number of different files: the head section of each page (where CSS files are referenced, etc.), the header (where the Jack Kapanka graphic is placed on every page), the menu (so that I can change the menu in one place and regenerate all of the pages with a single command!) and the footer. The template then references variables and variable blocks, which fill in the title of each page and the main content and right sidebar content.

I can restructure the entire site (navigation or look-and-feel) simply, or change the content or sidebar for any individual page just as easily.

To make my life easier, after struggling for a while, I gave up on trying to pin the footer to the bottom of the actual browser page. Not only do I know that this can be done (I found many excellent working examples of how to do this), I have even done it before on other projects. What I couldn’t do was get it to work within the confines of the YUI Grids CSS, without reading tons of stuff. I just gave up, and put in scrolling content in the main viewport, ensuring that no page was too large. I’m not thrilled with the result, but it got me to where I wanted to be much more quickly, so the tradeoff was reasonable (from my personal perspective).

Aside from the YUI CSS, there are only two other CSS files. One for the menus and the other for the content. Pretty simple to maintain and both are relatively small.

Because I am sensitive to people who have poor vision (after all, I live with someone who is essentially legally blind), I coded the various CSS elements to be sized in ems, rather than pxs. This way, if people resize the content by pressing Ctrl+ or Ctrl-, the page resizes fairly elegantly (at least it did for my hundreds of tests on four different browsers, YMMV).

Finally, I also tracked down a flash-based MP3 streaming embeddable object (the first one that I used worked fine in all but IE), and used that to stream the 30-60 second snippets of a variety of Jack’s wonderful songs.

Right before making the site live, I considered that I was putting up a vastly reduced number of pages as well as renaming some basic pages from .htm to .html. That meant that links that people had bookmarked, or perhaps more importantly search engine indexes, would break on nearly every page. That just didn’t feel right.

Redirecting would be trivial in a real CMS, where the headers get spit out by the CMS, and writing logic to catch all missing pages (404s) is generally built in or trivial to write. That wasn’t the case here, and there were roughly 30-40 pages that needed to be redirected (not necessarily to a direct replacement page, but to one of a variety of catch-all pages for each category).

I found the answer on a number of sites. It involved making a directory called XXX.htm (for example). In that directory you create a single file called default.asp. In that file is a tiny VBScript that calls two functions that redirect the page. It was trivial, though tedious to do for all 30+ pages.

I’m sure I’m leaving tons of stuff out (e.g., along the way, to debug the CSS, I ended up installing the Firefox plugin called “Web Developer”, which very nicely complemented Firebug). It was a godsend to be able to change CSS on the fly, and see the result in real-time in the browser window. I also made very heavy use of the JS Console window in both Google Chrome and Safarai (on Windows). They are very similar (with Safari being more sophisticated, but Chrome being much faster).

Like I said above, if I realize that I’ve left out something material, I’ll come back and edit this in the future…

Image Rich Lyrics

Send to Kindle

There are two kinds of great songwriters in the world: those that can tell stories in easy to grasp (yet captivating) words, and those that can paint the richest canvas with image-laden words. Of course, there are many super-great songwriters who can do both equally well, and move between the two at will.

We are familiar with many such talented songwriters (I wrote about one earlier today, Jack Kapanka), largely because Lois has been a devoted listener of words forever, and she deeply cares about who wrote the songs (as I’ve written about often) sometimes more so than who made it famous.

When an artist can also deliver their own creation in a stunning and moving way, that’s when true magic is made. There are many artists who achieve that, including many that we listen to and see frequently. However, no one does it better than Girlyman (at least not in our opinion).

I love nearly every one of their songs, almost equally (though I recently revealed that I still have no trouble picking Hold It All At Bay as the #1 choice). So, while I’m about to pick one specific song to make my point, I am not suggesting that they don’t have other just as special songs, because in fact they have many.

What happens to me with Girlyman songs is that hearing any one of them can suddenly get under my skin (that will become even more meaningful, in an ironic way, in a minute), and I end up playing the song over-and-over in my head, sometimes for days on end.

The current song that keeps playing in my head is The Shape I Found You In. The trigger was hearing Girlyman perform it live in VA (I think it was at Birchmere). We’ve listened to it a bunch of times since in the car as well, but my head plays it back non-stop.

You can check out the complete lyrics (they’re very short). But, as gorgeous as the poetry is, this is also one of those songs that take on an even deeper meaning when performed, in this case specifically by the same artist who wrote the song (Ty Greenstein, supported by Girlyman). Even though the lyrics are short, the pacing of the song is slow, and builds and emphasizes the deepest lyrics in a very emotional way (giving added meaning to the words).

While I often hesitate linking to home-made YouTube videos of live shows, because the quality of the sound and the panning of the camera often don’t show off a group as well as the actual show comes off, I’ll do it anyway, to make my point about how the singing of this particular song is very different from just reading the poetry. In another small-world story, this particular video was shot seven months ago by our recent neighbor at Golding Park Cafe this past Saturday!

Now, to the point of this post. 🙂

None of us are perfect significant others, as much as we’d like to be, or like to believe we are or can be. What we rarely are conscious of though, is that we bring so much baggage from our previous relationships, that it’s nearly impossible to achieve that perfect harmony. When things go badly, we rarely have the insight to realize that a previous relationship created a trigger we couldn’t avoid.

Ty captures this searing insight perfectly in this song. More important, she does it not by telling a story, but by painting a clear picture, in very few words. The famous saying goes: A Picture is Worth a Thousand Words. But, in Ty’s hands, A Phrase is Worth a Masterpiece Painting!

Here are two phrases that keep going through my head:

But your heart was busy within
Building bomb shelters under your skin

and:

So I felt around in the dark
Building rope ladders into your heart
Climbing hand over hand to get in

Earlier, I said that many of their songs get under my skin. The first phrase above contains Building bomb shelters under your skin. What an image!

When I hear Ty sing: Climbing hand over hand to get in, I nearly cry for everyone who has found the right person, but can’t reach them, because of the damage someone else has caused, previously.

I am grateful every day of my life that Lois and I found each other, and battled (in every sense of the word!) through the scars of our previous relationships, to reach each other’s true core, and make a wonderful life together!

Jack Kapanka

Send to Kindle

A few weeks ago, I wrote two posts about a website I was working on for a new friend. Neither of those posts is really germane to this one, but for reference, they were here and here. Those were techie posts, this is not, other than repeating how we came to discover Jack Kapanka in the first place. Sometime later this week (could even be today, who knows), I’ll complete the techie part about the site as well.

Regular readers of this space know that our goddaughter got married on July 5th, 2008. Prior to that wonderful event, the father-of-the-bride emailed Lois with a link to a father-daughter dance song that he was considering for the wedding. For whatever reason, the link was broken and Lois couldn’t find the song.

Instead, she Googled the name of the song, Angel In My Arms, and found a YouTube video of the song. Lois didn’t realize it was a different song, by a different artist, with the same song title! She fell in love with the song immediately, and wrote back our friend telling him so. After another back-and-forth, they realized that they were talking about different songs.

Lois decided to buy two copies of Jack’s CD (which includes Angel In My Arms on it), so that our friend would have a copy for the wedding, should he decide to use the version we fell in love with. The only problem was that Jack’s website was a little broken, and Lois had trouble placing the order. After hunting around a lot more than she should have needed to, she found a valid email address and wrote that she was unable to order the CD.

Jack himself answered the email, and Lois and he conducted the sale directly, and a few days later we had the two CDs in our hands. It turns out that the rest of the CD is fantastic as well, so it was a real treat given that we had only heard one song before ordering it.

You can read Jack’s bio for yourself, where you will learn that he’s already had one helluva ride through life. For example, he was born blind, and miraculously regained sight in one eye at the age of two! What’s important about Jack’s life isn’t any sadness or pain that he might have endured, it’s that it has given him a perspective and a voice that come through in all of his incredibly moving songs.

Jack jokes that he can write a jingle about almost anything, quicker than most. Not only do I believe him, but I’ve heard a number of them that will likely never see the light of day, so I know it to be true for a fact. He empathizes with everyone he meets, and captures the deepest meanings of any moment that he writes about. Yet, he does it in the plainest language, that we can all appreciate and understand, placing us in that moment as well.

In addition to being an amazing songwriter, he also has a heart of gold. Jack has written (and performed) theme songs for a number of wonderful organizations, including (but certainly not limited to!) the Special Olympics, Military Veterans and Freedom Ride.

Finally, he has a wonderful voice. All of the songs on the CD feature him singing lead, and we can listen to his voice all day long. Still, even though he is an excellent performer (he sang in front of 70,000 people at the 2002 Citrus Bowl!), he’s first and foremost a wonderful songwriter, who can tell very varied stories while extracting the core lessons we can all share from those stories.

Once we got a taste of his CD we continued to correspond with Jack and have since become good friends. We’ve had the pleasure of meeting him as well and verifying his qualities and talents face-to-face. As a result, I undertook to fix his broken website. After simply fixing the broken links, I then added a PayPal button making it easy to order his CD (so, go there now, and order the CD, no delaying!).

However, both Lois and I still didn’t like the ancient design (and I couldn’t stand the code), so I redid the site from scratch (which will be the subject of another post). This site has significantly less content than the previous one (so far), but it should be easier to navigate, order the CD, and build from here (which we fully intend to do). You can listen to 30-60 second clips of 13 songs (he actually has enough material for another CD waiting in the wings!). You can read the lyrics to those songs, read the stories behind seven of them, and watch six videos (full sound tracks) as well, all at this link.

The new site launched on Halloween, so it’s still fresh, and possibly contains problems that I am as yet unaware of. Feel free to leave me feedback in a comment to this post, or contact me directly if you find a problem, or have a suggestion for improving it that won’t be beyond my meager technical skills.

We are lucky to know Jack, and now the rest of you are lucky to be able to discover Jack’s gift for yourselves.