Quick note on Palm iCalendar Sync

A couple weeks back, I upgraded my copy of Missing Sync to the latest version, version 5.1.0. Last night I noticed that event deletions from my read-only calendar subscriptions had stopped propagating properly to the Palm. I probably should have suspected something was amiss.. every time I ran a sync, I was getting a sync services dialog telling me that the sync was “changing more than 5% of the calendars on this computer.”

I also had the event deleting problem when I first installed Missing Sync. At the time, the Mark/Space support folks gave me a procedure to erase everything on the Palm, reset the sync history, and sort of “start over”. It worked then, and it worked this time too. I documented the procedure in this post.

Looks like I might want to do this every time I upgrade Missing Sync, just to make sure I’ve got a clean slate and nothing gets wonky.

I’m still happy with Missing Sync. Now I’m pining for a desktop Mac, so I could do a bluetooth sync from anywhere in the house without worrying about firing up the laptop….

Wireless Alarm Keys Demystified

I successfully programmed an Ademco wireless keyfob transmitter today, and figured I’d document the process.. My panel is a Vista-20P and the transmitter is a 5804BD.

  1. Program an RF house ID into the panel. The house ID needs to be a number between 0 and 31. On the Vista-20P, this is done in location *24:

    Enter programming with 4-digit installer code + 800
    Enter *24
    Enter 2-digit house ID
    System chimes to confirm entry

  2. Install batteries in the transmitter. When prying the case open, hold the transmitter with the buttons facing down; otherwise they’ll all fall out when you pull the case apart.
  3. Program the house ID into the transmitter per the instructions. It must match the house ID programmed into the panel.
  4. Program each button individually using zone programming (*56). On the Vista-20P, zones 49 through 64 are reserved for keyfob zones. The following example will program button 4 to disarm the system:

    Enter *56 to enter zone programming
    Enter 1 at Set to Confirm? prompt
    Enter 49 to program zone 49 (or whatever)
    Enter * at summary screen
    At zone type prompt, enter 22 (disarm)
    Enter 1 at partition prompt
    Enter 0000 at report code prompt (no report)
    Input Device type will default to “Button type RF”
    Enter the device serial number at the prompt
    Enter 4 as the loop number (corresponds to button 4)
    Press button 4 on the keyfob at “Xmit to Confirm” prompt
    System confirms that the correct serial number was transmitted
    Review summary screen and press *
    Press 0 at “Program Alpha?” prompt

    Now, exit programming and assign a user number to this button: Enter master code + 8 + user number + #4 + zone number. For user 04 and zone 49, you would enter

    master code + 8 + 04 + # 4 + 49

    Keypad will chime to confirm.

    That’s it; button 4 on the keyfob should now work to disarm the system. The process should be repeated for each button on the fob (each button corresponds to a separate loop number).

Next step is to hook one of the buttons up to the garage door opener. It appears that I need to program the button as zone type 23 (no alarm response), then go into device programming and define an output function to activate the appropriate relay when the zone trips.

This weekend I’ll install the 5800TM transmitter so that the fobs will be able to display system status. I’ll also test the range to see if I’ll need a repeater. Hopefully I won’t.

Followup 4/22… I’ve programmed both keyfobs and everything worked as expected. I’m pretty impressed with the range of these things.. it seems to be pretty close to the advertised 200 feet. It’s looking like I won’t be needing a signal repeater. Haven’t gotten to the 5800TM yet, and may not this weekend, but the fobs don’t need it to work. I’ll use this week to test them out, and assuming they continue to work well, I’ll put the 5800TM in next weekend.

Bike to Work

The summer ritual officially began today: I rode my bike to work for the first time. I’m admittedly a fair-weather biker; I bike when it’s warm, sunny and light outside. So, today was my first time on the bike since, oh, last October or so. Combine that with two weeks or so of relative inactivity while I was home helping care for our newborn, and well, suffice it to say that I didn’t break any speed records getting here this morning. And then there’s the ride home looming, with its dreadded mile-long grind up Lawyers Hill Road. But I’ve got 8 hours or so before I have to worry about that.

With gas pushing $3 a gallon, the financial incentive to bike in (and avoid driving) is stronger than ever. The commute to work is about 15 miles round trip, and my car gets roughly 30 miles to the gallon (actually that’s being generous, it’s probably more like 25-28), so I save about 1/2 gallon of gas every time I commute by bike. At $3 per gallon, that’s around $1.50 extra in my pocket for each ride. And the more expensive gas gets, the bigger the payoff gets.

Last year, I biked to work 22 times, but I didn’t start doing it until early August. So hopefully this year I can do it a lot more. This year I plan on keeping a log so I can track my times, average speed etc. At the end of the season we’ll see how I did.

Blosxom Import Complete

I just finished importing all my Blosxom entries into b2evolution. The process was more or less painless; I just pulled down all the Blosxom entries in Movable Type format using the flavor I mentioned earlier, then processed the result with a Perl script, then ran b2evolution’s Movable Type import utility to bring the entries in. The Perl script basically catenates lines together in the body area of each entry, which makes the result look more attractive in b2evolution. Once the entries were in, I went through and made minor edits to make things look better.

The only thing I don’t care for about b2evolution is its insistence on sticking <br> tags at the end of every line, even within blocks of markup. This makes it really hard to include code snippets, because I can’t use <pre> blocks; I have to explicitly format everything and use &nbsp; entities to do spacing. There must be a way to make this work right, but I haven’t found it yet.

That aside, it’s nice to have a “real” blogging engine with all the associated bells and whistles. I’m sure I’ll figure out all of b2evolution’s various quirks over time.

Followup — Looks like the <br> tag thing is controlled by the Auto-BR option at the bottom of the page where you edit posts. It seems to be turned on for all the imported entries, and off for the native entries. When Auto-BR is off, it seems to be much better behaved with embedded HTML in entries.

Time to fix the garage door opener

As I noted earlier, our garage door opener receiver died a few weeks back. Rather than get a new, cheap, made-in-China receiver to replace it, I’ve decided to get a couple wireless remotes for our security system and program them to operate the garage door. Now, the original plan was to buy two bidirectional remotes (they can receive and display system status as well as arm/disarm the system, hence the term “bidirectional”), and a special keypad which includes an RF receiver/transmitter module to support the remotes. But, our system already has an RF receiver, and I recently learned that my particular alarm panel does not support more than one receiver.

Now, why am I interested in a second receiver if I already have one installed? It’s basically because of the oddball layout of our house. Our house is very long and narrow, and the center is narrower than the rest of the house. There’s no real practical spot to mount a receiver in the dead center of the house. It either needs to go closer to the west side of the house, or the east. It so happens that most of my wireless zones are on the west side of the house, so that’s where I mounted the current receiver. Unfortunately, the garage and entrances are all on the east side, so the receiver isn’t in the optimal spot for remote keys.

Plan A for dealing with this was to get the keypad with the RF receiver, and mount it closer to where we’d be using the remotes. But, I can’t do that because my panel doesn’t support multiple receivers. That brings me to Plan B, which is to buy the remotes and the required transmitter module, and just try them out with my existing receiver in its current location. These things supposedly have a 200 foot range, and I’m still well within that, so it can’t hurt to try it out.

While researching this today, I learned that there’s now a wireless repeater module I can buy, which effectively extends the range of the existing receiver. So if I go with my Plan B and the performance isn’t up to snuff, I can add a repeater closer to the garage, and that should hopefully do the trick. So that’s the current plan. We’ll see how it goes!

Importing Blosxom data into b2evolution

Made my first attempt at importing my Blosxom data into b2evolution this morning. Looks like it will be doable with just a bit of fussing. The basic strategy is to use this handy Blosxom flavor to convert the Blosxom data to Movable Type export format, then use b2evolution’s MT import utility to bring the data in. I tried this on a couple of entries, and it works, but I’ll need to do a bit of data munging. First off, the Blosxom flavor leaves an <h3> markup tag at the beginning of each post, which the importer doesn’t like. And, the importer seems to insist on sticking <br> tags at the end of every line, which makes for some ugly line breaks in the final product. There may be a way to control this behavior from the importer, but I think it’ll be just as easy to massage the import file with a Perl script. Next step is to do that, and try a few more test imports, before bringing in the whole enchilada.

Started the Pool Pump

After a winter of freedom from the big money-sucking hole in the back yard, I bit the bullet and fired up the pool pump today. Now, in the Mid-Atlantic, swimming season runs from roughly the beginning of June through Labor Day. If you’re lucky, you’ll get a couple extra weeks on either end, but for the most part, that’s what you get. For the past few years, my routine has been to start the equipment up around now, and uncover the pool around Memorial Day. I’ve found that starting the equipment early saves work, because it allows me to chlorinate the water before it gets too warm and algae starts taking hold. And with pools, anything that saves work is a bonus.

Anyways, the pump primed right up using the main drain for suction. The water level is still too low to use the skimmers. And the water temperature is (drumroll please) a balmy 56°F. Another 25 degrees and we’ll be swimming.

Now I need to start thinking about my spring pool project, repairing some loose coping and recaulking the expansion joint between the pool and the deck.

Amended returns..

I filled out amended 2005 tax returns yesterday, to report income from my wife’s investment club. I’m not terribly impressed with how TaxCut handles amended returns.. For federal, you basically save your existing return under a new filename, then update the return to include the changes, and then tell it you want to fill out form 1040X. But then after you fill out the 1040X, you’re kind of on your own as far as figuring out what you need to print, where to mail it etc. The program’s filing logic isn’t smart enough to know you’re doing an amended return, and it just keeps telling you that the return has already been successfully filed (assuming the return was previously filed electronically). As far as state goes, I couldn’t find anything at all for doing an amended state return. It turns out that for Maryland, it’s all done via the online iFile system (assuming that’s how the original return was filed). Doing it this way was a snap, and I continue to be impressed with the iFile setup. As far as TaxCut goes, I guess you get what you pay for… it was considerably less expensive that Intuit’s TurboTax, and I’m curious if TurboTax has better support for doing amended returns. Hopefully I won’t have to do this terribly often (my wife’s defunct-but-not-disbanded investment club is a topic for another rant)…

Totally different topic — I’m going to try out another blogging engine. I’ve been really happy with Blosxom, but it’s very bare-bones and I’d like to try out something a little more full-featured. My goal was to find something that’ll run on my server which is equipped with php4, mysql and apache. I’d also like something with a relatively small footprint (Movable Type is kinda overkill for my purposes). I found b2evolution which looks promising and is available as a Debian package. Just working on an issue with the database config, and I’ll be able to give it a try.

What a week

Timeline for last week:

Monday, April 3: Our second child, Andrew Charles, is born via c-section. Birth weight is 8 lbs, 4 ounces. Length 21″.

Tuesday, April 4, really early A.M.: Our older boy, Michael, comes down with the “Stomach Bug Of Death” (hereafter referred to as “SBOD”). Frequent projectile vomiting, diarrhea, malaise, and general unhappiness ensue.

Tuesday, April 4, late A.M.: our newborn has successful surgery to repair a minor abdominal wall defect. Much relief ensues.

Wednesday, April 5, A.M.: I take our still-ailing 3 year old to the doctor. SBOD diagnosis is confirmed. Treatment plan: Just give him fluids and wait it out. Fun fun.

Wednesday, April 5, Evening: Yours truly catches the SBOD.

Thursday, April 6, Morning: Grandma picks up Michael (who is slightly improved, as in, no longer puking his guts out) for the day, so that I can lie around all day groaning and hurling.

Thursday, April 6, Evening: I finally stop throwing up. Hurray. Michael spends the night at Grandma’s.

Friday, April 7, Morning: Feeling a bit better, finally up and about. Still not much appetite. I work a bit on getting the place ready for Mom and Baby, who are coming home the next day.

Saturday, April 8, Morning: Mom and Baby come home.

Saturday, April 8, Evening: Grandma’s turn to get the SBOD.

Sunday, April 9: I’m finally back to a normal diet and off the Immodium. Michael still has the runs. Mom and Baby doing great.

The fun never ends…

Mower blade

I took a first look at my push lawnmower today while my 3 year old rode his tricycle around outside. I reinstalled the blade (which I sharpened over the winter) and looked into a problem I had been having with the deck. Last summer I hit a big chunk of wood (or something similar) and ever since that, when I make certain maneuvers, the blade will graze the deck and make a loud, unhappy clattering noise. At first I thought the deck was dented, and banged on it a few times with my ball-peen hammer to try to get it back in shape. But, it looks like the real problem is that a weld has partially broken loose, causing part of the deck to stick out too close to the blade. If my peening attempts didn’t do the trick, it looks like I might be able to reattach the loose piece with a sheet metal screw.

Based on the engine date code, this mower is 16 years old this year (I bought it used in 1996). The engine is still good, and I’ve been nursing it along for a while now and it keeps on going. Hopefully it’ll last me another 16…

Followup 4/15.. I fired the mower up today. After about 5 minutes of mowing, the blade started scraping the deck again. Shut it off, drilled hole, inserted screw to hold deck together, problem solved (for now at least). Looks like the mower will live to see another season..