Waiting… Sunday, July 30, 2006
OK! The testing of netTunes and launchTunes, its purchasing process, Universal Support and integrated store is complete. Things are basically ready to go, except for one thing—I’m waiting for a new version of the eSellerate Integrated Web Store library to be released.
This was supposed to go sometime a week or two ago, but unfortunately got delayed. It’s important, though, because the store installation procedure leaves a file in /tmp that, for some reason, Tiger feels is necessary to move into “Recovered Items” in your trash.
They’ve been working on a fix for that, and I’ve been waiting for that fix to become available. Any day now, I’m told, and I’m passing that savings on to you!
Routine Tuesday, July 25, 2006
With a puppy in the house, my routine has changed from the back-breaking (but rewarding) work of taking care of Ketzl to watching the new arrival like a hawk, ensuring that no inappropriate fluids or solids meet floor or rug, and entertaining/correcting as needed.
It’s a nice change, and concentrating on the pure joy emanating from the little one helps to fill the void left by Ketzl.
We think we’ve settled on a name: Taiko. Taiko has a number of meanings. It’s Japanese for drum—and, when you pat the side of a big Berner, they make a loud, drum-like thump. It’s also the person who rules in the Emperor’s stead—and, when we’re gone, the dog is in charge. Finally, Taiko drummers are typically in excellent shape, so it’s a wish for strength and good health.
And so, to Taiko: welcome! You have big shoes—and a big bed—to fill… but you’ve made an excellent start.
Missed Relay Saturday, July 22, 2006
At my feet, a puppy. Sleeping soundly after an anxious first night away from the pack, legs twitching ever so slightly deep in dreamland.
It wasn’t supposed to be like this. There were supposed to be two, curled up next to one another; the old girl and the young pup, side by side.
A few weeks ago, when Zabeth and I went to Chicago for Ben and Irene’s wedding, Ketzl stayed with Lee & Mike and their dog Red. And had a great time: she clearly enjoyed having a dog buddy around. When we got back home, you could tell she missed him, missed the sense of purpose correcting him had brought.
So Z & I talked about it, and decided that we’d get another dog, a puppy, for Ketzl’s sake and for ours: some overlap to brighten up the girl, give her a chance to pass on whatever knowledge she cared to share, to carry on the traditions she’d established, to boss around a bit. And, for us, transition—fur to cry on when the inevitable moment came.
The original plan was to do this next Spring, ten years after Ketzl first came into our lives.
When we got Ketzl, it took nearly 6 months, maybe more, of research, visits, discussion. This time, we planned to go back to European stock—to try to improve our chances of getting a dog without the health problems we’d run into with Ketzl. But, hopefully, to also get a dog true to the Bernese spirit, true to what made Ketzl so special.
Soon after our decision, Zabeth ran into a client at the hospital who had actually imported a wonderful dog from Germany. And, with the name in hand, a few days later I gave them a call.
We had a nice talk, got a good idea of their goals in breeding, the experience they’d had—a hundred years of breeding BMDs in the family, at a farm in Western Germany, among horses. True to the tradition. And shockingly, a litter was just becoming ready—and a puppy from it could be ours.
Six months last time. Six days this time. We were shocked. But it meant that Ketzl would have a companion, in just a week.
Incredible timing. We jumped.
And last night at 11:15pm the puppy arrived, German passport in hand. A wonderful male, bright and playful.
Alas, a day too late. Even after an incredible run, at the end we stretched, reached, but couldn’t hand the baton cleanly, couldn’t give Ketzl this last gift. But her smell is still here, her bed, her toys—a handoff of sorts, her presence in every corner, pillow, rug, surface, clearly detected by the new (still unnamed) puppy.
A puppy who’s ready, we hope, to be true to Ketzl’s memory: a valued companion, a loyal friend. Not just the farm dog, but the farmer’s dog: the one that came into the house, sat with the children...and whose presence and unconditional love made everything a little bit better.
Three Tufts Friday, July 21, 2006
In the end it was respiratory, as we knew it would be.
As I wrote yesterday, Ketzl had a bad night, and we couldn’t quite figure out what was going on.
But we should have known. After each loss of function, Ketzl became anxious, at least until she got used to the fact that this-or-that wasn’t going to work any more, and adjusted.
But it’s hard to adjust to a diaphragm that’s just isn’t working well enough to draw sufficient air. The heart tries to compensate by increasing its own rate, rushing the blood by the lungs to try to keep levels as high as it can, but it can only keep that up so long. And it can’t be comfortable, a 190bpm rate.
A bad night.
Followed by a pretty low day. She was tired—we all were—and lay next to me in my home office on egg crate foam I covered with a sheet, propped by pillows, trying to rest. She wouldn’t eat—never a good sign—but would take water. Occasionally, she would sleep, head sideways on a pillow, mouth open, panting. I did what I could to make her comfortable.
Later in the afternoon, to try to perk her up a bit, I took her for a drive. Windows down in the car, a cool breeze ruffling her fur. She lay in the back on the seat, raising her head occasionally to sniff, to try to look, and put it down on her paws. And panted.
Back home, I carried her downstairs and placed her on the floor, near the cool breeze from a fan. On her left side, she gasped for breath, clearly struggling. Thinking I’d put her down wrong, I propped her a bit more sternal and put her head on my lap. I checked her airway, which was clear, and got her water, which she drank. Her head rested on my thigh, on the floor. I went upstairs, put some ice in a towel and wiped her ears, pads, muzzle.
Around 7:30pm, Zabeth called on her way back from rounds. I told her she should hurry home, since something was wrong. Or tried to. Ketzl rested on my lap.
When she got here, we talked, cried, knew what had to be done. Originally, our cut-off point was going to be when she lost the use of her front legs, but when that happened a few months ago, Ketzl stayed bright, alert and happy. So, instead, we waited—waited for a sign from Ketzl.
Given, given.
I carried Ketzl back to the car and we drove to VESCONE. I had wanted to do this with our long-time vet, but it wasn’t to be: I couldn’t let Ketzl suffer for another day. VESCONE was nearby, and they had a nice room with carpet, a couch, fish. An attempt to provide a comforting space. Better than a stainless steel table.
Ketzl was placed on a gurney, a nylon strap holding her in place, a formality, given the fact that she really couldn’t move. She was comfortable, and had been given oxygen to help her breathe more normally. More relaxed, we gave her some turkey, some cheese. She ate for us, her last meal.
And we hugged her, and cried, and the Pink Hammer came down, and she was gone. Her eyes remained open, sunken, lifeless. I tried to close them—the freezer is a harsh place—but couldn’t. Icy eyes. I’m sorry, Ketzl.
We cut three tufts of fur and bundled them like sheaves of wheat: glossy black, chestnut brown and white. Bright white, the color of new snow, the snow she loved so. I wish I could have given her just one more glorious day.
We left the room, with her on the gurney. I closed the door and left the fish to watch over her, left the waiting room, desperately trying not to make eye contact with the people there.
At home, Z and I cried over a glass of wine, raised a toast to Ketzl. She was a great dog, and shared her life with us for over nine years, good times and bad. We loved her like a child, knew this was part of the bargain.
The light that burns twice as bright lasts half as long.
And she burned so very, very brightly.
Thanks, Ketzl, for the light you brought into our lives.
Tired Thursday, July 20, 2006
A rough night.
Ketzl, after a relatively calm day, decided that last night was a good night to demand water every two minutes and cry until she got it. This is pretty irrational behavior, and we’re concerned that DM has reached her brain stem and might be starting to affect her higher functions—something that will happen eventually.
No other weird signs, though, but it’s hard to tell: I’m feeling pretty irrational myself on a total lack of sleep. And, the day is pretty fully booked with stuff, so no real time to try to get a brief nap in.
If you get a reply to email today that looks like gibberish, you now know why.
That Bites Tuesday, July 18, 2006
With Ketzl on the decline, every day bring a new challenge, a new obstacle to overcome, a new way to show her how much we love her by making her life the best we can, given the circumstances.
As DM has moved forward, it’s affected all the muscles along the way. Recently, it’s affected her facial muscles. When she lies down, her upper lip tends to work its way into her mouth, and when she sleeps, she bites it. She’s stoic, but I’m sure it’s painful.
We’ve tried to come up with a way to deal with this, and Zabeth hit upon an approach that works, for the most part.
Z took two wide picture hanging hooks, re-bent them and smoothed the edges. Combined with a shoelace, we can hook her upper list on both sides and tie the shoelace over the top of her muzzle. It looks a little silly—kind of like braces—but it holds up her lip just enough… and it’s healing.
Ah, necessity…
Cows! Monday, July 10, 2006
Ketzl loves cows.
I’m sure this is related to the fact that Berners were farm dogs, and cattle herders (or descended from them), but whatever—cows make her excited and happy. A state I try to induce as often as I can.
Saturday, Zabeth was taking the last real day of her brief break to canoe in New Hampshire as I watched Ketzl. (She’s been helping for the last two weeks, which has been a real relief—vet school doesn’t leave her much time for anything other than rounds and sleep these days, and it was wonderful to have her here for a week or two.)
So come afternoon—it was Cow Time.
Stonehedge Farm is a “gentleman’s farm” just up the road—“gentleman’s farm” in the “rich people who own lots of land and have hired someone to raise cows for them” sense. It’s a nice bit of property on Waltham Road (and getting bigger all the time), and their cows are friendly and hang out near the road.
As I’ve mentioned before, K’s now effectively a quadriplegic: she can’t move three limbs and has minimal motion in the fourth. Her neck still works, though, so—placed properly—she can hold her head up and look around.
I took her out of the back seat of the car—no mean feat, 75 pounds of dead weight (down from 96)—and carried her over to the 10-odd cows hanging out by a closed gate. Propped her nicely and she totally engaged with the big beasts, chewed grass with them, watched intently—intensely focused. They knew she wasn’t a threat but remained a bit wary: wolf-things can be tricky, you know.
Ketzl looked at me, and the cows, and the grass, and me again. Chewed some more long stalks. Cows are, clearly, a good thing.
After a while the flies started to bother her. I hauled her back into my arms (this is going to kill my back) and walked up the road back toward the car.
On the way, another driver stopped and rolled down the window.
“Oh my god! What happened? Is that dog OK?”
I guess I’m used to this whole thing, and don’t think about how it looks to others: it took me a minute to figure out he thought I hit her with my car.
“Oh, it’s just fine. She’s paralyzed.”
He drove off, a bit confused.
Back in the car, driving home the mile or two, radiator blows in a weird, mild, was-able-to-make-it-home kind of way. (Must you fall apart too, car?)
Ketzl, inside and lying on her bed as sternal as I could manage to put her, sleeps.
And dreams.
Of cows.
Robots, too Saturday, July 08, 2006
A quick follow-up to my review of the Roomba and US Trilobite.
As I mentioned in the review, Europe has a newer version of the Trilobite—v2.0. The description of the 2.0 version from Electrolux indicated 200 changes from v1.0 (which was Europe-only as well), but despite communications with a number of Electrolux representatives, I wasn’t able to get a list of the differences between the US EL520 model and v2.0.
Based on two particular items—scheduling and smarter navigation—and after ensuring the v2.0 model was compatible with the US chargers and accessories—I sourced one from the UK. (Interestingly, the list price of the Trilobite in Europe is much less than in the US.)
The 2.0 Trilobite’s software is clearly a later revision, and has a number of behavioral differences, as well as scheduling and a graphical “time to charge” indicator. Although advertised as adjusting its cleaning time based on obstacles found in the room, it does not seem to act any differently (in this area) than the EL520. Most of the mechanical design seems to be identical to the EL520: I believe that the vast majority of the 200 improvements are already in the US version.
After using it for a while, I can say the scheduling capability is well done and nicely thought out. It covers the options you want, is easy to disable, and behaves as expected.
Overall, a minor-but-nice improvement over the EL520. If you need scheduling, I suggest sourcing a US charger on eBay (well under $100, if you can find one, as opposed to the ridiculous list price of $300) and importing… who knows when—or if—Electrolux will bring these improvements to the US.
What’s taking so long? Thursday, July 06, 2006
It’s been difficult, these last few months, to find the time necessary to work on netTunes and launchTunes while working on/supporting SuperDuper! and navigating the waters of decline with Ketzl.
netTunes was pretty much done back in April, save for some online store issues—I want to support PayPal, and that means moving to the new “Embedded Web Store” (which is also required for Universal apps). Doing that involves doing some new graphics/layout for the custom pages.
launchTunes, though, was harder—ironic, since it’s a much simpler program. The big problem was that launchTunes hadn’t yet been converted to a drag-and-drop install, and I’d done some work extending its capabilities that hadn’t been completed.
Plus, I’d learned more about Cocoa in the few years since its original release (it’s never been updated)… so, it was time to throw out the old and rewrite the whole thing. Which, given the time constraints, took longer in calendar time than anticipated.
I’m happy to say that I managed to finish up the main launchTunes application, with its auto-install capabilities, while flying back from Chicago the other day. Everything tested out great, so now I’m working on the two apps’ graphics and online store stuff.
Once that’s done, the Universal versions of netTunes and launchTunes will finally get into your hands. Sorry it’s taken so long!
So, before I left, I noticed two things wrong with the server.
- Part of Mint wasn’t working right because I hadn’t configured curl support into php4
- CAPTCHAs weren’t working with Expression Engine because I’d left out gd
Unfortunately, I didn’t have enough time to fix these (I didn’t want to risk it, frankly), so I disabled CAPTCHAs on the blog and ignored the failing FreshView plugin.
It didn’t take long for the ‘bots to hit my comments section. Now, I hate CAPTCHAs, too, but I hate spending a significant part of my day deleting comment spam more. So, today, I fixed both problems.
Quite easy, actually. First, I tried to do it in one step:
sudo port install -v -c php4 +mysql5 +server +apache2 +imap +macosx +darwin_8 +gd +curl
But not so much. There was a differently configured php4 active—the one I’d previously built. Fortunately, easy to fix with a deactivate and then an install:
sudo port deactivate php4
sudo port install -v -c php4 +mysql5 +server +apache2 +imap +macosx +darwin_8 +gd +curl
And we’re done! After all the previous pain, positively easy.