for FILE in video-*.avi; do if [ ! -f "fast-$FILE" ]; then ffmpeg -i $FILE -vf "setpts=0.10*PTS" -r 30 fast-$FILE fi doneI also started looking into how to use SimpleCV for computer vision and image processing. I had a hard time getting SimpleCV set up in my Ubuntu virtual machine, but the Windows version worked fine after a lengthy install process on my computer. After much learning, I figured out how to identify changed areas, get the largest share over a certain area threshold, find the centroid of that shape, and plot it back on the image. The real challenge is figuring out some kind of visual output that makes sense to me when I look at it. The image below is a step in the right direction, but it's still not quite what I need. The Raspberry Pi camera module arrived, so we swapped that in and eventually got everything working again after some SD/power-related grumbling. It would be great if I could get Python to automatically figure out which cat is in the video, distinguishing between multiple cats and flagging it for manual review if the motion detection got confused. Even better if it can track the path that the cats take! On the other hand, the speeded-up AVIs are now fast enough that the bottleneck isn't waiting for the video to play, it's me typing in the description of the path (since I track not only the litter box they use, but any other litter boxes they check along the way). Maybe this is fine. While watching me encode data, W- said, "Isn't this something you can have your assistants do?" It's data entry, sure, but I feel embarrassed about assigning people to watch our cats poop. <laugh> Besides, I'm learning a lot from the encoding process. We'll probably treat it as a time-limited experiment. Pretty cool! =) Next steps: Collect more data, try more experimental changes, learn more about image processing... Anticipated questions/responses:
Almost every morning, we can count on being meowed awake by our cats. They seem to do this in shifts so that only one cat is meowing at a time. They don’t really have a snooze button or a time sitting, but they seem to pause for a little bit if you meow back or fully close the door.
My current hypothesis is that Neko is checking if I’m still there, since she doesn’t meow W- awake if I’m already up. It seems to match experimental observations. She’s only temporarily satisfied by voice; she insists on seeing me. She doesn’t cuddle or anything, just walks downstairs with me and goes about her usual cat life.
I raised her myself (hello, 2AM and 6AM soy milk feedings!), but when I moved into the dorm for university, I saw her only on weekends. And then there was that six-month span when I was in Japan, and four years (four!) when I was in Canada. Whenever I was home, Neko took to sleeping on top of me, probably to make sure I didn’t go anywhere without her knowledge. (Then she would bite my ankles at 5 AM so that I could let her out of the room to do her business.) My mom says that even though Neko avoided her most of the time (my mom’s not a cat person), Neko would cuddle up with her whenever I left on my trips.
Leia is usually the next one to meow. She usually meows if our door is left open a crack (for circulation), but closing the door often helps. Leia just wants to be picked up and cuddled. (She usually sticks around in the bathroom, meowing, until I get the message.) Luke is the meower of last resort. I think he meows because he wants someone to play with and sometimes the other two cats won’t give him the time of day. (Luke is usually the only cat at our door when he’s the one meowing, while we often wake up to all three cats waiting if it’s Neko meowing.)
I try to avoid anthropomorphizing the cats too much, but it’s fun to speculate at what goes on in their head, especially if you can test the hypotheses. =)
Neko is about ten years old now, and the other cats are four years old. The Internet says that indoor cats tend to live between 13 and 17 years. There will come a time when our mornings are quiet. In the meantime, I can appreciate the racket; our cats and their quirks.
One of the tricks I picked up from A Guide to the Good Life: The Ancient Art of Stoic Joy is that of negative visualization: imagining loss in order to enjoy a deeper appreciation of what you have. I practise it frequently. Not so much that I dwell on it, but enough to sharpen my enjoyment of life and be ready for the inevitable sadness. There will most likely come a quiet morning, maybe years from now, when I’ll look back at this sketch and and trace the outline of a memory. I practise imagining loss with pets, with friends, with family, with W-. Emotional exercise.
Sometimes I’m up earlier than I’d like, but the cats are worth it.
The stereotype of an entrepreneur is someone who obsesses about business at all hours of the day. It’s good for me to be able to relax and enjoy hobbies, though. It preserves that feeling of an abundance of time, which makes it easier and less stressful to make good decisions and to keep my values in mind. Hobbies also give me a way to refresh myself.
This is a picture I took at sunset in High Park. I like the muted colours and the blurriness of the sun just visible through the trees in the distance.
Many houses are slated for demolition along Bloor Street, to be replaced by a tall condominium building that spans the entire block. I took the picture on the left because the hole in the window looked like a cat sitting on the sill and looking out, as cats often do. On the right, you can see a tree fort behind the construction fence.
Ah, cats. =)
Not much in the garden to take pictures of yet, but maybe the seeds I planted will germinate soon. This year, we’re looking forward to growing more bitter melons (ampalaya), basil, snow peas, lettuce, spinach, blueberries, and nasturtiums. (Edible gardens for the win!)
It’s a quiet weekend, my favourite kind.
We were going to be away for a week and a half, so we needed to make plans for our three cats. In the past, J- had done a little cat-sitting for us. I'd also asked a friend before, but that was for a weekend. With our cats occasionally throwing up or pooing outside the litter box when they're upset, I didn't want to inflict that on friends, even if I was happy to pay market rates. We wanted to make sure the cats were watched over and played with during the day, so we decided to give cat boarding a try.
Boarding cats is more expensive than hiring a cat sitter. We felt anxious about having someone else come into our house while we're away, though, so we considered the difference a worthwhile premium for peace of mind - no litterbox accidents or throw-ups to worry about, and no worrying about stuff missing either. We also liked the ability to specify instructions like feeding Neko small, frequent meals - if you give her a lot of food in one go, she sometimes rushes and then throws up.
There was a small risk that the cats would pick up colds, ticks, or fleas from other cats, but we decided we could deal with that.
After calling up a few cat boarding places, we settled on Lonesome Kitty, a nearby cat boarding place. I checked out the location, and it seemed fine. The resident cats looked bright and alert, and none of them were obviously scratching themselves. We decided that it would be better to board there than with a veterinarian because vet offices tend to be busy (and occasionally full of sick animals!), so we e-mailed our confirmation. On the day before our flight, we dropped the cats off along with enough cat food for their stay.
After we got back, Luke and Leia sought attention more often than usual, and Neko had a cold. (The poor dear.) The cats were okay, though, and life returned to normal a week or so after we got back.
The cost of boarding three cats worked out to around $32 per day. A cat sitter would have cost around $23 per day. Lonesome Kitty has since then raised its prices to $36 for three cats / day.