All creatures great and small

Happy New Year everyone.

Hard to believe we are already over a week into the New Year and so much has happened already.

Many of you would have heard about our cat Murray, but for those who haven’t, I am retelling the story here.

Evan and I got Murray as a four-year-old cat from the animal shelter. We had lost a cat not long before and were wanting a second cat to complement our female tortoiseshell CD, but didn’t want to have to deal with a kitten all over again.

This was over 14 years ago. At that time, we didn’t choose Murray so much as he chose us. He was the only cat who was more interested in us than in escaping from the enclosure which was his temporary home.

The idea of a companion to our cat CD who was by then 3 years old and had been with us since a kitten, went out the window. They co-existed, but were never friends.

As a training ground for having children, they were excellent :), as well as being wonderful lap-warmers and company. We ended up with one cat each.

After the kids came along, the cats became more family pets and Maddy adopted Murray for her own. He was a friendly, compliant cat, who you could do almost anything with, although he was very eloquent when displeased and had an ear-screeching yowl rather than a meow, which shocked more than a fair share of visitors.

Then about 7 years ago, Murray went out one night and didn’t come home. Long story short, 10 months later he turned up in Endeavour Hills and was returned to us.

CD died two years ago, but Murray continued on, seeming like he could live forever. He survived the introduction of our labrador Toby to the family, with a grace belying his old age.

Then in March last year, he disappeared again. This time, we thought he had gone away to die. After much searching and pain, we eventually moved on and finally got two older kittens from the animal shelter to return us to a two-cat family. (with a dog too)

Then, much to our shock and amazement, he turned up again. After being missing for 6 months, he was found and returned to us from Hallam this time. But he was in terrible condition, almost skeletal and at 18 years of age, it was very hard. But we were very happy to have him home and restored to his place on Maddy’s bed and in our hearts.

He adjusted well to the new kittens, almost acting like a grumpy old man dealing with rambunctious children. He even adjusted to his things being moved around - as we tried to accommodate him around the needs of the kittens.

He wasn’t well and we spent a bit of time at the vet trying to clear him of various infections and getting him to put weight on - fortunately with quite some success.

However, old age and an experience beyond what his age could handle, were finally too much.

A week ago last Friday night, Murray fell off Maddy’s bed and got stuck head down between the wall and the bed. We don’t know how long he was stuck there for. Evan took him to the vet on the Saturday whilst I was at work and another long story short, it was time to say goodbye.

Murray came home on Saturday and we spent as much time with him as we could - making sure he had the comfortable sleeping places, telling stories of his adventures and the fun we had with him.

Last Sunday, our family went to the vet together. We all wanted to be there, so went into the surgery as a family. We all gave him a cuddle, kissed him goodbye, prayed together and Evan held him as we patted him as he quickly and quietly slipped away.

We were a very subdued family who went home without him, but were grateful to the kittens and a very loving labrador, who sensed the loss and our need for something. Our friends were amazing with their support and words of encouragement as we posted about it online and a visit from Tina and Ken with condolence gifts on hearing the news, was heart-warming. Our vet surgery even sent us condolence flowers.

We had Murray for 14 years and although its painful to think of his loss, I would not change any of that time for the world.

So how does this relate to God. His grace is amazing - He brought Murray back to us so that we could spend this time with him - he was a family member as much as any of us. And he gave us the ability to make the decision to let him go, much as we wanted to keep him with us.

And then when the time came, he gave us the strength to go through with the decision and ensured we were surrounded by people to share their love and understanding. And this was all after he made sure we were brought together in the first place.

I don’t know what the situation is with pets and the afterlife - I have heard many opposing viewpoints. I do know that God gave mankind dominion over the beasts of the earth and the responsbility to care for them. I believe we did right by Murray and fulfilled that responsibility and that it was all based in love. And I thank God that he gave the responsibility for a black and white, gut-wrenching yowling, many returning, brash and loving cat to us. I think we got the better end of that deal.

In Memory of Murray

I’ve already blogged about a cat named Murray so for today, a simple note to observe that Murray is no longer with us. From his unexpected reappearance in late August, we are grateful to have had the opportunity to share another four months of life with him before arthritis and other maladies of old age finally caught up to him.

We spent our last evening together the same way we spent our first: lying on the couch watching movies with him asleep, purring away on my chest.

Bye Murray.

Murray

“Play tricks?” laughed the cat.
“Oh my my! No, no, no!
I just want to go in
To get out of the snow.
Keep your mind on your work.
You just stay there, you two.
I will go in the house
And find something to do.”
Then that cat went right in!
    — The Cat In The Hat Comes Back, Dr. Seuss

Wallpaper & System Info Management Script

I’ve been working on my little wallpaper management bash shell script that handles changing wallpapers on my desktop. The image to the right shows the system information that is displayed down the right edge of my screen. From the top you have:

Left edge of my desktop
Click for larger view

  • Local weather forecast for the next four days.

  • The current and next calendar months.

  • List of the last twelve incoming phone calls.

  • Various system info such as cpu usage, disk space and top five processes.

(The image contains bogus phone numbers, don’t bother trying to ring ’em.)

Ever since I upgraded my desktop to two monitors this background information has been a lot more visible off to the side, and so I decided to give it a bit of an update.

Originally I was using conky to display all that information, but all the info aside from the system info is fairly static, and could easily be updated when the wallpaper changes every five minutes, instead of being a set of conky processes, so I’ve been playing a lot with ImageMagick and sharpening up my bash scripting skills to actually write the information onto the wallpaper image. So far I have the phone log and calendar being written, and plan to do the weather forecast next, so then I will only be running one conky process.

Currently the script does the following:

  • Check if the screen saver is active. If so, then skip the whole thing and check again in five minutes as the computer isn’t being used at the moment.

  • Randomly pick an image file from my wallpapers folder to use for the desktop. It will cycle through the complete set of available images before repeating.

  • Takes a look at the aspect ratio of the image to figure out if it is suitable for a single screen or dual screen background.

    • If only single screen, finds another single screen image to use and stitches the two together side by side.

    • Resize the whole thing to be the same dimension as my desktop (width of both screens).

  • Apply the watermark image, which is what gives you the translucent grey rectangles behind each of the four bits of info.

  • Write the calendar and phone log information into the image.

  • Chuck the completed image up as the desktop wallpaper.

  • Wait five minutes and repeat.

So far, so good. I’ll write the weather info into the image next [DONE!]. At some point I want to update the weather script to pull the information from the XML files published by the Australian Bureau of Meteorology instead of getting it from weather.com as they always seem to be a degree or two out, and presumabley the ABoM would be more accurate [Also done!].

I’m also gonna display some quota usage metrics for my ISP. They provide an API for account holders to retrieve various info about their data usage, so at some point soon I’ll write some scripts to retrieve and format the info. UPDATE 2010/1/25: Done! I’ve updated the image to show what it looks like. It’s down next to the conky display. (Note that I’m not really spam limited, just a simulation for the demo, honest!)

Might also run another conky process to tail the last few lines of /var/log/messages. [UPDATE: I’m actually using the KDE/Plasma File Watcher widget to do this, but I added another background rectangle for it to the watermark file. You can see the right edge of it next to the weather info in the updated image above.]

And in my more nuttier moments I’ve contemplated overlaying images from The Human Clock® and/or Calendar. Pity there isn’t an API. Hmmm, maybe I better stick to what I’ve got…

At some point I may publish the bash script and ancillary bits and pieces for other people to use if interested. Will probably need a bit of a tidy up and some guide lines for hacking written up first. Also, sometime in the next month I will be upgrading from openSUSE 11.1 to 11.2 and going from KDE3.5 to 4.3 in the process, so the script will need a small amount of attention at that point.

UPDATE: Actually, it needed a lot of attention to get working under KDE 4. One of the differences from KDE 3.5 is that you set the wallpaper for each monitor separately (even though you use it like one big desktop). Also, there are no dbus or other convenient methods to tell Plasma to use a particular image as the wallpaper.

In the end I made the following changes to the script:

  • Prepare the images for the left and right monitors separately, and only stitch them together at the very end if we are running KDE 3. For dual-screen wallpapers, crop the left and right parts into separate images.

  • It now caches the correctly resized image(s) for the wallpapers. This saves a little bit of processing and also having to figure out if it is a dual-screen wallpaper if we have already seen the image before. (Each time the script starts it’ll clear the cache of files older than two days, just to help with clearing out stale files - really the overhead of this part of the processing is pretty small.)

  • Do all the watermarking and textual processing on the right image only.

  • Finally, once the images are ready, move them to their final folder location – effectively being close to an atomic operation. I’ll explain why that is important below.

The bugbear though is, once I’ve got these images ready, how do I set the desktop in KDE 4? I’ve lodged a bug report for a dbus command to be added to allow you to do this, but in the meantime I’m using a plasma plugin that can run a script on a specified time interval for each monitor, and set the wallpaper to whatever image path the script returns.

At the moment, I just pointed them to simple one-liner scripts that return the paths where by background manager script places the prepared files, and does this every 30 seconds. This is why I need the final operation to be fairly atomic - moving the completed file into place - rather than say having the output of the last ImageMagick operation write to the final location. The desktop could try and read the file while it is still being written - this way the chances of that happening are minimised.

Playing Santa

Got roped into playing Santa again this year. At this rate I’m gonna have to buy my own suit!

“Sorry I'm late, one of the reindeer had a flat…”

“Sorry I’m late, one of the reindeer had a flat…”

“Can I get a ‘Hello Santa’?”

“Can I get a ‘Hello Santa’?”

If I do this again next year I think I’ll have to work on some new material. I think the gag about always saying three “Ho, ho, ho’s” ‘cause if you only yell out one they come and arrest you made some of the parents nervous…

Wikipedia really does have a page for just about everything.

Having lived in Papua New Guinea twice while growing up, I have a certain fondness for the language Tok Pisin (to you Inglis speakers, just pronounce it the same as “pidgeon”). I can’t really speak much of it, but I can understand a fair bit when my Dad gets started (incidentally, he went back to PNG for a visit in June, and after 30 years he could still hold his own when talking with the locals).

You’ve got to love a language where “gras” means “hair”, “bagarap” means pretty much the same thing if you say it out loud in English, and while expressing how full your tummy is after a good meal you accidentally say you’re pregnant.

So it was with great delight that I discovered that there is an edition of Wikipedia in Tok Pisin, it can be found here:

http://tpi.wikipedia.org/

It has about 850 articles (compared to over three million in English) but it is wonderful stuff. I can’t understand any of it, but wonderful all the same.

Here’s a picture of me with my wantok, age four. See if you can pick me out.

Me and some mates

The Petting Problem

Inspired by projects such as the tweeting cat door and CATaLOG [sic] I’m wanting to add some form of automated access control to our pet door to control who can go in and out, when.

The Players

We currently have three cats, one dog and one pet door. Note: Click on any picture to see a larger view.

The Mischievous Mutt

Toby

Toby, our two year old Labrador needs access to the backyard anytime, day or night for access to his food, water and other amenities.

The Clutter Kittens

Bazyl Kismet

Bazyl and Kismet, are free to go out during the day (sometimes even encouraged) however in an ideal world the pet door would only allow them to come in, but not out again after dark.

The Wanderer

Murray

UPDATE 2010/01/17: Unfortunately, Murray is no longer with us. Old age finally caught up with him.

Murray, the venerable 17 year old veteran of the family who has a habit of going walkabout. At this stage in his life, it would be best if he stayed indoors.

The Portcullis

Pet Door Outside View

Our pet door, that allows the rabble to go out on the deck and into the backyard. The door is fixed in a wooden panel in the frame of what was originally a window.

Requirements Summary

So basically we need something that is able to stop the door swinging outwards during the evening, except when Toby is in proximity, and any time Murray is in proximity. We don’t need to worry about foreign cats coming into the house (you’ve met Toby, yes?) and if we really want to lock the dog out we put the barricade in place as shown below. (We soon learnt that the little plastic lock on the door is not gonna stop him if he really wants in!)

Pet Door Inside View

I’m planning on using an Arduino board as the control unit, and think I need twoone RFID tag – one for Toby and one for Murray – at the minimum to handle the rules I’ve outlined above.

So the preliminary parts list is:

  • One Arduino controller board.

  • One light sensor for sensing daylight hours.

  • One RFID scanner.

  • Two RFID tags that can be attached to the animals’ collar.

  • One solenoid or something else that can be used to stop the flap opening to the outside.

  • A red/green LED to indicate if the door is currently locked or not.

  • A three state switch to enable us to set the door to always open, always locked, or on automatic as required, although we expect it to be on automatic most of the time.

The concerns I have are finding the right RFID scanner and tags that’ll work in this environment. I’ve no experience with RFID but hear a bit about range issues. One tag will be on the collar of a big Labrador, the other on a medium sized cat, so there is a reasonable height difference. The proximity sensing cannot be flaky for this to work, especially for Toby who will get confused if the door only works some of the time and just not bother.

I have been considering an ID-12 or ID-2 scanner with a custom antenna, but people I’ve talked to think the range will be too small. The size difference between a domestic cat and a Labrador is fairly significant in this case.

Another option might be bluetooth. This would also have the advantage that it could act as a true proximity sensor, detecting when the animal comes into range, remains in range, and goes out of range, whereas RFID is generally triggered once each time the tag comes into range after not being in range. The disadvantage is batteries.

Any other ideas for proximity sensors?

The other thing is the mechanism to block the door. Ideally something that can shoot out out a little bolt to block the path of the door, or retract it to leave the door clear to open. Preferably not something that is spring loaded that needs an active voltage on it to either hold it open or hold it closed. Should only need to apply voltage to change state, not maintain state.

If a bolt is not available, I’ve seen a stepper motor with a bit of metal on the spindle used to do the same thing. To lock it simply rotates the bit of metal into place, to unlock is rotates it out the way.

UPDATE 2009/11/02: Some smart people over at stackexchange also had some good suggestions on a locking mechanism. Adam suggested using a linear actuator, and Zklapow had the novel idea of taking apart an old CD drive and using the workings that slides the tray in and out. And his suggestion reminded me that this isn’t the first time a CD drive has been used as part of an access control system either!

So, any and all feedback on the above would be welcome. Once I’ve figured out all the bits I need, I’m planning on again visiting the friendly folk at Melbourne Hackerspaces to get help on sourcing the parts and get up to speed on the fun world of Arudino programming (this time I’ll remember to bring my laptop.)

UPDATE 2010/01/17: Have finally ordered most of the parts I need for this, as well as the hermit crab tank humidity control, which I’ll probably build first (‘cause it’s simpler). I went with an ID-20 RFID scanner to start with, so we’ll see how that goes. Unfortunately, my copy of Practical Arduino which I’ll be using as a reference apparently wont arrive until mid-Feb so progress will be slow before then.

Mums are psychic

I was having a serious discussion with my son the other day, finding out what had happened in a situation that had been reported to me by his older sister. At the end and after said son had left the room, my husband turned to me and asked, “What other special powers do you have?”

My son had come in protesting his innocence in a situation in which there were no witnesses bar himself. I persisted with a line of questioning that would put police interrogators and cross-examining lawyers to shame and my son succumbed and admitted his guilt. Hence the query from my husband. Had to think about that for a while and finally figured it out. However, I am not going to tell you how. If you are a mum, you’ll understand, if you’re not, I’m not going to give away a trade secret.

I soon discovered my ‘psychic’ ability extended to another area as well. I have become very aware of my ability to find the lost. Mums know what its like, when members of their family, children and spouses alike, come to you asking for help finding something they have lost. You usually ask first if they have looked for it – a real look, not a husband or child look.

I haven’t even done that recently. When they come to me of late, before I have even begun thinking about it, I have managed to give them the location of said lost item, even though I don’t use it, have no need to use it and haven’t handled it at any time in the recent past.

I finally figured out how that one worked as well, but again, trade secrets and all that.

So its making me wonder how much further this ‘psychic’ ability extends. What other amazing ‘psychic’ powers do mothers display? I would love to hear your stories.