Trash Can Snorkel

This one's dumb. We've got the same trash can that everyone who shops at Target has. The inner removable pail is handy for keeping spills from pouring out the foot pedal hole, but its air-tight nature creates quite the vacuum when you're trying to pull the bag out.

|http://www.target.com/gp/detail.html/sr=1-11/qid=1169524414/ref=sr_1_11/602-0868447-3796659?ie=UTF8&asin=B000JT7N7A|

After ripping the handles off yet another Glad bag trying to get it out of the pail I went to get a drill to poke an air hole in the bottom -- leak proof be damned. Next to the drill I saw a piece of 3/4" plastic tubing, which I ran from the top of the inner pail to the bottom.

|https://ry4an.org/pictures/web/cimg0280|

After a trash day that left the bag handles intact I can report that the hose allows air in without requiring new holes. Future trash pails should have top to bottom air ducts molded into them. Trashcan manufacturers please to be getting on that right now.

The Death of the Har Mar Theater

Years ago I had a bad movie viewing experience I can't actually recall at Har Mar Theater in Roseville. As an experiment in how rumors spread and as mild revenge I decided that every time someone mentioned the Har Mar Theater I was going to let them know that once a rat ran across my foot while I was watching a movie there. It's not true, but I figured it was a story that people would pass on to friends.

In six years of spreading that story at least fifty times I'm sad to say that I never once heard about rats at the Har Mar Theater from anyone, nor did I ever tell someone my story and have them mention they'd heard a similar story elsewhere.

Still, in the end I'm victorious. As Sarah let me know yesterday, the Har Mar Theater is closing. I'm pretty sure that I (and not the new megaplex opening across the highway) am singularly responsible for this happy turn of events.

Comments


This reminds me of the time I put fake fortunes in the fortune cookies at Pioneer Hall and you got the one that said "This cookie is not safe" and you told me about it, not knowing that it was ME that put it in there. -Paul N.

I remember that. I'll admit that in my retellings I'm the one who doctored the cookies. Hope all's well, Paul.

Whole House Humidifier

This weekend I put in a Honeywell 360A whole house humidifier. The instructions said it should take an hour, and it only took me four. Nothing went wrong, which what you hope for when a project means cutting holes in your duct work, tapping into your water, and some wiring. Now when we wake up our throats don't hurt.

IMG_1153.jpg

IMG_1154.jpg

Comments

Update: If you don't tighten down the compression fittings on the water supply line it will let go and you'll drain water into the floor drain all night. d'oh

From a concerned internet'er Get rid of that saddle valve at your earliest convenience, those things a prone to leaking or letting go. Have someone put in a tap on the line with a proper cutoff with a 1/4"FIP. Same connector you would use for an icemaker. To be real safe after you do that you can buy a braided steel icemaker line that will connect inbetween the cutoff and the humidifier, so no compression connectors anymore either.


The Wedding Planned With Bugzilla

If things have been a little sparse around here over the last year or so it's because outside of work the bulk of my organizational and creative energies have been going into the planning of our wedding.

The wedding was this weekend, and everything was spectacular. Photos and details can be found on the wedding website.

I've come away from the wedding planning experience with this advice for guys: Don't bother helping; no one but your finance/wife will believe you've done anything, and she's already in love with you.

Kate and I got no end of comments and jokes predicated on the notion that the guy never does anything to help with the wedding, and despite her earnest protestations to the contrary, you could tell that people came away with a belief that at most I probably helped pick the cake or something.

That assumption was all the more maddening because, in fact, my tendency to over plan events was perfect for a wedding. I'd been waiting for just this sort of opportunity to plan a large event and in doing so to put a record keeping theory to the test. -- By now it should be obvious that Kate, my wife, is a very patient woman.

For years I'd watched an event planner who worked out of the same coffee shop I did practice her trade. So nearly as I could tell she lived entirely in a world of post-it notes and phone calls. On any given day I'd watch 500 different pieces of information flit before her mental windshield with no discernible organizational system I could recognize. It drove me crazy. I wanted to offer to help her come up with a computer based solution that would patch all the holes in her process I was sure had to plague her on every project.

Meanwhile, I was sitting next to her working on computer software, which for any project of reasonable size includes tracking thousands of details. Among those details are defects, bugs, and any team with any hope of success uses a bug tracker system to keep them documented. The most popular, but certainly not the most user-friendly, bug tracker is Bugzilla. I like it a great deal.

I became certain that more than a spreadsheet or calendar or MS project, event planning required a bug tracker. I was pretty sure that Bugzilla could be put to work to keep good logs of tasks, dependences, and details in exactly the right fashion.

As alluded to previously, Bugzilla has a user-interface that only a software developer could love. Kate's not a software developer, so there was some initial resistance, but she's a trouper and took to it eventually. File attachments held contracts, and comments included phone logs. We were planning the wedding long distance so most communications were electronic.

In the end it worked well -- no details fell through the cracks --, but it was probably overkill for a two-person project. Something like basecamp is probably a much better fit. Bugzilla does have some nearly useless charts that allowed me to produce the horrible dependency graph below:

/unblog/static/attachments/2006-10-27-wedding-dependencies.png

Motion Lights and Silliness

We've got an old lighting fixture for our front porch, which we didn't want to replace with an ugly motion light. I tried putting a socket adapter in-line with the bulb, but it wouldn't fit in the globe.

More time spent staring at the lighting offerings at Home Depot turned up a workable, if convoluted, solution. An external motion detector sends a wireless signal to a replacement indoor light switch, which then turn on the external light. To make what should have been a ten minute project even sillier, I should be able to control the remote switch from the home link button in my car. Heh.

Home Repair and Misc.

When I don't post here in a while it either means I'm not building anything new or that I'm too busy to write about what I am doing. This time it's the later. Not that any of it's been exciting, but almost all of it involved using a saw, which totally counts.

Gwin, our eldest cat, has always kicked toys into the basement sump for the joy of watching humans pick them out later. Milo, on the other hand, likes running into the muddy sump and then running up stairs. To keep the cats and their toys out I built a little wooden frame to fit and covered it with chicken wire. It's ugly but functional.

|https://ry4an.org/pictures/web/Sump|

At some point during Monday night's storm a 20' branch fell from the sky and broke our fence gate. Neither of us woke up. Sometimes I park my car right where it landed, and I'm glad Monday wasn't one of those times. Repair was just a matter of replacing a few pickets and fixing the latch. The latch has never worked well and still doesn't, but it's slightly better, which I keep telling Kate counts as fixing it.

|https://ry4an.org/pictures/web/Gate|

Meager construction efforts aside I've been working on some big things at work and on our [http://kateandry4an.org/gallery/invitation wedding invitations], which we hope to mail in the next week or two.

Ivy and Stucco

This weekend was full of discoveries involving ivy and stucco and removing the former from the later. Summarizing them we have:

  1. Don't. Keep them away from one another. If you have a stucco home and your neighbor plants ivy secretly poison it.
  2. If there is ivy on your stucco, just leave it there. Removing it is not worth the pain.
  3. If you do remove the ivy, remove it completely. If you pull it off and plan on getting the residual debris later, you're going to find it's dried to a state where it can no longer be pulled off in strands like it can be when green.
  4. If you've let residual ivy dry to the point where it's brittle, plan on a day full of power washers, long handled brushes, and ladders. Try to drink a lot. Expect to repaint.

Caching In My Moving Karma

There's a purchase agreement in place for the condo, and it's time to organize the moving extravaganza. Saturday, June 17th at 11am moving helpers generous with their time will find everything pre-boxed, wrapped, stacked, and ready. Half the stuff will be going to Salvation Army down the street and half will be moving from 580 N 2nd St. #120 to 330 E 50th St. I'm renting a large truck (and possibly selling off a good fraction of the furniture in advance), so with luck we'll be on to the beer and lots of food portion of the afternoon after just one short trip.

Please let me know if you think you can make it so I can plan food supply and figure out if I need to start trying to call up moving karma chits by name.

Thanks,

Comments


Yay! We'll finally have a sofa for people to sit on.

Meager Home Improvements

After moving into the house I started a series of small home improvement tasks. Some of them have genuine safety reasons but many happened only because changing things demonstrates residence. Here's an incomplete list of things I've done:

  • added a ceiling fan to the bedroom
  • rewired the doorbell with modern wire so it doesn't ring everytime you walk past the dining room heat register
  • added shelving, a phone jack and power outlets to create a server corner
  • added appliance-grade outlets behind the stove and fridge (rather than the ungrounded lamp-grade extension cords running through holes in the floor they previously had)
  • added a motion light to the break-in-ariffic back yard
  • cleaned out the gutters (I knew there's a reason I got that condo)
  • replaced the rotting wiring for the basement lighting

|https://ry4an.org/pictures/web/datacenter| |https://ry4an.org/pictures/web/motionlight|

Display Google Calendars with PHP iCalendar

Google has a new calendar service, and it's great. I really try to avoid hosted data solutions, but this one's just too good to pass up. My one gripe is that there's no easy way for non google calendar users to view the calendars. They're available live as both ical and rss/xml files, but the average home web user doesn't know what to do with either of those.

There are plenty of services out there that will display an ical file as a web page, but none of them I tested rendered the google ical output well, and all of them were packed with ads. Previously, I'd used software called phpicalendar to display ical files created by my old calendaring solution on the web, so I started there. It didn't parse the google output well either. However, with a little tweaking (see the patch in the zip file below) and some Apache trickery (see the README in the zip file) I can now get good phpicalendar output from google.

google-calendar-phpicalendar-2.22.zip

Update: Looks like now google offers a good way to do this.

Comments


Hey man I really want to get my php iCalendar working with my new Google Calendar as you have, but my server is not a Linux box, so I don't have a good way to patch the diff file you included in the zip. I was wondering if you would be willing to upload the actual files that you changed, or would you be willing to email them to me. I would really appreciate it.

Hrm, not to be unhelpful, but if you read the patch file you'll see I just commented out one block and added a simple if test somewhere else. It should be very easy to do by hand on the two files. The unified diff format is nice in that it's quite human readable despite being ready for machine processing. -- Ry4an

I'm not familiar with php icalendar, but (stupid question...) if using your work around, and I keep making new events in the google calendar, will they show up in the icalendar, or will some kind of cron job be required? (maybe I should just use the icalendar... but the google site is so seductive....) --Rebecca, cookieshouse.com

Yes, my phpicalendar hack does a live display of the google data. One could use phpicalendar all by itself, but I like the invites, access controls, and UI from google calendar well enough that I though it was worth trying to have phpicalendar do a live display of data I keep in google calendar. -- Ry4an

I was all excited to work on this little project. Then I realized I don't have the ability to apply patches (or if I do, I haven't a clue how to). Thanks for sharing though, it looks super cool on your site! --Rebecca, cookieshouse.com


I could not get your method to work so I had to rework the ical_parser.php. I recreated the $cal_filelist array with my google calendar urls. Then so the names of the calendars were not "basic" I created another array called $cal_names. Here maybe some source code will make this more clear. At about line 102 of ical_parser.php
$cal_filelist = array ("http://calendar url 1", "http://calendar url 2");
$cal_names = array ("Calendar Name 1","Calendar Name 2");
$counter = 0;
foreach ($cal_filelist as $cal_key=>$filename) {

        // Find the real name of the calendar.
        //$actual_calname = getCalendarName($filename); original code commented out
        $actual_calname = $cal_names[$counter];
        $counter++;
}

-- Psycho Whale


That's a more general solution than my quick hack. You might want to submit your code changes back to the phpicalendar project using their patch tracker. I'm sure they're getting all sorts of "support google calendar" requests and yours is a good step toward that. -- Ry4an

I applied your patch... no problem. But when I did the .htaccess edit, it would not redirect the .ics file to the google calendar. I then edited the config.inc.php to allow webcal's and added the exact patch of the .ics (which would be redirected) in the "$list_webcals[] = *;" area. No dice. It would then give me an error (which is strange since the file actually existed in that spot). Any idea what I'm doing wrong? Do I need to edit the "$default_path" in the config.inc.php to show the patch to the redirected .ics file also? I'd love to get this thing to work but doesn't seem to be happening. Tried Pycho Whale's solution also but that worked even less. Not sure if he was editing the ical_parser.php before or after your patch or if that even was relevent. Lot's a questions. Any help? -- RSmith423


If the .htacces file is ignoring your Redirect line it's because your httpd.conf file isn't set to allow Redirect lines in .htaccess files. You can either edit httpd.conf to allow Redirect lines in .htaccess files or you can just put the Redirect line directly into the httpd.conf file. Instructions for both can be found in the Apache online help. -- Ry4an


I noticed that recurring events don't display correctly. If you have a recurring event the start time and end time is always the same.

Here is my hack to PHP iCalendar to make it work:

in ical_parser.php:

my code:

ereg('^PT([0-9]+)S', $data, $duration);
$the_duration = $duration[1];

replaces this original code:

ereg ('^P([0-9]{1,2}[W])?([0-9]{1,2}[D])?([T]{0,1})?([0-9]{1,2}[H])?\([0-9]{1,2}[M])?([0-9]{1,2}[S])?', $data, $duration);
$weeks                  = str_replace('W', '', $duration[1]);
$days                   = str_replace('D', '', $duration[2]);
$hours                  = str_replace('H', '', $duration[4]);
$minutes                = str_replace('M', '', $duration[5]);
$seconds                = str_replace('S', '', $duration[6]);
$the_duration   = ($weeks * 60 * 60 * 24 * 7) + ($days * 60 * 60 * 2\4) + ($hours * 60 * 60) + ($minutes * 60) + ($seconds);

Apparently Google uses seconds to specify the duration of the event, but PHP iCalendar expects the duration in hour minute second format.

Thanks for the patch!

-Charles


The only thing I had to do to get GoogleCalendar to work was the following:

phpicalendar/config.inc.php: $allow_webcals = 'yes';
phpicalendar/config.inc.php: $timezone = 'Europe/Paris';
php.ini: allow_url_fopen = On

And it worked right out of the box ...*

http:// YOUR-SITE /phpicalendar/month.php?cal=http://www.google.com/calendar/ical/ YOUR-GMAIL /public/basic&getdate=20060518

Thomas.


Excellent, maybe they've updated. I kept having it refuse to display any webcal URL that didn't end in '.ics', pehaps that's been fixed. Also, I found I needed to add some link text to the blank free/busy view entries for them to be clickable, but that would only be required if you use the free/busy (rather than full detail) view gcalendar provides. --* Ry4an