Welcome to RocketMonkeys.com!

This is my personal site, where I store my rants, pictures, and movie reviews. Have a look around, register and leave comments.
-James

Show: [all] rants movies pictures

Page: Previous << 0 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 >> Next

Upcoming program: Gmail Imap Sync

Posted by james on Nov. 21, 2011

I've seen this problem come up a few times before - multiple people need to receive & respond to incoming email, but need to coordinate so there's no overlap. In my case, I need to be able to do email support where multiple people (including myself) can respond to support emails, but also I can immediately see if someone else has emailed already.

I use & really like gmail, so I want it to be there. If I have to log into a separate site/service/page to receive the other email then that's already a disadvantage. I really like the convenience of having all my email (personal, business, business #2, etc) in one place.

Receiving email is easy - just setup a filter on gmail to forward all incoming email to the other people.

But outgoing email is harder. I could just BCC the others on every outgoing email, but I'll forget. A solution that works some of the time (or even most of the time) is not enough here.

The solution - a simple script that takes 2 IMAP accounts, does a simple filter to select the important emails (such as all FROM / TO email for @companyname.com), and sync them to the other account. The useful part - this works on both incoming & *outgoing* email. So every email I send from my work account is automatically copied to the other staff's email. It's pre-labelled, so it shows up in the "companyname" label in gmail. They can then mark as read, label, archive those emails separately from me.

It's very simple, but incredibly helpful. I think this would be a really useful thing for a lot of people in similar situations - need to respond to email as a unified group, but not wanting (or able) to switch to a full customer relations management type software. I've been using this for a while now, and it's been working great - completely transparent, which is awesome.

Now the problem - how do I release this? Open source? Free-for-personal, fee-for-commercial? Web-based service? If I can get around the need to store IMAP (ie. Google Account) passwords at all, then I'd probably opt for a web-based service. We'll see.

X-Men: First Class

Posted by james on Oct. 22, 2011

I was really looking forward to this, even after the worthless junk that was the Wolverine prequel. Overall, it was decently good, and it was fun to see the whole "discovering your powers" aspect of things.

However, some really confusing castings here. January Jones - I'm not sure Emma Frost was supposed to be that... blank. Emotionless. Not cold, just vacant. Sadly it reminded me of her SNL performance.

And Kevin Bacon as the evil German Nazi mad scientist/doctor? He is creepy and all, but really? For some reason I feel like Nicolas Cage was the first choice for this role, and that's not a good thing. And what's up with Bacon's complete lack of German accent?

The most important part, the story behind Xavier and Magneto, was probably the best part. Both actors did well, and setup perfectly the rise & fall of that duo.

Even though overall the movie was good, there was this constant feeling of cheapness; it was a bit distracting. Like the cinematography (which at points seemed made-for-tv quality), the campiness (a decent amount of cliche one liners), and some confusing bits (like the end when Magneto & Xavier "split" - just seemed to be lacking a few scenes to make it more believable.).

I was most interested in Jennifer Lawrence. She's cast as Mystique here, but she's also in the upcoming Hunger Games movie which I'm really looking forward to. She's not bad, but I felt like Mystique here was really lacking any presence/power. It makes me less hopeful for the Hunger Games, but maybe she'll rally.

Next up: hopefully Paul or Hanna. I'm *really* excited to see Hanna.

Neat Little Project - GMail IMAP syncer

Posted by james on Sept. 23, 2011

Problem: there are multiple people that handle incoming emails. They need to coordinate responses, so that any one person can receive & respond to any of the incoming email. They need to be able to see each other's responses to make sure they don't duplicate responses. Also, they should be able to use their existing email (gmail) accounts, and not have to log into a separate specific account.

So in this example, we have our own business with 2 employees. Both need to be able to see the incoming emails and respond to them.

1) They could use a generic email address to send/receive, like some businesses do. The emails are forwarded to both of them. Then they can both receive incoming email.

2) They could BCC the other on *every* outgoing email. This would allow the other to see all outgoing messages, but is very inconvenient and really easy to forget (even just one).

3) They could use a separate email account solely for this, but that's also very inconvenient.

Solution - a program that logs into both accounts, searches for specific messages, and ensures they exist on both accounts. We can use IMAP for this. The benefit is that this takes care of not only incoming emails, but outgoing as well. Also, both employees can have their own email addresses (which is always a plus, since recipients know who they're talking to). And the employees can just read & respond to emails as they normally do, without needing to remember to BCC anything. Also, with separate email accounts they can mark items as read when *they* read it, whereas on a shared account it would be marked read when either of them read it.

The program itself is relatively simple in theory:
-Log into both accounts via IMAP
-Search for messages matching a certain criteria: "from @domain.com or to: @domain.com since [some date in the past]"
-Find list of messages on each server that are not on the other
-Copy the messages from one server to the other

The most complicated part of this is working around the limitations of the IMAP protocol. Namely, that there are ID's, UID's, Message ID's, etc.

ID - this is a folder (mailbox) -specific number that changes as messages are deleted/added. Very transient & unreliable. It is part of the IMAP protocol.

UID - this is a folder-specific number that does not change. It is part of the IMAP protocol.

Message ID - this is a message-specific ID that identifies the message, no matter where it lives. It is not account specific. We can treat this as a global UID, since it works across accounts as well. This is part of the email message headers, and is not part of IMAP.

The biggest problem is that most IMAP functions return IDs or UIDs, but not MessageIds. That makes sense, since MessageIds are not IMAP. However, that means the process is more like this:

-Search for messages matching the criteria (returns a list of UIDs)
-Convert that list of UIDs into MessageIds
-Search for MessageIds on the other server (returns a list of UIDs)
-Convert *those* UIDs into MessageIds
-That list to the original server's list to give a list of MessageIds that need to be copied
-Convert this list of MessageIds back into UIDs on server1 so we have a list of messages to copy
-Finally, copy the actual content of the messages from server1 to server2

Really, it's an inefficient bunch of converting UIDs <-> MessageIds, but it works. It'd be nice if all IMAP was based off MessageIds, but those are two separate protocols so it makes sense that they'd be incompatible. And the decoupling of IMAP and email headers means we don't have to update every email server on the planet in order to add another header. So it's annoying, but at least we're not in lowest-common-denominator land.


Page: Previous << 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 >> Next