Creating a Blog I'll Actually Use02-24-2010 4:41 AM permalink
I have 3 blogs including this one. And they're all being neglected. The last post on any of them was 5 months ago. There are lots of reasons why I don't write more. Busy at work, social life, good old-fashioned laziness. But there's only one that activates my programmer's itch. My blog interface is just not user-friendly enough.
When I do get the urge to write, nothing derails it faster than getting irritated with the actual writing process. Getting your thoughts onto paper should be the easy part. The hard part is ensuring that those thoughts don't make you look like and idiot.
So this blog post serves 2 purposes.
- Announcing that I'm going to be putting more time into blogging.
- Starting to lay out a plan for making blogging less painful
First off, let's get a feel for why the current experience isn't working. Here's what my current blog interface looks like.
Not too shabby looking right? I'm running the blog app that comes with the Axiom Stack framework. I've written about Axiom Stack before and I think it's pretty sweet. I substituted the fckeditor for wymeditor, because it produces more standard xhtml. This is a nice addition for Axiom Stack because it uses e4x to parse and manipulate xhtml on the back end. But there loads of problems here (no offense to the axiom software guys, this is a free blog app that's really just meant to be an example). The rest of this blog focuses on the most egregious offender. The WYSIWYG editor.
WYSIWYeG: or What You See Is What You (eventually) Get
WYSIWYG editors are terrible for any significant writing. The behavior is often inconsistent. They're often buggy. And you spend a lot of time fiddling with toolbars to get your content to look the way you want. Or worse yet, you have to flip over to the dreaded HTML view to fix things. However, they've become very popular on the web for 2 reasons.
- They give the user lots of controls for doing other important things, like working with tables, links images, bulleted lists, etc. All those other things that make up "content". In short, wysiwyg's give us an environment similar to (or at least inspired by) Microsft Word and other desktop word processing software.
- It's a hell of a lot better than writing HTML by hand. HTML is the language of web content, but it's not what you want to be thinking about when you're writing. For instance just making one word bold in that last sentence requires 17 extra keystrokes than normal (I prefer <strong> to <b>, don't you?)
There are good things about wysiwygs but my biggest complaint with the one's I've used is that none of them hide the HTML well enough. There are always quirks that remind me that I'm dealing with code. And that code needs to be formatted properly or I'm going to have issues. What I want is a language that allows me more flexibility with my content without shoving HTML in my face.
As far as I can tell, that's Markdown. Markdown is gaining a lot of traction as a language for facilitating written composition on the web. You just write like you would normally, double newline for paragraphs, simple markers for formatting. So this:
This paragraph serves to *emphasize* some of the nicer features of markdown. It is _not_ meant to be a full-fledged [tutorial](http://daringfireball.net/projects/markdown/basics)
This paragraph serves to emphasize some of the nicer features of markdown. It is not meant to be a full-fledged tutorial
The key feature with markdown is that you can write html if you need to. But if you don't, you'll never see it, and you can still do the usual formatting of your content; bold, italic, lists and links. 99% of blog content is made up of words and these simple elements. That should be easy. And with markdown, it will be.
So my first goal is to replace wymeditor with a decent Markdown editor. As it turns out, a cursory google search couldn't find any that do what I want. Which is to provide a native markdown interface, syntax highlighted, with a function that will preview it in HTML. So that's my first project on the road to a better blogging experience.
Other posts in this series follow the changes I'm making as well as touching on anything else I run into that's interesting. Other stuff on my list include:
- Better integration and support for code snippets
- Easy dictionary look up
- Easy image inserts (uploaded to my server)
- Re-usable formatting elements
Most of this stuff can be easily accomplished with a few plugins in popular systems like Wordpress or Movable Type. But this is my technology blog. We're looking for something a little different here. Hopefully future installments will be more interesting than what this post turned into. But hey, give me a break, I haven't done this in like 5 months.