Monday, January 29, 2007

Microwave Dressing for Stuffing

This recipe is adapted (to reduce fat, and to match what I had) from an old "Kenmore Microwave Cookery" cookbook.

Mix in a 1 quart (or larger) glass container:

1/2 cup water

2 Tbs gravy mix (like Tone's Gravy Mix)

1/2 onion, chopped

1/2 tsp dried thyme

1/4 tsp garlic powder

Microwave for 5 minutes.

Chop these in the food processor, and then add to the microwave container:

3 stalks celery, chopped

1 cup mushrooms, chopped

Microwave for 3 minutes.

Now chop these in the food processor, and then add to the microwave container:

2 cups dry bread chunks

1/4 cup almonds, finely chopped

2 tsp dried parsley flakes

1/4 tsp freshly ground black pepper

Microwave for 2 minutes.

My microwave was set to 100% power, and it's rated for 1100 to 1500 Watts depending on which label you read. You may need to adjust the times for different microwaves.

Amazingly enough, this tastes exactly like stuffing! (However, I'm not a fan of it. I made this anyway because my dear husband likes stuffing.) I used Tone's Turkey Gravy Mix.

For storage, it freezes well.

Just so you know that I'm hopeless with recipes, here's the original.Mix 1/2 cup butter, 1/3 cup onion, and 1/4 cup celery in a 4-cup glass container and microwave for 10 minutes or until onion is transparent. Add 3 cups dry bread cubes, 1 cup water or chicken broth, 2 tsp parsley flakes, 1/2 tsp salt, and 1/8 tsp freshly ground pepper. Makes enough stuffing for a 5 to 6 pound roasting chicken. Can replace 3 cups bread with 2 1/2 cups wild rice, 1/2 cup slivered almonds, and 1 cup sliced mushrooms.

Monday, January 15, 2007

GCalDaemon: beta 2

There's a new version of GCALDaemon, and I've been playing with it for a few days. (OK, nonstop this entire weekend.) The (semi)colon bug for Unix is fixed in beta 2, and you can sync multiple calendars now!

First things first, I kept losing data (usually To Do items), so make a backup first. I haven't figured out the pattern to this problem yet, so I don't know if I should submit a bug report. Another annoyance is that two of my calendars went unidirectional, with Google overwriting iCal. I made a new Google calendar and linked it to (a restore of) the same iCal, and it appears to be better. (Odd, hunh?) Make several backups if you want! I made one with iCal and one in the Finder.

  • /Developer/Tools/CpMac -pr ~/Library/Application\ Support/iCal/Sources ~/Library/Application\ Support/iCal/Sources.backup
  • # or just cp instead of CpMac on OS X 10.4+

Now you can install beta 2.

  • cd /bin
  • sudo rm -rf /bin/GCALDaemon # unless you don't want to start over from scratch with a clean slate!
  • sudo unzip /Downloads/
  • sudo chgrp -R admin /bin/GCALDaemon
  • sudo chmod -R g+w /bin/GCALDaemon
  • sudo chmod 755 /bin/GCALDaemon/bin/*.sh
  • cd /bin/GCALDaemon/bin
  • ./
  • cd /bin/GCALDaemon/conf
  • open -a subethaedit gcal-daemon.cfg

Follow the directions for file-based synchronization like Rainlendar. HINT: Look in ~/Library/Application\ Support/iCal/Sources/*.calendar/Info.plist for the name of that calendar.

Then you can make it a full OS X citizen using Lingon. To get started, click on Assistant in the toolbar.

  1. Keep an application/script always running
  2. Label: net.sf.gcaldaemon (leave "Launch only when I log in" checked)
  3. Application/script: /bin/GCALDaemon/bin/

And there you have it, a new entry in "My Agents" to keep iCal sync'd with your Google Calendar(s) every time you log in to your Mac!

I also ran across two other alternatives that will sync iCal and Google Calendar bidirectionally, jin'sync in alpha, and Spanning Sync coming soon.

Bib Clip and Hat Attach

This was a very quick project using found items! I saw bib clips that look really convenient for travel, but it's not worth $12 plus shipping plus the wait to me. Dishwasher-safe and rounded is probably very good for babies, but Karston seems mostly grown now. So, since we'll be on the road next week, I thought I'd make one set of bib clips. I cut off the blue cord from a trade show pen that didn't write, and held a lighter to the ends to seal off where I had cut to keep it from unraveling any more. I put a white cord toggle over a loop in the middle of the cord, and I tied a bulldog clip, also from trade show visits, to each end. I looked through the Klutz Book of Knots, but ended up making up the knot anyway. I pulled a loop through the hole in the bulldog clip, ran the short end through the loop, snugged it up, and tied a half-hitch to finish the deal. It seems very secure. VoilĂ , one bib clip! Total cost, zilch; and I got to clear away some lingering trade show leftovers.

Since I was on a project roll in the right room, I kept going. I used a leftover piece of embroidery thread, two lanyards (one at either end), and one more bulldog clip to make a secure hat attachment for Karston. Fasten a lanyard on the hat, clip the other end to your collar, and the wind won't take your hat. The kid's ready to travel now!

Saturday, January 13, 2007

OnMyCommand: Software - Utility - Contextual Menus

One sign of a useful utility is that you don't notice you're using it, but you do notice it's excruciating to use a different Mac without it. That captures how I feel about OnMyCommand. The download comes with the extremely useful OMCEdit application to get you started. I keep these commands and a few others at my fingertips: Open Terminal Here, Copy Path to Clipboard, View Metadata, Change webloc file to url, and Make <img> tags. Open Terminal Here closes the loop between CLI and GUI for OS X. From Terminal, you can type open . to open the current directory as a Finder winder. Well, with a right click on the window's background, Open Terminal Here will launch a new Terminal window and change to that window's directory. It makes the Unix experience of OS X seamless. Copy Path to Clipboard not only copies the path of the current file, but also properly escapes certain characters for you. Easy! You can find these commands and more here.

Hmm, I think I need to add Update Finder Front Window from mats to OnMyCommand, if there's not an equivalent already. It's basic AppleScript, so it's ready for OMC without serious work.

Friday, January 5, 2007

GCalDaemon: sync both ways between iCal and Google Calendar

The good news is, I found a way to have bi-directional synchronization between Google Calendar and Apple's iCal! The bad news is, it only works for one calendar, and of course I have more than one in both places. The software to pull this off is GCALDaemon; I used version 1.0 from 2006-12-23. I've included some Terminal commands with the steps below to make it easy.

  1. download the Unix-compatible version and unzip GCALDaemon into /bin (paths are hard-coded, so it needs to be /bin so you'll need to use sudo to modify /bin, and you'll end up with /bin/GCALDaemon)
    • cd /bin
    • sudo unzip drag-and-drop gcaldaemon-linux-*.zip file on Terminal
  2. change all semi-colons in /bin/GCALDaemon/bin/ and /bin/GCALDaemon/bin/ to colons at least for version 1.0
    • cd /bin/GCALDaemon/bin
    • cp password-encoder.oops
    • tr ";" ":" < password-encoder.oops >
    • cp standalone-start.oops
    • tr ";" ":" < standalone-start.oops >
  3. put a colored label on all folders in ~/Library/Application Support/iCal/Sources
    • open ~/Library/Application\ Support/iCal/Sources
  4. launch iCal, and create a new calendar, maybe named Google
    • open -a iCal
  5. quit iCal, and see which folder doesn't have a label in ~/Library/Application Support/iCal/Sources (you can't go by timestamp since all calendars will be updated by iCal, but colored labels will show you the new folder clearly)
  6. follow the directions for file-based synchronization like Rainlendar
    • put the full path to corestorage.ics in that new, unlabeled folder (like /Users/nethope/Library/Application\ Support/iCal/Sources/C00EE8A4-C0C1-EDC5-AA52-6AEC88F8D30B.calendar/corestorage.ics with no ~ shortcut) into /bin/GCALDaemon/conf/gcal-daemon.cfg for the variable file.ical.path

I submitted a SourceForge bug report about the colons versus semi-colons error, so it might be fixed in version 1.1. In that case, the tr commands above to replace semi-colons with colons won't have anything to change in the two scripts, but shouldn't break them either. (You can always skip that step, and come back to it only if you see Java errors when you run those scripts.) According to Java documentation, "a class path may include several paths, separated by a semicolon (Windows) or colon (Unix)", so it's just a simple platform translation issue.

My backup plan, if GCALDaemon didn't work, was to try GCalSync and to have my Palm OS Treo be the intermediary to translate between Google Calendar and iCal. I don't know if that approach allows multiple calendars; if it does, then I would prefer it. I sync my Treo to my Mac with The Missing Sync specifically because I want to have multiple iCal calendars on my Mac that are also on my Treo, and I outgrew Palm Desktop a while ago (don't get me wrong, that's a good application too, but it doesn't have as many external choices to create a new event without leaving the current application).

My other backup plan was ScheduleWorld. It looks really interesting since it supports pretty much anything that stands next to a standard, and it might be a better solution. (Although I wanted to avoid needing another server, like the GooSync service.) It seems like this ought to be a simple process, an internet-connected Mac with access both to iCal and to Google Calendar, both of which talk the iCalendar standard. Who needs an intermediate server? Who needs a translator?

I guess I like GCALDaemon (for the moment) because it allows iCal and Google Calendar to talk directly. In my backup plans, I would either use Treo+GCalSync or ScheduleWorld to translate between two applications that both use RFC 2445. Why translate? Just connect 'em. Stay tuned to this channel when I put GCALDaemon into launchd (probably with Lingon).

My setup: PowerBook G4 (almost two years old) running Mac OS X 10.4.8 (current) with iCal 2.0.3 (also current), Gmail (I don't know if a plain Google account works), and Google Calendar.