Red Sweater Blog Official blog of Red Sweater Software Tue, 06 Feb 2018 23:24:53 +0000 en-US hourly 1 MarsEdit 4.0.7: Editor Stability & Refresh Performance Tue, 06 Feb 2018 18:54:16 +0000 MarsEdit 4.0.7 is now available for download from the MarsEdit home page and on the Mac App Store.

Within the past few weeks, the number of hangs and crashes having to do with MarsEdit’s plain-text editor has gone up quite a bit. I think it was a combination of some changes in in MarsEdit 4, and some changes in Apple’s latest revisions of the Mac libraries in macOS 10.13. This update makes a few changes that should dramatically reduce if not eliminate these editor annoyances.

MarsEdit 4 brought a new feature to support downloading the entire post archive from a blog, and some of the app’s most long-time devotees decided to put it to the test! For some blogs, particularly when there are thousands of posts, it may be prudent or even necessary to change the default “number of posts per request” in MarsEdit’s Connection settings. Previously, this setting was being respected for WordPress, but ignored for Tumblr and Blogger. This is also fixed in this update.

A number of other improvements were made. Here is the complete list of changes:

MarsEdit 4.0.7

  • Fix a crash that could occur in the plain text syntax highlighting functionality
  • Fix a hang in the plain text editor that could affect large posts
  • Fix Google and Tumblr blogs to heed the “number of posts per request” download setting
  • Fix a bug introduced in 4.0.6 that caused doubling of file extensions on image uploads
  • Fix behavior of “Do Again” format menu item for custom macros applies in Rich Text mode
  • Fix a bug that prevented Featured Image from being deleted from an already-published post
  • Fix handling of combining characters such as the “Male Singer” (Ziggy Startdust) in plain text editor
  • Change character count behavior to consider spaces in total character count.


MarsEdit 4.0.6: Lightroom Fix Tue, 23 Jan 2018 22:41:26 +0000 MarsEdit 4.0.6 is now available for download from the MarsEdit home page and for the Mac App Store.

It’s a bit embarrassing that after celebrating support in 4.0.5 for Lightroom 7 (Classic CC) libraries, it became clear that many Lighroom libraries could not be accessed at all by that version, because of an oversight in how sandbox privileges were being requested for MarsEdit. Long story short: “it worked on my machine.” 😀

MarsEdit 4.0.6 fixes (knock on wood) the Lighroom issue and incorporates a couple other small bug fixes:

  • Fix names of HEIF based photos in the Media Manager
  • Fix a bug that prevented some Lightroom libraries from appearing in Media Manager
  • Fix a bug that prevented some dragged images from being accepted in the Rich Text editor

Enjoy, and let me know of any problems if you find them!

]]> 2
MarsEdit 4.0.5: Moving Right Along Fri, 12 Jan 2018 21:30:50 +0000 MarsEdit 4.0.5 is now available for download from the MarsEdit home page and has been submitted to the Mac App Store for review by Apple.

This update includes bug fixes and refinements that I’ve made in response to feedback from customers since MarsEdit 4.0 was released in December.

  • Fix a bug that prevented automatic preview template download from working on some Blogspot blogs
  • Add accessibility description to the buttons for adding and removing Custom Fields
  • Detect and convey more useful error message for “Obfuscated ID” Blogger image upload failures
  • Protect against a possible crash when handling Tumblr API errors
  • Incorporate support for Lightroom 7 into the Media Manager
  • Rich Editor fixes
    • Restore Cmd-Shift-C keyboard shortcut to open Color Panel
    • Fix a bug where the “More” tag in a post with Unicode characters could get stripped out
    • Improvements to cursor navigation of images and text with links

Enjoy the improvements, and keep that valuable feedback coming!

]]> 2
MarsEdit 4.0.4: More Bug Fixes Wed, 20 Dec 2017 15:25:47 +0000 It’s been two weeks since MarsEdit 4 was launched, and I’ve focused on releasing bug-fix updates to iron out little issues that have been reported since the debut.

MarsEdit 4.0.4 is now available for download from the MarsEdit home page and from the Mac App Store.

Here is the list of fixes this update includes:

  • Fix a failure to auto-configure some Tumblr-based blogs
  • Fix a problem that prevented bolds, italics, etc. from being set as default preview fonts
  • Fix a problem where Typewriter Mode in Rich Text mode could scroll awkwardly while typing
  • Restore support for selecting “main category” on Movable Type blogs
  • Improve indexing and searchability of built-in Help


]]> 2
MarsEdit 4.0.2: Minor Bug Fixes Wed, 13 Dec 2017 00:59:38 +0000 Since I released MarsEdit 4.0 last week, I’ve been grateful that no major issues have been reported. A few minor issues have been reported, and I decided to release an update now to get those problems ironed out before too much time passes.

MarsEdit 4.0.2 is available for download from the MarsEdit home page and the Mac App Store. The version jumps from 4.0 to 4.0.2 for direct-download customers, because some quick Mac App Store-specific fixes warranted a version bump last week.

Here is the list of changes common to MarsEdit 4.0.2 in both the Mac App Store and direct release versions:

  • Revise toolbar popup menus to use the same rounded button style as other buttons
  • Fix a bug that caused some error sheets in the main window to be presented in wrong location
  • Fix a crash that could occur if preferences are not writable for some reason

One fix applies only to the direct download version:

  • Fix app registration URL handling so it works even when the app was not already launched

And one fix applies only to the Mac App Store version:

  • Fix a bug in which validating an app for discount upgrade could spin forever

Let me know if you run into any problems with the update!

MarsEdit 4 Is Here Tue, 05 Dec 2017 17:22:50 +0000 Big news today: MarsEdit 4 is out of beta and available for download from the MarsEdit home page and the Mac App Store. This marks the end of a long development period spanning seven years, so it’s a great personal relief to me to finally release it. I hope you enjoy it.

MarsEdit 4 brings major improvements to the app including a refined new look, enhanced WordPress support, rich and plain text editor improvements, automatic preview template generation, and much more. Read more here:

What’s New in MarsEdit 4.

MarsEdit 4 also brings a new sales approach that aims to unify the trial, purchase, and upgrade experience between the Mac App Store and direct-licensed versions of the app. The app is free to download and can be used full-featured for a 14 day trial period.

After the trial expires, all features of the app continue to work except for actions that update published content on the web. This ensures that all of MarsEdit’s powerful offline features, including download/archiving of posts, can be used in perpetuity for free.

Anybody who purchased MarsEdit 3 on June 1, 2017, or later, is entitled to a free update to MarsEdit 4. Anybody who purchased MarsEdit 3 earlier than June 1 is entitled to a discounted $24.95 upgrade. This applies to Mac App Store users as well! Because MarsEdit 4 embraces the Mac App Store’s in-app purchase model, the app can use a downloaded copy of MarsEdit 3 to validate a discounted or free upgrade to MarEdit 4, as appropriate.

There’s a lot to say about MarsEdit 4 and I’ll talk more about the improvements in separate blog posts after the dust settles. In the mean time, I hope you download the app, enjoy the work I’ve done, and if you’re feeling generous, help spread the word about the release.


]]> 8
MacOS High Sierra Support Tue, 26 Sep 2017 12:48:19 +0000 I have tested all Red Sweater’s apps against macOS 10.13 High Sierra, and as far as I am aware there are no issues. All of my apps are compatible with the update. Enjoy!

]]> 3
WPEngine Authentication Issues Thu, 24 Aug 2017 19:43:33 +0000 Over the past few months I’ve received a handful of support inquiries from MarsEdit customers who have trouble logging into their WPEngine-hosted WordPress blog, after initially typing the wrong username or password into MarsEdit’s authentication panel.

Normally when MarsEdit tries to connect to a blog, it reacts to authentication failures by putting up a simple panel prompting for a username and password. In some cases, where the authentication challenge seems to be coming from a higher level than the blog itself, MarsEdit prompts with a different panel, suitable for supplying HTTP protocol-level authentication.

MarsEdit distinguishes between WordPress-level authentication and HTTP-level authentication by the simple fact that WordPress always returns HTTP status 200, even when a user is authenticated. The failure to authenticate is expressed in a valid XMLRPC response, and since the response is valid, it warrants a 200 “Success” HTTP status result.

In the process of debugging this problem, I observed that some of my customers were getting authentication failure responses from their self-hosted WordPress blogs, in which the HTTP Status Code was not 200, but 403 instead. Slowly, but surely, I came to understand that each of these affected customers was running on WPEngine.

Finally, with the help of a customer who shared my eagerness to get to the bottom of the problem, I was able to trace the behavior to a custom WordPress that is installed by WPEngine on behalf of all of their customers. It’s called the “wpengine-common” plugin. My customer was kind enough to send me a copy of the plugin files from within his WordPress installation. Guess what I found inside the plugin?

function wpe_login_failed_403() {

	// Don't 403 when the login comes 
	// through an Ajax request
	if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {

	status_header( 403 );
add_action( 'wp_login_failed', 'wpe_login_failed_403' );

This bit of code overrides the standard WordPress login failure, forcing a 403 status code when one occurs. From what I can gather, the intent is to raise the visibility of WordPress login failures so that security packages that monitor for attempts to break into sites can log the attempts and potentially warn users and/or WPEngine about the risk of an intrusion. That’s a great motive, but it has an undesirable consequence for clients of the WordPress API.

Any client of the WordPress API is liable to interpret a 403 status code as an authentication failure outside the scope of WordPress itself. It may assume there is no blog at all to connect to, or it may assume as MarsEdit does, that there is a second level of authentication required to gain access to the server, before gaining access to WordPress.

I don’t know what the ideal solution to this problem is, but it would be nice if WPEngine found another way to flag the potentially suspicious login attempts to their WordPress installations, that didn’t involve breaking the contract for how the WordPress XMLRPC API is supposed to behave. If you look again at the source code excerpt I pasted above, you’ll see there is a special case in place for “Ajax” requests. Presumably this is another use case where the unexpected 403 status response has caused trouble. In fact, if you Google for “wpe_login_failed_403”, you’ll find a number of simple WordPress plugins whose whole purpose is to disable the WPEngine 403 status behavior described here.

I am planning to work around the issue in MarsEdit somehow, but in the mean time if you are a WPEngine customer who also uses MarsEdit, you may run into problems when/if you enter your credentials wrong, or you try to connect again from MarsEdit after changing your password. You’ll see a different login panel speaking of things such as “second level of authentication”. If you run into this, you can get back on track by manually entering your correct username and password:

  1. Click the blog in the left-hand side of MarsEdit’s main window.
  2. Hold the option key down while clicking the “Blog” menu item at the top of the screen.
  3. Select the “Enter Password…” menu item.
  4. Enter your correct WordPress username and password.

As long as the username and password that are stored by MarsEdit in the keychain are correct, you should be able to connect to your WPEngine-hosted WordPress blog without any issue. Whenever they are incorrect, until I implement a workaround, or until WPEngine changes their plugin behavior, you will need to work around the problem in this manner.

MarsEdit 4 Public Beta Wed, 28 Jun 2017 17:43:38 +0000 It’s been over 7 years since MarsEdit 3 was released. Typically I would like to maintain a schedule of releasing major upgrades every two to three years. This time, a variety of unexpected challenges led to a longer and longer delay.

The good news? MarsEdit 4 is finally shaping up. I plan to release the update later this year.

Beta Release Overview

Because the update contains many new features that my patient users have been waiting to get their hands on, I want to give folks the option of trying it out early. I think the beta release is very stable, but you’ll have to forgive a few rough edges while I finish things up. If you want to give it a spin, click this link:

Download the MarsEdit 4 Public Beta

The beta release supports Mac OS X 10.10 or greater, though final system requirements are not yet set in stone. Users who own an existing license to MarsEdit 3 can run the MarsEdit 4 beta for free until the final version is released. Customers who purchase a new MarsEdit 3 license from the Red Sweater Store between now and the final release will be entitled to a free upgrade to MarsEdit 4. Unfortunately, the Mac App Store does not accommodate free or discounted upgrades.

If you decide to install the beta, please join us in the Red Sweater Slack team to discuss the upcoming release. As always, I welcome bug reports and other feedback via email as well.

Beta Release Details

So, what’s new in MarsEdit 4? I will write in more detail when the final release is done, but here’s a high level list of some of the things that have been added in the update so far:

  • Editor Enhancements
    • Visual formatting bar – Select common formatting options with the mouse.
    • Typewriter Scrolling – View menu option to keep typing vertically centered.
    • Multimarkdown support – Enhanced functionality when previewing Markdown content.
    • Faster Preview filtering – Code-based Markdown and Convert Line Breaks filters.
    • Interactive image sizing – Rich text mode supports direct manipulation of image display size.
    • Improved “Split Post” UI – Splitter now presented inline in post content.
  • WordPress-specific enhancements
    • Faster refresh times.
    • Featured Image support.
    • Post Format support.
    • Per-post Author editing support.
  • Improved system integration. Now supports standard autosave and version history for locally saved drafts.
  • Expanded post downloads. WordPress and Blogspot blogs can now be configured to download the entire history of posts instead of a recent subset.
  • Automated preview templates. Click the “Download Template…” button from the template editor to automatically detect your blog’s theme.
  • Safari App Extension. Active the “Send to MarsEdit” extension in Safari to easily create new drafts citing the page you are viewing.
  • Application Sandbox. The app is now sandboxed for increased security.

On top of all these, there are numerous smaller changes that you may notice and appreciate. Please let me know if you decide to try the app, what you like, what you don’t like, and I’ll do what I can to continue improving the app both for the 4.0 final release, and beyond!

]]> 13
Blogger’s Obfuscated IDs Tue, 04 Apr 2017 14:24:10 +0000 For years, MarsEdit was not able to upload directly to Google’s Blogger service. Instead, it had to upload to Google’s sibling service: Picasa Web Albums. Recently, Picasa has been folded into Google Photos, and in the course of the transition, Google has forbidden apps such as MarsEdit from creating albums on the service.

This left MarsEdit in a bind with respect to supporting image uploads for Blogger. The good news is Google added support for uploading directly to the Google Photos album that is used for Blogger images. Sort of…

MarsEdit 3.7.11 introduced the ability to upload directly to the Blogger photos album, and it seems to work flawlessly for many Blogger users. Unfortunately, it fails spectacularly for a subset of users. Specifically, if your Blogger user profile is set to use a “Blogger-specific” identity, you will not be able to upload images from MarsEdit. If, on the other hand, your Blogger profile is set to use a Google+ identity, everything should work fine.

The cause seems rooted in Blogger’s understanding that a “Blogger-specific” profile may be used for purely pseudonymous blogs. For this reason the information they share with MarsEdit includes a user ID that is not the user’s actual ID, but an “obfuscated ID.” When MarsEdit proceeds to use this ID to upload to Google Photos, the tell-tale error message is generated:

Can’t upload file for [your blog name] because the server reported an error: Invalid length for obfuscated ID "[your obfuscated ID]".

I’m not sure yet whether the obfuscated ID is meant to work, but that there is a bug in the Google Photos API. Ideally, that is the case and the Google Photos team could fix something on the server to get things working. On the other hand, it may be intentional that no client such as MarsEdit should be able to use one of these anonymized IDs to upload photos to Google.

The long and short of it is if you want to reliably upload photos from MarsEdit to a Blogger blog, you need to switch your blogging identity to a Google+ account. Google has documentation about this process, which also includes caveats about the implications of making the switch:

Change your profile on Blogger.

Existing MarsEdit users who had previously established a workflow of uploading images may already have a “MarsEdit Images” album among your Google Photos Albums. If so, you can achieve a short-term workaround by downgrading to MarsEdit 3.7.10, which will continue to try uploading to an existing MarsEdit Images album. Unfortunately, when this album reaches capacity, MarsEdit will not be able to create a new album.

I will continue tracking this issue while I weigh my options for additional workarounds. I am also in touch with some folks at Google and I hope they will have advice or devise a reliable means for MarsEdit to support image uploads regardless of the “identity” setting on a user’s Blogger account.

]]> 2