Apr
05

URLs and UX

Insert/Edit Link UI COncept

I despise broken links.

Most of the sites I read on a daily basis are littered with links to this site or that site.  Many of them are written quickly to get news stories out promptly and, as a result, are published with typos.

It’s one thing when I catch a typo in body content – most of us can read English words if the characters are in any order – but a typo in a link can be catastrophic.

The other day, for example, a friend posted a link to Twitter. Twitter immediately tried to parse the link to auto-shorten it … and broke the link in the process (apparently their tool doesn’t like quotes in URLs):

Similar mistakes make blogs and news posts difficult to follow.  A simple entry error can turn an otherwise useful link (i.e. http://google.com) into a broken one that results in a 404 Not Found error (i.e http://mindsharestrategy.com/htpt://google.com).

Not checking for broken links can lead to a poor user experience.  WordPress is all about creating a great user experience, so I think it should do a certain amount of checking for authors to protect us from our own proofreading laziness.

An Alternative

I’m a big fan of optimistic UI feedback.  Essentially, you assume that whatever action the user invoked is successful and only display messages when things fail or when unexpected behavior occurs.

Rather than prompting the user with a JavaScript alert every time a blog post is saved, you sound the sirens when something goes wrong.  The user expects the post to save, so you save it, give some subtle feedback (like the “post saved” message at the top of the screen) and move on.

Background processes should be even more subtle.

My suggestion is that the insert/edit link dialog check in the background to see if the entered URL is valid.

Technical Details

When the URL field loses focus, the UI submits the URL back to WordPress via AJAX.  WordPress then does a quick header check on the URL using the HTTP API.  All we really need is the response headers from the server to make sure it’s not a 404, any other response (200 OK or a 30X redirect) are fine.

If the link 404s, add some visual indication to the UI that the link might be bad.  If the link succeeds, and some indication that is passes.  For example, the two screenshots below show one way this feedback could be conveyed to the user:

Placing the mouse cursor over the indicator icon or the highlighted URL field would prompt the user to explain that the URL as typed returned an error and might be invalid.

This would in no way prevent the user from adding the link anyway. It’s merely intended to be a quick check to help prevent broken links from making their way into the field.

What are your thoughts? Do you see any value in this feature? Do you think your customers would see any value?

Feb
29

What Goes Around …

I’m not a formally-trained developer.  I might write software for a living now, but I got my start by copy-pasting code from Google searches into Microsoft Frontpage back in the day.

I know. Embarassing.

In grad school I finally took the time to research what other tools were available.  I discovered WordPress.  I was somewhat ecstatic.

Unfortunately, WP didn’t do everything I wanted it to do.  Certain features I needed were missing, others were buggy.  I somewhat despise traditional forums as a means of support, so I was grasping at straws for months trying to figure out how to make things work the way I wanted.

I started teaching myself PHP by hacking core files directly.  I didn’t understand actions and filters at the time, so this was the only way I knew how to make WordPress “behave.”  Those of you active in the community now know my opinion of people who hack core … :-)

I discovered Trac and the WP Hackers list and eventually got over my disdain for the forums.  My first year with WordPress was pretty active.  But just about none of my activity in the community was on the positive side. [Read more...]

Feb
23

Free and Open

I write software for a living.  Not something I ever expected to do for a career, but it happened and I’m fairly good at it.

I also write software as a hobby.  Different languages and platforms – working with a diverse set of tools makes me a better developer.  I also give away most of the software I write in my free time.

Why?

Releasing software helps me find bugs, contribute to a growing community of developers, and raise my own name recognition in the market.  Increased name recognition means more consulting contracts.  It’s a win-win.

When I do give my software away, I try to pick the most permissive terms possible under which it’s distributed.  So long as my name and copyright stays on the code, I don’t care what you do with it.

A great deal of the code I write in my free time is for WordPress.  WordPress is distributed under the terms of the GPL (version 2, specifically), so my code has to licensed under GPL-compatible terms.

And that is a can of worms that irritates me.

In my opinion, the GPL is the enemy of software freedom. [Read more...]

Dec
22

Post Supplements – A Concept

The Art of Manliness adds an author box, a Facebook "like" button, a related content gallery, and a subscription feature to the bottom of each post.

A few months ago, WordPress UX Lead Jane Wells posted a request to WordPress’ Trac ticketing system.  The idea was to find a better way to insert “stuff” below WordPress posts:

Inserting the sharing and like rows at the bottom of the post text before the byline/classification metadata seems wrong. It should go below that, so it is closely related to commenting, not part of the content itself. The plugin-generated widget is not “by” the post author, after all.

I haven’t used very many social media plugins for exactly this reason.  Nor have I ever used a “related posts” plugin.  They always seem to conflict with one another and build up a bunch of unnecessary cruft below my content.

So for the past few months, I’ve been thinking about different ways to handle this. [Read more...]

Dec
16

Should Free Software Have Free Support?

I do professional (paid) consulting for WordPress.  But I also write and distribute free plugins and themes for WordPress.  My paid business depends a lot on my reputation on the free side of things.

And that’s where I face a dilemma.

A lot of people use my free stuff.  And several of them come to me from time to time asking for new features, bug fixes, or just regular “I can’t figure this out” support.  Up ’til now, I’ve offered that support for free.

And that’s proven to be a bad idea.

So my question to you, how much is reasonable to charge for ongoing development and support?

Please complete the following survey to share your thoughts on how much (if anything) is reasonable to charge for support, on-going development, and feature requests when it comes to open source software. 1

Complete the survey through Google Docs

To say “thank you” I’ll be giving away a handful of Amazon.com gift cards to those who complete the survey.  How many I give away and the exact amount on each card will depend on how many people complete the survey.

Notes:

  1. For the record, I will not stop giving away free software.  I’m just considering a few different ways I can continue to earn a living while doing it.
Dec
10

I’ve Still Got It!

Every now and then, someone asks me whether or not I still have quality WordPress development skills.  I think it’s a fair question.  After all, I spend the bulk of my time now working with closed-source ASP.Net projects and have little time for my favorite WordPress stuff.

But really, much of what I do in the .Net arena is pretty transferable.  And – this is me bragging a bit – I’m a good developer no matter what language or paradigm I’m working with.

There’s been a lot of talk about WordPress 3.3 coming out soon.  And a lot of that talk has been about the number of contributions and contributors to the project.  I’m proud to say that I’m in that group – I’ve had a patch in every major version of WordPress since version 2.8!

And I want to show that off. [Read more...]