Calendar Invitation Email Gone Awry

Here’s some more details on calendar email issue I noted late Monday.

Just after 10pm on Monday, I attempted to migrate my calendar from Google Calendar to Fastmail Calendar1.

I did this by exporting my existing calendar from Google (per https://support.google.com/calendar/answer/37111?hl=en) and then re-importing it back into Fastmail using Apple’s Calendar App. During this re-importing process, it appears that the Fastmail system regenerated the event requests and emailed all the participants of the events; although I initially suspected Apple’s Calendar app.

My wife, who was sitting next to me, was the first to let me know something was awry when she received over 400 emails from me.

After aborting last nights attempt, I tried again to import the data again Tuesday morning by using FastMail’s “Subscribe to a public calendar” feature (https://www.fastmail.fm/help/calendar/publiccalendar.html), which should not have resulted in emails being sent but still did.

In total, 109 people were affected by this issue and up to 2904 emails were sent (1452 from each incident).

Graph of Emails Sent

The good news (if there is such a thing) is that 45% of those affected only received a single email (well, two emails), and 78% of those affected received less than 10 emails (20 emails across both incidents).

Unfortunately, emails were also sent to people even when I was not the original organizer of the event. This accounted for over half the emails that were sent.

I have opened a ticket with Fastmail (Calendar import emailing participants (Ticket Id: 479473)). Fastmail has been prompt and the issue is, in theory, resolved. However, in the future I plan on scrubbing the calendar file of email address to prevent this issue from occurring again.

For those curious, here’s how I extracted2 the number of those affected from the ICS file:

grep -Eiorh 'mailto:([[:alnum:]_.-]+@[[:alnum:]_.-]+?\.[[:alpha:].]{2,6})' "$@" basic.ics | sort | uniq -c | sort -r

Mea Culpa.


  1. there’s a larger story about why, but that’s not important at the moment 

  2. based on mosg’s answer on http://stackoverflow.com/questions/2898463/using-grep-to-find-all-emails/2898907#2898907 

The Day We Fight Back

I-do-not-consent-stickerBSix months ago, primarily in light of the issues concerning the NSA’s use of what I believe to be unconstitutional searches I started the process of moving my email system (which is also the email system my family and extended family uses) away from Google Apps.

Last week, I completed the technical transition to the new mail system provided by FastMail.

Today, the fight continues. I called both my Senators, as well as my Representative…yes, I called them. On the phone.

I talked to a live human being and I told them what I thought:

I’d like my Senator / Representative to support and co-sponsor H.R. 3361 / S. 1599, the USA Freedom Act. I would also like my Senator / Representative to oppose S. 1631, the so-called FISA Improvements Act. Moreover, I’d like like my Senator / Representative to work to prevent the NSA from undermining encryption standards.

If you visit AFDN today, you will see a small large banner that will help you contact your Senators and Representative to do the same.

“I Do Not Consent to the Search of this Device / EFF.org” image used under Creative Commons License from EFF

The Droid

I’ve had my current phone, an LG VX8300 for over two years now. It basically does what I need it to, make and receive phone calls and text messages. But I’ve been itching for more.

I’ve watched as the iPhone was introduced1, reintroduced2, and re-reintroduced3. I also watched as AT&T’s network and lack of infrastructure continues to collapse under the pressure.

Last Christmas, I watched as Verizon rolled out the Blackberry Storm, hoping that this would be the device that would rival the iPhone; it wasn’t.

I watched as Google released the Android operating system and T-Mobile, of all companies, grabbed the G1. Amazing, I thought.

Well, now the day could be mine to have and everyone else’s turn to watch. Verizon is launching the Droid. And I’m thinking, “This could be cool.”

It does pretty much everything I’d want it to, including being awesome. In particular, it has WiFi and Bluetooth, a decent screen, replaceable battery, and the latest Android operating system – codename: Eclair4. Mmmm, doughnuuuut.

What else: 16GB of internal memory with expansion support, 256MB RAM, and support for running multiple applications at once.

The Android app market should also be pretty well stocked, and I’m probably savvy enough to write any app myself that I can’t find. So like I said, “This could be cool.”

I hope they get this right.


  1. Original iPhone 

  2. iPhone 3G 

  3. iPhone 3G S 

  4. Yes, as in the doughnut 

Stay Up To Date on Comments

As I work on planning my upcoming trip abroad, there’s been some great discussion and feedback in the comments. Those of you who are super-savy WordPress users might know about the sort-of-secret Comment RSS feed that you can subscribe to, however most people don’t.

So I figure I’d make it super easy for everyone and provide the RSS URL for those using RSS Readers (such as Google Reader) and an email sign up in case you’re not ready to make the plunge into the RSS realm.

RSS URL: http://feeds.andrewferguson.net/afdn_comments

Email Signup: Subscribe to Comments for Andrew Ferguson dot NET by Email
Note: The email list is run by FeedBurner (aka Google) and is the same organization that I use to send out the regular AFdN updates.

Internet Explorer Exploit. Update Now.

There’s a very super serious absolutely critical patch for Internet Explorer that you need to download right away. I usually (never?) blog about this type of thing, but this exploit is a rather serious exploit (they disabled Internet Explorer on all of our campus computers, which they’ve never done before). Anyway, Microsoft issued a patch today and I’m pleading with you to go and download it:

http://www.microsoft.com/technet/security/bulletin/ms08-078.mspx\

Alternatively, you may consider downloading and using:
Mozilla Firefox: http://www.mozilla.com/en-US/firefox/
Google Chrome: http://www.google.com/chrome

If you already use Firefox or Chrome, you still should install the patch, just in case.

If you’re using a Mac, you’re okay and don’t need to do anything.

Read more at http://gadgetwise.blogs.nytimes.com/2008/12/17/microsoft-issues-critical-update-for-its-browser/

2007 Year-End Zeitgeist

Google is publishing their Zeitgeist, so I thought I’d get mine done too.

Here are the top ten search key phrases for 20071:

  1. countdown timer
  2. andrew ferguson
  3. andrew
  4. posted
  5. wordpress countdown
  6. countdown timers
  7. blockquote cite
  8. count down timer
  9. wordpress countdown plugin
  10. boeing

Top five identified web crawlers for 20071:

  1. Yahoo Slurp
  2. MSNBot
  3. Googlebot
  4. Ask
  5. MSNBot-media

Top three identifiable operating systems for 2007:

  1. Windows 69.1%
  2. Macintosh 6.9%
  3. Linux 1.9%

Top seven identifiable Internet browsers for 2007:

  1. MS Internet Explorer 41.6 %
  2. Firefox 31.0%
  3. Mozilla 3.7%
  4. Safari 3.0%
  5. Opera 1.9%
  6. Netscape 0.7%
  7. Camino 0.2%

Bandwidth: 37.67 GB of data served
Page hits: 776,512
Average monthly views2: 7633

1 as measured by AWStats for the entire andrewferguson.net domain
2 as measured by WordPress.com on the andrewferguson.net blog only for the months of May to November

Google Chart API

I typically don’t blog about new Google stuff, especially APIs (application programming interfaces). However, this one is particularly cool because it allowed me to easily finish up a project that I had shelved for several months (maybe years? I’ll just call it ‘a while back’).

A while back, I had this idea to chart monthly blog frequency. I had found some code that did a pretty bang up job of making graphs using just PHP. However, it wasn’t the sleek looking graph I was hoping for. I had bookmarked a few sites that had Macromedia Flash applications that you could just drop the data into, but I never got around to playing with them.

Finally, Google introduced the Google Chart API. In a nut shell, I can easily create graphs such as:

Blog posts for Nov. 2007

This chart shows my blogging frequency for the month of November. The code I’m using on the back end is pretty crappy (I literally just patched some code I already had) and it can only handle a single month at a time.

Technical details to follow…
Continue reading “Google Chart API”