
Jeremy Cutler, the developer of the fast-iterating and popular Tumblr add-on Missing e, still hopes to negotiate a compromise with the blogging network.
Last week, Tumblr told Mr. Cutler to stop distributing the extension–a free download, although Mr. Cutler gets some donations from happy users–or Tumblr would delete his personal blog in retaliation.
“Browser extensions that materially modify Tumblr’s experience are currently forbidden by our Terms of Service and it is imperative that any such modifications follow Tumblr’s Application Developer and API License Agreement,” Tumblr’s counsel Ari Shahdadi wrote in an email to Mr. Cutler outlining Tumblr’s 11 objections, including that various features violate the Terms of Service, developer and API agreements, employ page scraping and duplicate Tumblr functionality.
Mr. Cutler had proposed making certain changes addressing some of Tumblr’s objections, but the startup seems uninterested in a compromise. On Friday, Tumblr requested that Mr. Cutler shut down Missing e within ten days.
But Mr. Cutler offered to make some changes to Missing e to comply with, for example, the objection to the features “Dashboard Fixes”, “Posting Fixes” and “Ask Fixes.” “Representing the circumvention of intended UI and UX as “fixes” is a serious misrepresentation of Tumblr and our features,” Mr. Shahdadi said. In response, Mr. Cutler said he will use the word “tweaks” instead of “fixes.”
Mr. Cutler also said he would remove any features that address issues Tumblr has fixed, such as returning errors from the Tumblr dashboard when the site is unresponsive. He also said he would remove features that duplicate Tumblr functionality, such as the option to move queued posts to the top of the queue.
The objections that were cited as violations of the API agreement shouldn’t apply to Missing e, however, Mr. Cutler maintains. Missing e stopped using the Tumblr API after Tumblr first raised an objection to the extension, he said. Therefore, Mr. Cutler shouldn’t be subject to the API agreement, he argued, taking pains to explain to Mr. Shahdadi that Missing e interacts with information collected in the course of normal web browsing.
Mr. Cutler may seek legal counsel, he said.
Relations with third-party developers are always tough. But Mr. Cutler managed to roll out a slew of features at a time when Tumblr was focusing on scaling its network capacity. Mobile updates, requested features such as analytics, and Tumblr projects such as the directory crawled along as Mr. Cutler zipped out “fix” after “fix.” Mr. Cutler applied and interviewed with Tumblr a few months ago. It didn’t work out in spite of the fact that many Tumblr users love the Missing e features and Mr. Cutler loves the platform.
Tumblr’s objections and Mr. Cutler’s responses in full:
> 1) “Dashboard Fixes”, “Posting Fixes”, “Ask Fixes”
> Representing the circumvention of intended UI and UX as “fixes” is a serious misrepresentation of Tumblr and our features. (3s)In order to comply with the spirit of this requirement, I will change the name of these features to “Dashboard Tweaks”, “Posting Tweaks” and “Ask Tweaks”, respectively.
> 2) “Prevent the Tumblr dashboard from stalling all the time when the site isn’t responsive”
> This particular issue has been patched for several months. Re-implementing it is likely to cause further issues. (3d, 3s)This feature was added to handle the issue of error pages Tumblr returned with a HTTP 200 status. If this issue is fixed on your end (I assume by not returning error pages without error codes), then this feature will be removed. However, this was never a “substantial replication” of Tumblr services as it was intended to handle an oversight that is no longer being made. It did not duplicate any client side code.
> 3) “Add a ‘move to top of queue’ button on queue posts”
> This functionality already exists (with the alt-click action) and should not be re-implemented. (3d, 3s)I, like many users, are not aware that this alt-click option exists. You would do well to inform your users that it exists. Although, I hardly hall this a “substantial replication”, I recognize that additional code to support this option is not required and will make sure users are aware of the built-in option.
> 4) “Add Tumblelog sidebars (follower count, messages, etc) to all dash pages”
> Employs page scraping. (3l)A single page AJAX load is not a significant source of page scraping. However, I agree that this can be considered a violation of section 3l of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
> 5) “Make the ‘Following’ button on the dash take you directly to your list of followed Tumblrs”
> This is in violation of Section 3m of Tumblr’s Application Developer and API License Agreement.I agree that this can be considered a violation of section 3m of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
> 6) “Add a magnifying glass icon to all photo and photoset posts so you can see them in full size”
> This functionality already exists. The ability for users to enlarge a photo can also be toggled by the post’s author. Circumventing the author’s restrictions is certainly prohibited. Advertising this as added functionality is also misleading. (3d, 3s)This feature exists in only a partial form. One is able to magnify photosets, but can only magnify photos to their largest size in only specific circumstances. For example, if the post’s author specifies a click-through link for the image, one cannot magnify the image using Tumblr’s built-in feature, whether or not the post’s author had any intention of preventing that ability. The option whether to show full size photos on posts in the dashboard is not configurable by the post’s author. In order to meet your requirement regarding the misleading nature of referring to this as an added feature, I will rework the documentation to indicate that it is simply an alternative to an existing built-in feature.
This can be considered a “substantial replication” pursuant to section 3d of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
> 7) “Quick (1-click) reblogging. Reblog posts without leaving the dash”
> This feature is currently using form hijacking to create posts. This should be removed or changed to use Tumblr’s API. (3l, 3n, 3o)The term “form hijacking” is used to refer to using automation for the purpose of allowing a (possibly unauthorized) user to send unauthorized data using a site’s form submission–usually for the purpose of spamming. Missing e’s quick reblogging feature allows Tumblr users to reblog posts, while saving the step of actually opening a reblog page and submitting there. To label this as “form hijacking” and not simply automated form submission suggests that either Tumblr considers users of Missing e’s quick reblogging feature to be unauthorized, or any reblogs they perform with this feature to be unauthorized. I trust that you do not believe that this is the case.
This feature can be considered a violation of section 3l of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
This feature can be considered a violation of section 3n of the Tumblr API License Agreement in so much as it modifies the functionality of the reblogging process. However, it does not translate, reverse engineer, decompile, disassemble or derive source code, underlying ideas, algorithms, structure or organizational form from the Tumblr Services or the Licensed Materials, nor does it defeat, avoid, bypass, remove, deactivate or otherwise circumvent any protection mechanisms for the Tumblr Services or the Licensed Materials, nor does remove or modify any proprietary notices, attribution or marks from or delivered as part of the Tumblr Services or the Licensed Materials. Please see above note regarding API License Agreement violations.
There is nothing to indicate that the quick reblogging feature is a violation of section 3o of the Tumblr API License Agreement. A user must activate the quick reblogging feature manually, and then must click the reblog button or quick reblog menu in order to reblog a post. Completing this process undeniably reflects an “explicit, genuine expression of user intent and permission”.
> 8) “Always reblog long text posts as text (instead of link posts that cut the post off)”
> This is in violation of Section 3m of Tumblr’s Application Developer and API License Agreement.Adjusting the interface such that reblogging text posts automatically go to the “reblog as text” page is a modification of the Tumblr default behaviour of initially presenting the option of reblogging longer text posts as links (with truncated body text). This feature can be considered a violation of section 3m of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
> 9) “Add Queue/Draft/Private buttons when answering ask posts”
> This functionality already exists (with the alt-click action) and should not be re-implemented. (3d)This functionality only exists partially. Using the alt-click action, one can only answer asks as Queue/Draft but not as Private posts.
Although this is not a “substantial replication” of an existing feature, it can be seen as a violation of section 3d of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
> 10) “Enable selecting and mass deletion of unanswered asks an messages”
> This feature is currently using form hijacking to delete posts. This must removed or changed to use Tumblr’s API. (3l, 3n)The term “form hijacking” is used to refer to using automation for the purpose of allowing a (possibly unauthorized) user to send unauthorized data using a site’s form submission–usually for the purpose of spamming. Missing e’s mass deletion features allow Tumblr users to remove multiple ask posts from their inbox, while saving the multiple steps of clicking on each individual delete button. To label this as “form hijacking” and not simply automated form submission suggests that either Tumblr considers users of Missing e’s mass delete features to be unauthorized, or any deleting of messages they perform with this feature to be unauthorized. I trust that you do not believe that this is the case.
This feature can be considered a violation of section 3l of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
This feature, however, cannot be considered a violation of section 3n of the Tumblr API License Agreement. It does not in any way interfere with, modify or disable any features or functionality, nor does it translate, reverse engineer, decompile, disassemble or derive source code, underlying ideas, algorithms, structure or organizational form, nor defeat, avoid, bypass, remove, deactivate or otherwise circumvent any protection mechanisms, nor remove or modify any proprietary notices, attribution or marks from or delivered as part of the Tumblr Services or the Licensed Materials. It simply executes existing client-side code already loaded into a user’s browser.
> 11) “Allow inline image uploading for all post types (not just text posts)”
> This feature is using primitive referrer spoofing to circumvent Tumblr’s built in restrictions. (3l, 3n)Referrer spoofing is used to refer to the sending of incorrect referrer information in an HTTP request in order to prevent a website from obtaining accurate data on the identity of the web page previously visited by the user. This Missing e feature uses an inline frame to load a form (from within the browser extension itself) that submits image data to a handling script on Tumblr which can, in turn, pass the processing information to the main post document. This is a technique for making the process of loading the image upload page within the extension directly, submitting the form, collecting the processed information and manually adding it to the main post document. In no way does the browser extension misrepresent, modify or hide referrer information. Many of the Missing e features are meant to facilitate the automation of actions a user could perform manually with multiple, less convenient steps.
However, it can be considered a violation of section 3l of the Tumblr API License Agreement. Please see above note regarding API License Agreement violations.
Tumblr declined to comment.