MarsEdit 2.1 Problems

February 3rd, 2008

Update: I have figured out the reason for these mysterious XML-RPC failures. It has to do with a conflict between MarsEdit 2.1 and certain loadable bundles that implement a method with the same name as MarsEdit. In particular, if you are using WriteRoom and installed the “Edit in WriteRoom” bundle, you are likely to see the bug in MarsEdit. Also, older versions of a similar bundle for editing in TextMate would exhibit the same problem.

I’ll be updating MarsEdit ASAP to use a more unique method name to avoid the clash. In the meantime you can work around the problem by disabling this Input Manager.

Original post below:

I released MarsEdit 2.1 last Thursday, and on the whole, reaction has been positive, and people are enjoying the new features!

However, there have been a few hiccups, and I’m working hard on fixing a few issues that people have spotted and reported to me.

The worst of these issues is a mysterious “XML-RPC Response Parsing Failed” error which is provably new to 2.1. If you updated and are suddenly getting these errors, I have to recommend downgrading to 2.0.5 until I can work out the details and fix it. I have received several reports but I’m still hoping this problem is relatively rare. If you need to downgrade:

Download MarsEdit 2.0.5

If you are experiencing problems with MarsEdit’s new tags feature on 10.4, I believe you’ll find the issue fixed in this beta release of MarsEdit 2.1.1:

Download MarsEdit 2.1.1b2

Needless to say, this is not exactly a dream scenario for me. I hate to think of customers updating and encountering errors or bugs. But once the cat is out of the bag, I think the only thing I can do is work as hard I can to get the problems fixed quickly.

Shawn Blanc Reviews MarsEdit

February 2nd, 2008

I have been looking forward to this for several weeks. Some time ago, Shawn Blanc announced that he would be writing extensive reviews of some of his favorite Mac applications. Much to my delight, MarsEdit was to be among them. It so happened that the timing of his MarsEdit review lined up with when I was planning to release 2.1, so I gave him the heads up and he held off until 2.1 was live.

MarsEdit: Helping the Personal Publishing Revolution

What I love about Shawn’s review is the way he zeroes in more on the philosophy and feel of the application, as opposed to merely running down the features list as so many reviews are likely to do. Shawn even did some investigative journalism, contacting MarsEdit’s icon designer, Bryan Bell, and digging up this gem of an artifact from the original design process:

MarsEvolution.jpg

One of the things MarsEdit gets flak for from some potential customers is its lack of a WYSIWYG HTML editor. Usually the people who are most wanting of this feature frankly can’t imagine how it could possibly be absent. On the other hand, the vast majority of people who love MarsEdit and use it daily seem to not care one iota about the feature. I’ve said it before, and I’ll say it again: WYSIWYG editing is in MarsEdit’s future, but I’ll be careful not to violate at all the existing power of MarsEdit’s reliable “what you see is what you send” editor.

Shawn’s review doesn’t ding MarsEdit for its lack of rich editing, but instead emphasizes the value of editing in plain text:

“In all my experience with WYSIWYG editors I have found them a clumsy enemy of fine web typography. Typing a weblog post in a WYSIWYG editor is a bit like laying out a book in Microsoft Word.

MarsEdit has combined many of the WYSIWYG concepts and implemented them into the HTML editor making it all very easy to use.”

I really agree with this attitude. Which is not to say I don’t respect people who want WYSIWYG. It’s a great idea and will empower non-technical users to express their thoughts more freely. And that’s part of what MarsEdit is all about. But MarsEdit is also about serious publishing, and if you’re serious, you should consider designing your blog so that the “style” is handled on the server, not in the client. The primary goal of MarsEdit is to quickly and efficiently transmit your thoughts to your blog. And the most efficient way to do that is in plain-text, semantically organized with MarsEdit’s powerful markup macro system.

And … MarsEdit’s WYSIWYG support is gonna kick all kinds of ass.

Credit Where Credit Is Due

February 1st, 2008

Fog Creek Software are the makers of the fine FogBugz bug tracking system, which I have started using for managing my own projects. You probably also know one of its founders, Joel Spolsky, as the author of an entertaining and informative blog about programming, and other software business-y stuff.

Today, Fog Creek posted an item to their new network status blog, confessing that 14 users had been overcharged for Copilot in January. Everything’s OK, these users are being refunded for the overcharge. The problem is resolved. And yet, Fog Creek chose to publicize the mistake anyway.

Fog Creek obviously recognizes that you earn the respect of customers when you’re willing to admit to thousands (hundreds of thousands?) that you screwed up, even if only 14 were actually affected.

Bravo, Fog Creek.

The reason I’m blogging this is because, well, I like Fog Creek, but also because I think heaping praise on companies that do the right thing is the best way to encourage other companies to follow suit.

MarsEdit 2.1

January 31st, 2008

It is with great pleasure that I announce the immediate availability of MarsEdit 2.1, a significant update to Red Sweater’s Eddy-Award winning desktop blog editing application.

Download MarsEdit 2.1 From The MarsEdit Home Page

I’ve updated the high-level “what’s new” page, but of course I also love the sound of my own keyboard, so I thought I’d spend some time going into detail about what I’ve added to this release.

In summary, MarsEdit 2.1 has a new search feature, a new capsule-based tags editor, support for Movable Type tags, support for saving drafts to the server, massively improved preview performance and usability, and a bunch of other performance boosts and feature tweaks.

Now, how about some details?

Searching Drafts & Posts

While MarsEdit doesn’t completley mirror your blog’s post history, you can download a good number of your most recent posts, so that they’re handy for any edits you want to make. When you combine these posts, your local drafts, multiplied over a few blogs, it gets easy to lose track of things.

MarsEdit’s new search field makes it a snap to focus in on only the posts that match the search terms you provide. Let’s see, I could swear I wrote about NetNewsWire recently…

That was easy! I modeled the search after Mail, which means it’s sort of more accurately a “filter” than a search. It doesn’t have any of the fine-grained controls that Mail offers, but who knows where this feature might lead in future releases. Let me know!

Enhanced Tags Support

One of the things that the blogging systems of the world haven’t been able to get their story straight about over the years is whether to support tags, categories, or both. What’s the difference? In a nutshell, think of categories as hierarchical categorization, and tags as more for indexing purposes. For example, the City of Lincoln and President Lincoln both deserve the tag “Lincoln,” but one belongs in the category “Cities” while the other belongs in “Presidents,” while both belong in the category “America.”

The growing consensus seems to be that there is a place for both tags and categories, so lately there has been an increase in support for “proper tags” on blogging systems, and a corresponding increase in demand for proper support in MarsEdit.

MarsEdit 2.1 includes stunningly Mac-like support for tags, which work great with WordPress and Movable Type systems:

The Movable Type support is completely new, while WordPress users were previously able to enter tags in the “Keywords” field. The Keywords field is now disabled for WordPress, and replaced with the new Tags field, which offers better editing abilities, and keeps a history of tags you’ve previously entered.

Dramatic Preview Improvements

Ironically, one of MarsEdit’s finest features has also been one of its most frustrating. The basic idea is while you’re editing a post in MarsEdit, you can open up a preview window right alongside it. As you edit your entry, you’ll see an updated view of your post as it would be rendered by a typical web browser (Safari).

While this feature worked great in MarsEdit 2.0 and earlier, there were a couple really annoying quirks that I’m sure many of you have run into personally. Do either of these sound familiar?

  1. Images and movies flicker and reload constantly.
  2. Preview jumps to the top of the post when I’m editing a long entry.

They will soon be unfamiliar to you, as MarsEdit 2.1 uses a dramatically improved technique for updating the preview smoothly and almost immediately.

The preview scroll bar now “sticks” intelligently, so if you’re writing a long entry and you want to always see a preview of the end of your post, just scroll to the bottom of the preview and that’s where the preview will stay.

Finally, I noticed that for many users, the usefulness of the preview window was not immediately apparent because the default template looked too much like plain text. While I recommend customizing your template to look more like your own blog, I thought users who didn’t have the time or inclination to do so deserved something a little bit snazzier, while still quite subdued:

What I hope is that by seeing a little bit of finesse in the preview window, users will be more inspired to edit the template to their own liking. It also makes the default previews in the main window look a little nicer.

Save Drafts To Server

I bet many of you are currently choking on your coke, sprite, beer, whatever, as you read the heading above. Because requests for this feature have been pouring in for so long, and because I’ve been persistently hesitant to implement it, I’m sure it comes as a surprise that it’s finally happened.

Why did I resist so long? Because frankly the situation on WordPress and Movable Type, two of the most popular blogging platforms in existence, makes it impossible to provide a truly A+ user experience when it comes to drafts on the server. While the Movable Type interface that both of these systems use offers clients such as MarsEdit the ability to specify whether a post is a draft or not, they infuriatingly do not offer a means of distinguishing a draft from a published entry when posts are refreshed from the server.

So why did I give in, then? Because there’s only so much high ground to stand on, and the screams and pleas from my users have been quickly eroding that foundation. Bottom line? This is a useful feature that users want, and while I can’t promise a perfect experience for everybody, I hope that users who need it most will be able to “make it work” for themselves, in spite of the drawbacks.

To take advantage of the new feature, just open the Options panel in MarsEdit and select the post status from the popup menu:

Server Draft Usability Workarounds

As I said, I resisted implementing this feature for a long time because of the problems associated with it. So I feel it would be irresponsible of me not to detail the types of problems you will run into, and how you might work around them.

Blogger: No Problem!

Blogger uses an Atom Publishing-based interface that doesn’t suffer the problems described for WordPress and Movable Type. Bottom line? If you’re using Blogger and want to set the draft or published status of posts, have at it. Things will just work. Thanks, Blogger, you guys are champs! If everybody handled drafts like Blogger, this feature would have been done a long time ago.

Forcing Draft Status

Remember that annoying issue where I said MarsEdit can’t tell whether a post is a draft or not? It’s only true for WordPress and Movable Type. And the good news is that WordPress is fixing this in WordPress 2.5 (already fixed on WordPress.com). But in the mean time you may be be interested to know about a little hack I built into MarsEdit so that you can effectively work around the problem.

This idea came from one of my beta testers (thanks David Chartier!): add a category “MarsDraft” to any of your posts, and when MarsEdit sees the category, it will automatically assume that the post is to be treated as a draft. So to make sure you don’t accidentally publish something early, just add the magic category, and remember to turn it off when you change the status to Published.

Enabling Movable Type Support

Unfortunately, things are even worse than already described, when it comes to Movable Type. Not only does Movable Type fail to provide a means for telling the draft status of a post, but by default, they don’t respect the draft status flag that MarsEdit sets on the post, either. At least, not in the way you would think it should.

Movable Type uses the “draft” status to mean “don’t rebuild the site yet.” But as soon as you do something that triggers a rebuild, your “draft” will go public automatically. Yikes! In order to make it interpret the status of a draft as you might expect, you need to alter your configuration file, adding the following line:

NoPublishMeansDraft 1 

On MT4 and later, this configuration file is called mt-config.cgi, while on earlier releases it is called mt.cfg. Apparently this configuration directive will cause your Movable Type installation to treat the draft status as you would expect if you’re using an application such as MarsEdit.

And… The Kitchen Sink

I’ve covered the vast majority of interesting changes that went into MarsEdit 2.1, and this blog entry is already way too long. I’m impressed that you got this far, so I’ll just let you know about a few other enhancements that made it in for this release, in case you’re interested:

  • LiveJournal blogs now get a real Title field!
  • Markup Macros are available from a contextual menu. Just control-click or right-click in the text area of the post editor.
  • Autosaving performance is dramatically improved, reducing the “pause in typing” that some people experienced periodically.
  • Heck, LOTS of performance is dramatically improved. Something feels faster? It was on purpose :)
  • The date editor sheet is now resizable. Some people have date formats that didn’t quite fit in the default. If this applies to you, just stretch the sheet wide enough to suit your needs.
  • There is now a preference for grammar checking, right there with the preference to do spell checking.

I don’t know about you, but I’m ready for a nap. I hope you enjoy this important update to MarsEdit 2. I look forward to getting to work on the next update!

Also Featuring … A Bug!

Update: I have so far been pretty lucky in that nothing terribly wrong has been reported by people trying out the new release, but one thing that’s biting quite a few people is a problem with the preview templates, when placeholders are used as attributes in HTML tags, e.g.:

<a href="#url#">Hello!</a>

I guess this behavior was just not common among either myself or my beta testers, so we didn’t catch it. I’ll be sure to get it fixed for 2.1.1.

Workaround: it looks like if you use single-quotes instead of double-quotes to wrap the template name, it prevents the bug from rearing its ugly head. Thanks to Michael Tsai for noticing this.