Sunday, November 15, 2009

Raising Charlie book signing at Borders

Nan and Scout with me at the Borders book signing for Raising CharlieYesterday afternoon I had my first book signing for Raising Charlie at our local Borders bookstore. It was a surprising success. The ads I had been running in the local paper must have worked because there were people waiting for me before my scheduled time. Most of them were dog lovers, or they wanted to buy the book as a gift for friends or family who are dog lovers. Many had a story to tell about a cherished dog, either living or dead, and some became tearful while telling their stories. It was heartwarming to know that other dog lovers share the same bond of love and affection with their dogs that I shared with Charlie.

The folks at Borders were nice enough to let me bring Scout into the store, and he was well behaved thanks to Nan, accepting all the attention with good grace. People asked if he was Charlie, and I needed to explain that he was the dog that Nan gave me to fill the emotional void that was left when Charlie died. You can barely see Scout in the photo. He's in the lower left corner, wearing a dog-bone bandana.

There are three more book signings scheduled between now and Christmas. On Wednesday, I will be at Aspen Valley Hospital's Annual Holiday Bazaar from 2 to 6 PM. On Saturday, I will be at the Aspen Animal Shelter from 1 to 3 PM. And on Saturday, December 5, I will be at the local Barnes & Noble for their Colorado Authors Celebration from 2 to 4 PM. Stop by and say hi!

Before I forget, I want to express my gratitude to the friends and neighbors who took the time to come out and support me. Thank you!

Saturday, November 14, 2009

Linking to files without read-only restrictions

Here's another interesting programming trick I discovered at work recently that I was unable to find a solution to anywhere on the Internet:

Everyone knows that what makes the Internet the Internet is that everything is interconnected through links. Typically, these links connect to webpages with Internet-friendly file extensions, like ".htm" or ".html". One of these links would look like this: http://www.raisingcharlie.com/index.htm. But it is also possible to link to files that are not typically found on the Internet, like Microsoft Word (.doc) and Microsoft Excel (.xls) documents. This is done in the same way: http://www.raisingcharlie.com/docs/press_release.doc. The difference is that this link will bring up a dialog box asking if the user wants to Open or Save the document. Choosing to open the document will open a read-only version of the document. Choosing to save the document will open a Save As dialog, with the usual options for filename and location.

But what if the document in question is a collaborative one that the programmer wishes users to be able to update directly? How does he get around the read-only restriction of a standard link? The answer is to use a Universal Naming Convention (UNC) path instead of a Uniform Resource Locator (URL) path in the link. In HTML, a link of this type would look something like this:

Link to file using UNC path instead of URL path
Note the backslashes and the use of the entire path to the file, starting with the server name or IP address. The only other trick to making this link work is that the "docs" directory must be set up with public "write" rights, so the programmer would want to be careful about what files were shared in this way.

If you share my line of work, give this a try and see for yourself how well it works. Good luck!

Sunday, November 8, 2009

Pinback in Denver

Ogden Theatre marquee with gibbous moonNan and I were in Denver for the Pinback concert at the Ogden Theatre on Friday night. If you're not familiar, Pinback is a San Diego based band fronted by Rob Crow and Zach Smith. Their music is unlike anything else I've heard, a catchy multi-layered mix of guitar, bass and keyboard melodies that are constantly trading leads. The tempo is usually extremely fast, driven by Zach's amazing bass playing, which reminds me of Peter Hook from New Order. Zach and guitarist Rob both sing, sometimes exchanging leads and sometimes harmonizing.

Pinback is another band that was introduced to me by my friend, Dave Beckwith. He included "Boo", a track off their 2001 album, "Blue Screen Life", in a mix CD he gave me in 2004. The song was so compelling, to use Dave's expression, that I soon bought the CD and then every other CD I could find by the band. If you're looking for a new sound, try "Blue Screen Life". You'll be glad you did.

Back to our concert evening. Nan and I took a taxi from our downtown hotel to the City Grille on Colfax for dinner. They have great cheap food and they're only a few blocks from both the Ogden and the Fillmore. We ate there a couple of years ago before the Snow Patrol concert at the Fillmore and were eager to go back. All the booths were taken, so we ate at the bar while being entertained by Suzy, one of the sassiest bartenders we've ever met. At one point, a big guy walked past us with long hair, a huge beard and a black t-shirt showing the human skeleton from neck to pelvis on the front and back. I thought he looked like the version of Rob Crow I had seen in Pinback's video of "From Nothing to Nowhere", off their new album, "Autumn of the Seraphs". But I didn't say anything to Nan until we got to the Ogden and the same guy came out before the show and invited audience members up on stage to sing karaoke with him. So it was indeed Rob Crow. Now I wish I had said something to him at the restaurant.

After the karaoke ended, the opening act, Joe Jack Talcum, took the stage. It was just Joe and his acoustic guitar singing folksy songs with off-the-wall lyrics, like a raunchier version of Loudon Wainwright. Two young girls had done a karaoke version of the Dead Milkmen song, "Punk Rock Girl", so Joe apologized for the repeat before he launched into his own energetic rendition. As he was winding down his set, the theatre started filling up, and we were happy to see that we were not the only Pinback fans in Colorado. By the time the band came on stage, it was wall to wall.

Pinback at the Ogden Theatre in Denver playing 'Penelope'One of the things about Pinback's sound is that it all tends to blend together, so I couldn't tell you for sure what the first song was, but I think it was "Loro", off their 1999 self-titled first album. There wasn't much of a light show, but each of their songs was accompanied by images on a large screen. I smiled to see clips from the 1974 John Carpenter film, "Dark Star", featuring a character named Sgt. Pinback, from whom the band took its name. Other images featured snippets of lyrics, like the ones in the photo: "Don't want to see you floating upside down", from the song, "Penelope", which as near as I can guess is a song about a goldfish named Penelope. But that's one of the intriguing things about Pinback: the lyrics are difficult to understand if you think about them too hard. It's more enjoyable to relax and let the songs wash over you, creating more of a mood than a mental image. My only regret is that they didn't play "Concrete Seconds", off "Blue Screen Life". That song has been a favorite of mine for years. Maybe next time.

Tuesday, November 3, 2009

Happy Halloween?

Halloween jack-o-lanternsWith Halloween falling on a Saturday this year and both of us being in town, Nan and I decided to see what Grand Junction had to offer adult revelers.

After volunteering all day with my neighbors to build some badly needed retaining walls between two of the units, I limped home, drank a quart of Gatorade to loosen up my cramping muscles, and then carved a couple of jack-o-lanterns from some last-minute grocery store pumpkins. As I was cleaning up, the doorbell rang. We had some actual trick-or-treaters, a first for us in five years here. Good thing Nan picked up some M&Ms when she bought the pumpkins.

We donned our costumes, Nan as a little old man and me as Dr. Frankenstein, and headed downtown for dinner at Bistro Italiano. Some of the staff were in costume but we were the only customers who dressed up. We took off our rubber masks so we could enjoy our meals and not have to drink our wine through straws. As we were finishing, our neighbors Rich and Diane came in dressed in their mountain man rendez-vous gear and looking very authentic. We had agreed to meet across the street at the Rockslide Brew Pub, but we were running late. We went back with them to the brew pub, and it was full of people in costumes having a good time. We ordered drinks at the bar, but there was nowhere to sit so we soon left to see what else was happening on Main Street.

We wandered up the nearly deserted street to Quincy's, where a bouncer was standing out front. He wanted us to take off our masks, show him IDs and pay a cover charge. I looked through the open door and didn't see any live music or anything else that would warrant a cover, so I told him to forget it. We crossed the street to see what was happening at the Mesa Theater. There was live music blasting through the doors and it looked pretty lively inside, but we didn't want to pay the ten-dollar cover charge so we moved on to Boomer's. They also had live music and a cover charge so we didn't go in, opting instead to stand out front and watch a funeral re-enactment by people dressed in Victorian clothing and looking like they had just stepped out of an old black-and-white photograph. Then it was back to the Rockslide for a nightcap. Rich, Diane and I were fading from the day's heavy labor, so we decided to head home. It was only 10:30.

Maybe I'm getting old, but I remember Halloween being more fun than this one was. When I was a student at the University of Wisconsin in Madison in the late 1970s, Halloweens were full-blown riots, with thousands of costumed crazies on State Street, lighting bonfires and climbing streetlights. It felt dangerous to be there. By comparison, Halloween on Main Street in Grand Junction felt like we were just going through the motions, looking for some fun that didn't feel like a rip-off.

Monday, October 26, 2009

Scout gets his sea legs

Scout onboard a boat!On one of our last afternoons on Isla Mujeres, Mexico, we did a boat trip with our friend Ariel and his wife Rosa. I had done one with them and their son Edric earlier in our stay, but this time I was taking Nan, our friend Juan's son Manolo, and our dog Scout. The main reason for the trip was so that I could get some more photos for the cookbook I am working on with Juan and his wife Paula. It was also an opportunity for Nan to see the island from a different vantage point, for Manolo to get out on the water in a boat other than a ferry, which he had never done before, and for us to see how Scout would handle being on a boat.

I'm happy to report that Scout did very well. Ariel beached the boat so that I could hoist Scout aboard without getting him wet, and he settled down right away in a shady spot next to the helm, where he could look over the gunwale at pelicans and passing boats. Scout had been swimming every day, so he must have wondered how it was possible to be out in the water without swimming or getting wet. More likely, he was probably thinking, "What's up with this weird car?" The motion didn't seem to bother him but the heat sure did. He was fine as we motored south down the west coast of the island into the cool prevailing wind. But when we turned around at Punta Sur and headed back north, we lost our breeze, and he started panting, seeking shade, and drinking cold water out of a plastic cup.

Nan and Manolo enjoying the boat tripIf our lives go as planned, we hope to travel extensively in the future, most likely in a sailboat, and we want to take Scout with us whenever possible. So taking Scout with us to Mexico was something of an experiment. We wanted to see how he would do with travel, including flying, being in a different climate, swimming in saltwater, riding in a golf cart, eating foreign-made dog food, being around semi-feral dogs, and riding in a boat. We chose Isla Mujeres because it is a place Nan and I have been to six times in the last eleven years, so getting there and living there are very familiar to us.

We did our homework on transporting animals internationally and thought we had it all worked out, but in addition to the five vaccinations on his official US health certificate, the Mexican authorities wanted proof of preventive treatment for internal and external parasites. Fortunately, we had a receipt from the veterinarian for Frontline (for fleas and ticks) and Heartgard (for heartworms), or we would have needed to pay a vet to come to the airport and examine Scout before he could enter the country. We also made the mistake of taking a small quantity of Mexican-made dry dog food back into the US with us to tide Scout over until we reached home. The customs officer let us through with it but told us it was normally prohibited. Next time, we'll leave a small bag of dog food in the car for the trip home.

In my opinion, the experiment was a success. We did not encounter any obstacles, either in our travel to and from Mexico or in the four weeks we spent there, that had us thinking that we were recklessly endangering Scout's safety or that it had not been worth it to bring him along. That's not to say that Scout wasn't completely thrilled to be home again, because he most definitely was.

Thursday, October 15, 2009

ColdFusion Cascading Dropdown Menus

So far in this blog, I have not shared much about what I do for a living, which is to develop Web-based applications for a small hospital. I don't think posts about my work would be very interesting to most readers, but today I experienced a small programming triumph that I feel compelled to share because I don't think anybody else has figured it out, or if they have, they haven't posted it on the Internet anywhere that I could find it.

The programming issue I was working on involved two dropdown menus: one for a category and another for a subcategory. Ideally, the choices in the subcategory list would be contingent upon what was chosen in the category list instead of displaying every possible subcategory. For example, if you chose "Fruits" as the category in a list of food types that also included "Vegetables", the subcategory choices would be "Apple", "Peach", "Pear", "Plum", etc., without "Broccoli" and "Brussels Sprouts" also showing in the list.

Most of what I do involves ColdFusion programming. ColdFusion is a server-side programming environment that will manipulate variables only when programmed webpages are first loaded. There is no provision for "dynamic" variable manipulation as the user makes changes on a webpage, like filling out a form. For that, I normally use JavaScript, a client-side programming language. The big hurdle is that ColdFusion and JavaScript do not talk to each other very well. It is possible to pass a variable to JavaScript from ColdFusion using a "ToScript" routine, but what I needed was to pass a variable from JavaScript to ColdFusion, which is not possible.

After searching the Web extensively, I came upon a JavaScript script written by Ioannis Cherouvim that presented an HTML version of the solution I was looking for. I copied it and got it working, then customized it with ColdFusion-generated content. It worked!

Here is the complete code:

Section 1 code for ColdFusion cascading dropdown menus
Section 2 code for ColdFusion cascading dropdown menus
Section 3 code for ColdFusion cascading dropdown menus
I apologize that the code is in screenshot images but Blogger tried to parse the code when I pasted it in directly. I also apologize for all the white space, but that was necessary to keep Blogger from resizing the images. Click the images for full-size versions. Email me if you would like the text file.

A couple of notes:

  1. Obviously, in order to be useful, the table would need to be enclosed within a form that would post the category and subcategory choices.
  2. The queries are pulling from two different tables, one with just the categories and another with both the categories and the subcategories, with the appropriate category repeated for every associated subcategory. It might be simpler to use just the second table and to have the first query point to it with a "distinct" condition.

To see a live example, please click here: ColdFusion Cascading Dropdown Menus

UPDATE: I apologize that the link is no longer valid.

Wednesday, October 14, 2009

Home from Isla Mujeres

Scout is happy to be home even if it's for rent!Nan, Scout and I arrived home safely from Isla Mujeres over the weekend. On Saturday, we flew from Cancun, where it was in the high 90s with almost 100% humidity, to Denver, where it was in the mid-20s and dry--more than a 70-degree temperature difference! The delayed flight was smoother and Scout did better, with no apparent air sickness. We needed to keep him in his crate until we passed through customs, and he was a good boy--no whining, barking or fidgeting. There were no problems except one: we had brought a small amount of Mexican-made dog food with us to tide Scout over until we got home. The customs officer told us this was a no-no but he let us through with it.

We made it to an airport hotel by 11:00 PM, stayed the night, and then drove the five hours back to Grand Junction on Sunday, arriving in the mid-afternoon. As we pulled up to our home, we saw balloons and a sign announcing that our house was for rent! Our neighbors, Rich and Diane, who had been watering our outside flowers, love a good practical joke. The stinkers! When I checked my cell phone messages later, there was one from someone inquiring about the rental. I recognized Rich's voice and had a good second laugh.

Thursday, October 1, 2009

Expatriates on Isla Mujeres

Sunset from our deck in Isla MujeresIn the first few days we were here on Isla Mujeres, we met a few different sets of expatriates, mostly from the United States and Canada. Each expressed to us that they love it here so much that they were willing to leave behind their homes, families, friends and possessions to live here full time. None expressed any regrets, except maybe not having done it sooner.

We met Malcolm our first Sunday night when we went to Sancocho's to eat dinner and watch the Packers play the Bears in their home opener. It is off-season here and Sancocho's was the only bar showing the game. Malcolm is from Canada and has been on the island since they improved Internet access to a level that allows him to work remotely as a Web developer. Shortly after we were seated at a table adjoining Malcolm's, his friend Greg came in and sat down. We think Greg is from California because he mentioned that he had an engineering degree from Stanford. He is also doing remote development. Neither seemed to speak much Spanish, and they didn't show much patience with the waitresses. They struck me as single guys who were merely living in the island community rather than being a part of it, more like long-term tourists than new citizens. I doubted if they had many local friends other than expats like themselves.

Roger and Garnette retired here from government careers in Denver. They had vacationed in Cancun twelve years ago and taken a day trip to the island. They fell in love with it and relocated two years ago. They live frugally, renting a place in the La Gloria colonia (neighborhood), about two blocks from the English school where Nan is volunteering, and taking public transportation to get around. They speak adequate Spanish and are active in the community, helping with projects that aid chidren and the poor.

Greg and Natalie are the directors of the La Gloria school. Like Roger and Garnette, they are in their mid- to late fifties. They came here on a vacation two years ago and loved it so much that they closed on a furnished condo before they went back home to Bend, Oregon. They sold almost all of their possessions and moved here with just suitcases, though Greg confesses that he left nine boxes of stuff in storage that he has visiting friends bring one box at a time as checked luggage when they fly here. Of the three different sets of expats we have met, Greg and Natalie seem the most engaged. Through the school, they have come into contact with many local people and assisted them not only with learning English but also with handling personal issues. One evening we saw them on Av. Hidalgo with many bags of Crocs shoes hanging off the handlebars of their motos. They had purchased them in bulk to distribute to needy children. They are greeted warmly everywhere they go.

Tuesday, September 22, 2009

Busy Day on Isla Mujeres

Punta Sur, Temple to Ixchel and El Arco on Isla MujeresSunday was a busy day for us here on Isla Mujeres. In the morning, I took a boat ride with my old friend Ariel and his family. Ariel runs a fishing, snorkeling, whale shark watching and Isla Contoy tour operation with his 27-foot panga: arielsantizo@yahoo.com.mx or 011-521-998-165-6332. Ariel and his family in their panga on Isla MujeresWe motored all the way around the island while I took photos of familiar landmarks for the book I am working on. Nan didn't want to go so she stayed behind with Scout. It was a calm day, which made for easy photography. Ariel says that rounding Punta Sur can be terrible on days when the wind runs counter to the current. The first photo shows the Mayan ruins of the temple to Ixchel and El Arco, the arch under it, at the southernmost tip of the island.

Manolo playing with Scout while Juan and Paula get the mixer readyIn the afternoon, we took the golf cart down to our friend Juan's new house in Colonia Salina Grande. The house is much further along than when we saw it last October (Isla Mujeres, Mexico), but it is still not finished and may never be. There are no loans to be had, so construction is a pay-as-you-go proposition, and it has been tremendously slowed by the poor economy and lack of tourism.

Paula starting to frost her tres leches cakeThe book I am working on now is a collaboration with Juan's wife, Paula. We are writing a Mexican cookbook, Los Sabores de Isla Mujeres / Tastes of Isla Mujeres, based on Paula's traditional recipes. It will be in both Spanish and English, and there will be photos of her wonderful dishes and also of the island. The main purpose of our Sunday visit was to photograph Paula baking a tres leches (three milks) cake. Paula's tres leches cake is almost finishedIt was a three-hour affair, with time for a take-out lunch of chicken tacos and cervezas from the local tienda while the cake was in the oven. The finished cake was almost too beautiful to eat, but we all took a slice or two, and neighborhood kids came out of nowhere to help share it. There were big frosted smiles all around!

We have invited Juan and his family to our apartment at Color de Verano on Friday evening for a dinner of chicken enchiladas Nan-style. We hope to keep a back-and-forth dinner exchange going for as long as we are here. Of course, we also expect to enjoy as much of Paula's fabulous cooking as we can. We'll consider it research!

Monday, September 14, 2009

Greetings from Isla Mujeres!

Scout on the beach at Isla MujeresNan, Scout and I arrived here safely on Saturday afternoon. The flight from Denver was bumpy and the landing a bit rough, so we were not surprised to see that Scout had puked a little when he came around on the baggage carousel at the Cancun airport. He seemed fine otherwise and was happy to get out of his crate. Clearing him in through customs and immigration was more difficult than we expected. In addition to the four different vaccinations Scout was given before we left, they were expecting to see proof of inoculation for internal and external parasites on his official Health Certificate. None of the information we had read as we prepared for our trip indicated that this was necessary. Fortunately, Nan had a copy of the receipt from our visit to the veterinarian, which showed that we had purchased flea and tick medication and heartworm pills, and they accepted that as adequate proof, but it still took more than an hour to process his entry permit. On the plus side, the officials were kind and did not charge us the normal $15 USD fee for the permit.

On Sunday morning, we took a walk around the north end of the island. Scout was timid about the breaking waves, but he eventually waded in and out of the water. We have been keeping him on a retractable leash for safety, and this helped greatly in our encounters with the feral dog "gangs" that cruise the beaches. In the afternoon, we set up beach chairs in the shade of some palm trees on the beach across the street from our apartment. Scout quickly lost his fear of the waves as he dove over them to fetch a tennis ball I threw for him. He even swam confidently when the water was too deep for wading. Sunday is a big family day on Isla Mujeres, so there were lots of kids playing in the water. They were afraid of Scout at first since he is much larger than the native dogs, but they warmed up to him when they saw how friendly he is and how much fun it is to throw the ball for him.

Scout retrieving a tennis ball from the water at Isla MujeresScout has been a big hit everywhere we go with him. People seem pleasantly surprised to see American tourists with their dog, and they greet him warmly. Kids point and say "Perrito!" because with his short haircut, he does look like a puppy. Late in the afternoon, we rented a golf cart, one of the primary means of transportation on the island, and went to find the La Gloria school where Nan will be volunteering. Scout sat on the floorboard and watched the sights whiz by, at one point sitting on the gas pedal when I had my foot on the brake. No harm was done but we did burn a little rubber.