muhuk's blog

Nature, to Be Commanded, Must Be Obeyed

August 25, 2008

Sum Of All Your Choices

I used to have a discussion with an old friend about intellectually challenged and destitute of knowledge being happier and whether we should stop trying to become conscious and admit to nearest brainwashing center (TV?). I was the fool to advocate gnothi seauton (know thyself) and a meaningful life. Obviously he had a greater understanding of life then.

There are people (almost everybody)[1] who are so oblivious about their miserable life, they are happy. They are not really happy but they are content. Judging by their actions, it is OK for them. Even if they continuously complain. Taking control of their life is simply not a viable option for them. When confronted they would either say they are already in control or give you an endless list of reasons why they can’t. So? Who cares?

I have recently finished reading In the Beginning was the Command Line. I didn’t like it too much in the beginning, but then as I read through I discovered it is a masterfully crafted article and the topic relevance for me is just an artifact. I suggest anyone, not just computer/internet enthusiasts, to read it. It is fun.

The article is about operating systems as interfaces. It has lots of colorful analogies and even some anectodes about interfaces and interaction. It explains that computing is all about building complexity. How UNIX builds complexity from simple components and GUI operating systems, such as Windows and Mac OS, hide complexity behind an interface. The distinction is that you control complexity in command line or you delegate control to your GUI. When you delegate anything you have much less control. You know this, right?

When you are working in the command line all the tools are available, but unmaterialized until you summon them. In a GUI environment all the tools are usually presented as choices and you simply pick one or the other. This reminds me Barry Schwartz’s TED talk; Paradox of Choice. The problem, sometimes, is not not having the right tools but the difficulty of choosing amongst too many[2]. It is the way of thinking suggested[3] by your environment that makes the difference.

Before I say WYSIWYG is a joke, let me explain what it stands for; what you see is what you get. How honest and straightforward isn’t it? And it sometimes even deliver that promise. No, no, to be honest WYSIWYG implementations deliver most of the time, meaning the result is what you intended it to be. But what about those rare occurences of data[4] loss or when your entire document corrupts when you try to add or change a small thing?

It drives me crazy when a application WYSIWYG starts to act like what you see is what you will but not necessarly what you want. At that point all the time saving and slick icons and so called wizards don’t mean anything to me. All I can think of is my computer doesn’t follow my orders, this is frustrating. I choose not to use WYSIWYG whenever possible. Explicit is better than implicit.

Before we move on let me be clear on one thing; being in control doesn’t necessarily mean having to do more. On the contrary ditching WYSIWYG should make to process more practical and efficient. You just have to use more brainpower and maybe to a little bit more planning than before. But once you have your setup in place, I assure you it will feel more like home.

I have two plugins loaded for this blog; google-analytics plugin and Markdown. Markdown is a text to HTML conversion tool. You write your document in a specific but intuitive[5] format in plain text. All you need is a text editor. You get to work directly on the source, whereas you work on a representation of source in WYSIWYG. So it never blows up, no data loss can occur because you tried to change the formatting. I write my blog entires on Kate (my text editor) using Markdown format. I rarely need to check because it is easy to guess how it will look like when rendered.

So I can’t easily integrate charts[6] and stuff, do fancy numbering or change my paper size[7]. Smart Ascii surely has its limitations. But do you really have to have those features? Just because the neighbour’s kid has?

Choosing plaintext doesn’t only help me keep my sanity, being a simple protocol is a great advantage. Let me give you some examples;

  • You can use regex search and replace on the source, meaning format together with the content. For example you can change all third level headings (“^### (.*)$”) into second level headings (“## \1”).
  • You can render into multiple formats easily. Or you can simply chain; using a HTML to PDF converter you can easily create PDF documents from the same source.
  • Plaintext can be diffed. You can see exactly what changed between two versions of a document. If you use a revision control system, with a little more effort, you get persistent undo (persistent between editing sessions).

This is not an exhaustive list of course. I just wrote what came to my mind at the moment. I use plaintext intensively and daily. It never breaks. You can open a plaintext document on any computer and you will probably be able to do so in the future as well. It is almost a trivial task to open a plaintext document, (very unlikely but) even if you can’t find an application you can write your own. Try Markdown, or any other Smart Ascii format. Once you get the initial (pyschological) barrier I hope you will like being in control.


[1]Except of course whoever you are and all the people you know and care.
[2]Have you ever worked on 3D Studio Max or Maya? If you are interested in interface design I would recommend you to spend some time on them. And then a little more with Blender.
[3]Forced might be truer. And if you disagree here is Shelley’s blog.
[4]Usually you lose formatting and not the content. But as far as I am concerned formatting is data as well.
[5]Markdown and similar formats are called smart ascii. It is not necessarly ascii, I always use UTF8. But it is IMO smart in the sense that you can both read and edit the source document with the same ease.
[6]Actually it is pretty easy. Markdown text can include HTML and using something like Google Charts API you can easily add charts.
[7]If I were to produce a PDF or print out; I just pass my Markdown text through Dingus and paste the rendered text into OpenOffice Write. Doesn’t even take 1 minute.

If you have any questions, suggestions or corrections feel free to drop me a line.