612 karma · joined May 9, 2009
It's OK that DKIM is not widely deployed because the logic falls back to other mechanisms when the DKIM header is not present. DKIM is deployed on GMail and Yahoo Mail, so it is worth doing. Replay attacks are easy to defeat by not posting duplicate content. It's probably a good idea do to dup detection to handle the case where the user accidentally sends the message twice.
Step 1: If DKIM header present, then use result of DKIM validation.
Step 2: If sending domain has SPF record, then use result of SPF validation.
Step 3: If message passes SPF check using a conservatively guessed SPF record, then treat the message as valid.
Step 4: If message came from same IP address as other messages for user and some headers match headers from previous messages (fuzzy match on message id?), then treat the message as valid.
Step 5: What next? Messages will make it past the previous steps.
EDIT: You must not be using Google Apps for Your Domain because Google does not allow sender forging.
I assumed that Posterous did something clever using the IP address of the SMTP peer or the headers in the message. Does Posterous fallback to just checking the sender email address?
Creating an account is not all that bad. You only need to do it once and Mailinator email address are accepted :)
Although it should be easy for client applications to sort on time instead of id, that's not what all applications do. Twitter chose not to break clients that sort on id.
This library does not saddle Node with anything. It's a library for use with Node. It's not part of Node
Your IE Toolbar example is a good one. The team working on the IE toolbar is probably very small (how many devs are needed, one or two?), but it's used by a very large number of people. I think it might be interesting to work on a project with this very large user/developer ratio.
Google engineers to have some degree of mobility. If they get stuck on a project that they don't like, then they can eventually move on to something of their choosing.
Tornado includes optional code to fork more than one instance where the number of instances defaults to the number of cores. Tornado's forking code has issues:
- There's no code to restart dead child processes.
- It's not possible to do a rolling upgrade because all instances of the server must be restarted at the same time.
I'd stay away from the forking code in Tornado. I suspect that it's not used by FriendFeed because the forking code was added well after the initial release of Tornado.
Upstart does not help with the multiple instance problem. Upstart adds the problem of running code with elevated privilege.
I think it might be simpler to write a script to start/stop/restart daemon Tornado instances running in an unprivileged account.
The application is described in the iTunes store: http://itunes.apple.com/app/quip-free-photo-texting/id291358...