Wednesday, June 17

iPhone 3.0 and CalDAV

Bottom Line up Front -- Caldav and the iPhone 3.0 OS are awesome. Here’s how to make it work for you.


Finally Caldav actually works with Google. Let me back up.


You’ve read my posts talking about how to sync your calendar between MobileMe and Google Calendar using BusySync. But what if you could cut BusySync out of the middle? Even though it’s pretty quick (at max a minute), what if you could properly function with Google’s calendar via CalDav?


First things first, I have two requirements for my calendar:

I can have my calendar pushed to me at all times.

I can have access to my wife’s calendar on my phone


My wife’s calendar is on Google Calendar. That being said, here we go...


I have to have my calendar pushed to me at all times because it’s quite frequent that I am invited to a conference call, or a meeting, you know, after it started, and I need the dial in or meeting details RIGHT NOW. I don’t have time to find a computer, log in, check the calendar (or wait for it to sync). So my solution was, I need push calendar. Fine, BusySync and MobileMe was a near perfect solution for that. I say near perfect because when I received an invite on my iPhone I couldn’t accept it, deny it, maybe it..etc.. I could do that on my iCal, but not on my phone. The only option that allows you to do this is Exchange integration with the iPhone. Well I don’t have an Exchange server. Wait, didn’t Google drop that on us awhile back? Yes, yes they did.


http://www.google.com/mobile/apple/sync.html


So I went into my Calendar settings on my iPhone 3.0 software, disabled calendar syncing with my MobileMe account, and added a new account, Exchange this time, following the directions laid out here:


http://www.google.com/support/mobile/bin/answer.py?answer=138740&topic=14252


Okay, Done. Instantly my calendar started pushing down to my iPhone. I can send events from here, I can invite people, I can be invited.. etc.. instant awesome.


Okay, but what about subscribing to my wife’s calendar?


Well, she uses Google Calendar, so now with iPhone 3.0, you can subscribe to a calendar via .ics file or, via caldav. So I subscribed to her calendar via caldav. Only you can only have one Exchange account. Not worry, Apple fixed that too:


http://www.apple.com/iphone/how-to/#calendar.subscribing-to-calendars


I went in and subscribed to my wife’s Google calendar via Caldav, and now, I have both calendars fully synced to my iPhone at all times. Good stuff.


Well, I wasn’t done. Google a long time ago enabled access and the ability to integrate iCal with CalDav. I wrote before on this blog that it wasn’t ready.


But it seems Google may have fixed some issues.


http://www.google.com/support/calendar/bin/answer.py?hl=en&answer=99358#ical


Enabled me to set up Google Calendar, to which I needed to test it. So I set up an invite for several of my coworkers for a meeting, and lo and behold, when I added the invites, it presented me with a question “Check availability”. Since my coworkers and I all use Google Calendar, I was able to view the availability of my co-workers right in iCal, make an appointment when they were all free, and guess what? When I clicked Send? It didn’t send an iCal .ics invite from my Mail.app, GOOGLE sent a Google calendar invite from the server. From the SERVER. Of course, when people responded “yes” iCal updated, my phone updated, Google Calendar updated, all instantly.


The only (and I do mean ONLY) hiccup I noticed in this whole thing is, when I am typing names for invitations in the meetings, the names don’t automatically fill in from my address book. Neither locally, or on Google Contacts. Leaving me to type the entire email address out. However, I noticed an interesting side effect. I CAN type a group name (Local address book Group Name). That will populate everyone.


So, I still have my Contacts being pushed down to me via MobileMe, because I don’t like how Google Contacts auto adds people you correspond with into your address book, well, I don’t mind that, but it pushes these “new” people down to my phone and my address book on my computer, leaving me to then have to clean them all up. And that’s just annoying.


Hope you enjoy. I’ll try and post back in a couple days to let you know how everything is working with my new set up and with iPhone 3.0 in general.


Overall though, so far, iPhone 3.0 seems speedier, and can’t wait for MMS.

iPhone 3.0 and CalDAV

Bottom Line up Front -- Caldav and the iPhone 3.0 OS are awesome. Here’s how to make it work for you.


Finally Caldav actually works with Google. Let me back up.


You’ve read my posts talking about how to sync your calendar between MobileMe and Google Calendar using BusySync. But what if you could cut BusySync out of the middle? Even though it’s pretty quick (at max a minute), what if you could properly function with Google’s calendar via CalDav?


First things first, I have two requirements for my calendar:

I can have my calendar pushed to me at all times.

I can have access to my wife’s calendar on my phone


My wife’s calendar is on Google Calendar. That being said, here we go...


I have to have my calendar pushed to me at all times because it’s quite frequent that I am invited to a conference call, or a meeting, you know, after it started, and I need the dial in or meeting details RIGHT NOW. I don’t have time to find a computer, log in, check the calendar (or wait for it to sync). So my solution was, I need push calendar. Fine, BusySync and MobileMe was a near perfect solution for that. I say near perfect because when I received an invite on my iPhone I couldn’t accept it, deny it, maybe it..etc.. I could do that on my iCal, but not on my phone. The only option that allows you to do this is Exchange integration with the iPhone. Well I don’t have an Exchange server. Wait, didn’t Google drop that on us awhile back? Yes, yes they did.


http://www.google.com/mobile/apple/sync.html


So I went into my Calendar settings on my iPhone 3.0 software, disabled calendar syncing with my MobileMe account, and added a new account, Exchange this time, following the directions laid out here:


http://www.google.com/support/mobile/bin/answer.py?answer=138740&topic=14252


Okay, Done. Instantly my calendar started pushing down to my iPhone. I can send events from here, I can invite people, I can be invited.. etc.. instant awesome.


Okay, but what about subscribing to my wife’s calendar?


Well, she uses Google Calendar, so now with iPhone 3.0, you can subscribe to a calendar via .ics file or, via caldav. So I subscribed to her calendar via caldav. Only you can only have one Exchange account. Not worry, Apple fixed that too:


http://www.apple.com/iphone/how-to/#calendar.subscribing-to-calendars


I went in and subscribed to my wife’s Google calendar via Caldav, and now, I have both calendars fully synced to my iPhone at all times. Good stuff.


Well, I wasn’t done. Google a long time ago enabled access and the ability to integrate iCal with CalDav. I wrote before on this blog that it wasn’t ready.


But it seems Google may have fixed some issues.


http://www.google.com/support/calendar/bin/answer.py?hl=en&answer=99358#ical


Enabled me to set up Google Calendar, to which I needed to test it. So I set up an invite for several of my coworkers for a meeting, and lo and behold, when I added the invites, it presented me with a question “Check availability”. Since my coworkers and I all use Google Calendar, I was able to view the availability of my co-workers right in iCal, make an appointment when they were all free, and guess what? When I clicked Send? It didn’t send an iCal .ics invite from my Mail.app, GOOGLE sent a Google calendar invite from the server. From the SERVER. Of course, when people responded “yes” iCal updated, my phone updated, Google Calendar updated, all instantly.


The only (and I do mean ONLY) hiccup I noticed in this whole thing is, when I am typing names for invitations in the meetings, the names don’t automatically fill in from my address book. Neither locally, or on Google Contacts. Leaving me to type the entire email address out. However, I noticed an interesting side effect. I CAN type a group name (Local address book Group Name). That will populate everyone.


So, I still have my Contacts being pushed down to me via MobileMe, because I don’t like how Google Contacts auto adds people you correspond with into your address book, well, I don’t mind that, but it pushes these “new” people down to my phone and my address book on my computer, leaving me to then have to clean them all up. And that’s just annoying.


Hope you enjoy. I’ll try and post back in a couple days to let you know how everything is working with my new set up and with iPhone 3.0 in general.


Overall though, so far, iPhone 3.0 seems speedier, and can’t wait for MMS.

Wednesday, June 3

Working with Gmail Filters

When my company went from using an IMAP server (which I used to filter using procmail rules) to using Google’s Gmail Cloud architecture for our email, I was excited. I’d been using my Google Gmail account for years, and up until that point, had always done so through IMAP.


After I moved my incredible amount of email up to Google’s servers, I found out that IMAP (Mail.app, Thunderbird, Mutt, etc) wasn’t cutting it very well and I would need to do something different.


Over the past couple of months I’ve been playing with just about every Mac-based email client there is (even Postbox, which seems to be everyone’s biggest “thing” right now), and I keep coming back to the same thing.


Google’s Web browsing Gmail experience. Of course, with the keyboard shortcuts.


I started off just dumping every email into my Inbox and labeling things manually (well, except for listservers). Occasionally using the “Filter Messages like this” button in Gmail.


Well, after using that method for awhile, I got to the point where my Gmail filters were gigantic. I had pages of filters. Sometimes 10-20 for the same label. So I decided I had to do something. I started playing with my filters in much the same way that I used to configure my Procmail rules.


Now, let me start off by saying that Gmail’s filters are not as powerful as Procmail rules and only support some simple regular expressions. For instance, I can’t write a rule in Procmail to handle complex email addresses like “handlers-1234567@address.here.com” Where the 7-digit number is a random ticket number. In procmail I used to be able to do things like “handlers\-\d{7}@address.here.com”, so I tried some experimenting to see what I could come up with, that works.


Well I found out that Parenthetical “Or” statements work fine. For example I have a rule that filters email some of the Snort lists I belong to that looks like this:


(list:("snort-users.lists.sourceforge.net"|"snort-sigs.lists.sourceforge.net"|"chisug.lists.snort.org"|"snort-devel.lists.sourceforge.net"|"snort-inline-users.lists.sourceforge.net"))


So, the filter string is to look at the “list” headers of the email and sort on “snort-users.lists.sourceforge.net” OR “snort-sigs.lists.sourceforge.net”. You get the point. Putting parenthesis around the group and saying “|” (pipe, or) in between each one. Allowed to me to take five list sorting lines and reduce it to one.


What I found out is, you can do this with anything, not just “list”, you can do it on From, To. etc. So I went crazy with consolidation. Heck I have one filter that filters, what I call, “bulk” email. Marketing stuff from companies, websites that I’ve signed up with, advertisements, twitter notices, facebook notices, etc. Skips the inbox, and labels it as “bulk”. Do I want to read it? I might need to look through some of it, but I don’t need it in my inbox. (By the way, this filter has about 75 “or” statements in it, it’s 10 lines long)


As I mentioned before, you can do this with a lot of things. I have a filter that deletes email from certain people. Email comes in with that “From” address? Do not pass Go, do not collect 200 dollars. Go straight to the Delete.


I can’t stop these people from sending me email, but I can certainly delete it automatically.


You can even do complex nested parenthetical groups. For example, my ISC handler email addresses can start with “handler” or “handlers”@domain.sans.org you can even write to isc@domain.sans.org (not the real email address, I’m doing to that eliminate spam, to contact us, go to our website at http://isc.sans.org)


So I have a rule that says:


to:(((handler|handlers)@domain.sans.ccc|(isc|anotheralias)@anotherdomain.sans.ccc))


What I have found is, by doing these groupings, it makes my filters and labels easier to sort and use.


All the email I possibly can, I filter using these methods, tag it with a label and “Skip Inbox”.


Found out I read email much less often now, and when I do it’s sorted much more accurately and efficiently.


Give it a shot.

Working with Gmail Filters

When my company went from using an IMAP server (which I used to filter using procmail rules) to using Google’s Gmail Cloud architecture for our email, I was excited. I’d been using my Google Gmail account for years, and up until that point, had always done so through IMAP.


After I moved my incredible amount of email up to Google’s servers, I found out that IMAP (Mail.app, Thunderbird, Mutt, etc) wasn’t cutting it very well and I would need to do something different.


Over the past couple of months I’ve been playing with just about every Mac-based email client there is (even Postbox, which seems to be everyone’s biggest “thing” right now), and I keep coming back to the same thing.


Google’s Web browsing Gmail experience. Of course, with the keyboard shortcuts.


I started off just dumping every email into my Inbox and labeling things manually (well, except for listservers). Occasionally using the “Filter Messages like this” button in Gmail.


Well, after using that method for awhile, I got to the point where my Gmail filters were gigantic. I had pages of filters. Sometimes 10-20 for the same label. So I decided I had to do something. I started playing with my filters in much the same way that I used to configure my Procmail rules.


Now, let me start off by saying that Gmail’s filters are not as powerful as Procmail rules and only support some simple regular expressions. For instance, I can’t write a rule in Procmail to handle complex email addresses like “handlers-1234567@address.here.com” Where the 7-digit number is a random ticket number. In procmail I used to be able to do things like “handlers\-\d{7}@address.here.com”, so I tried some experimenting to see what I could come up with, that works.


Well I found out that Parenthetical “Or” statements work fine. For example I have a rule that filters email some of the Snort lists I belong to that looks like this:


(list:("snort-users.lists.sourceforge.net"|"snort-sigs.lists.sourceforge.net"|"chisug.lists.snort.org"|"snort-devel.lists.sourceforge.net"|"snort-inline-users.lists.sourceforge.net"))


So, the filter string is to look at the “list” headers of the email and sort on “snort-users.lists.sourceforge.net” OR “snort-sigs.lists.sourceforge.net”. You get the point. Putting parenthesis around the group and saying “|” (pipe, or) in between each one. Allowed to me to take five list sorting lines and reduce it to one.


What I found out is, you can do this with anything, not just “list”, you can do it on From, To. etc. So I went crazy with consolidation. Heck I have one filter that filters, what I call, “bulk” email. Marketing stuff from companies, websites that I’ve signed up with, advertisements, twitter notices, facebook notices, etc. Skips the inbox, and labels it as “bulk”. Do I want to read it? I might need to look through some of it, but I don’t need it in my inbox. (By the way, this filter has about 75 “or” statements in it, it’s 10 lines long)


As I mentioned before, you can do this with a lot of things. I have a filter that deletes email from certain people. Email comes in with that “From” address? Do not pass Go, do not collect 200 dollars. Go straight to the Delete.


I can’t stop these people from sending me email, but I can certainly delete it automatically.


You can even do complex nested parenthetical groups. For example, my ISC handler email addresses can start with “handler” or “handlers”@domain.sans.org you can even write to isc@domain.sans.org (not the real email address, I’m doing to that eliminate spam, to contact us, go to our website at http://isc.sans.org)


So I have a rule that says:


to:(((handler|handlers)@domain.sans.ccc|(isc|anotheralias)@anotherdomain.sans.ccc))


What I have found is, by doing these groupings, it makes my filters and labels easier to sort and use.


All the email I possibly can, I filter using these methods, tag it with a label and “Skip Inbox”.


Found out I read email much less often now, and when I do it’s sorted much more accurately and efficiently.


Give it a shot.