The Apps On The Move blog is back

Finally I’ve had the time to get the appsonthemove.com blog back up and running. An unfortunate hack due to an insecure WordPress plugin has caused me no end of grief. The main appsonthemove.com site is now just some static HTML documents and a new WordPress installation is running at appsonthemove.com/blog.

All of the old blog articles have been imported. However there are a few issues with images in older articles. Hopefully this will be fixed sometime soon. If you spot anything else which isn’t quite right please let me know.

OmniOutliner to Markdown

I was doing some planning with OmniOutliner yesterday. I haven’t used it for over two years but decided it was a good fit for the task I had to do. Once I had created my outline I decided I wanted to add it to my Trunk Notes personal wiki.

Excitedly I saw a plugin for OmniOutliner to do exactly that – http://fletcherpenney.net/multimarkdown/. After a little playing I was impressed by all the features and the information available on the site and in the user’s guide. However the opml2mmd tool only included the first column. My reason for using OmniOutliner was the support for multiple columns.

OmniOutliner can export in a variety of formats. One of the simplest is Plain Text with tabs. This includes all the columns and even the column headings. Five minutes later I had a little Python script which easily handles my OmniOutliner document and converts it into sensibly formatted Markdown. I want columns two and above to appear as a bulleted list underneath the heading.

Here is an example OmniOutliner document (not the one I was working with, but it has the same format):

NewImage

As you can see I have three columns, and have included a note. I now export the document in the format Plain Text (with tabs) and run my Python script. Here is the resulting Markdown:

NewImage

The Python script is very quick and dirty (no error handling or proper command line arguments):

#!/usr/bin/env python


"""
Convert an export OmniOutliner (plain text with tabs) document to Markdown

@author: Matthew Kennard <mgkennard@appsonthemove.com>
"""

import sys

outline_path = sys.argv[1]

lines = open(outline_path).readlines()
column_headings = lines[0].strip().split('t')

for line in lines[1:]:
    # Get number of tabs at the start
    tabs = 0
    for c in line:
        if c != 't':
            break
        tabs += 1
    # Remove the tabs
    line = line.strip('t')
    if line.startswith('- '):
        # A branch
        line = line[2:]
        line = line.strip()
        if not line:
            continue
        columns = line.split('t')
        print '%s %s' % ('#' * (tabs + 1), columns[0])
        print
        for i, column_heading in enumerate(column_headings[1:]):
            column_n = i + 1
            if column_n < len(columns):
                print ' * %s: %s' % (column_headings[column_n], columns[column_n], )
        print
    else:
        # A note
        print line.strip()

I’m now happy that I can export my OmniOutliner planning documents and have them available on my iPhone in Trunk Notes.

The beauty of open formats (such as plain text or OPML which OmniOutliner also supports) is the ease with which you can convert your data for use in other applications. If you use Trunk Notes with other applications let me know!

The Importance Of Plain Text

Trunk Notes is just one of many iPhone/iPad apps that make a big thing of plain text. This is a refreshing trend. In the not too distant past it was all about proprietary file formats. If you used an obscure program ten years ago you will likely find it difficult or impossible to open your saved files today without resorting to hackery.

Thankfully times have changed and now it’s all about interoperability. Most modern programs, particularly on the Mac, make use of open file formats and offer multiple ways in which data can be exported. Many people steer well clear of programs which lock data in. With the rate of innovation who in their right mind would spend time building up a vital store of data in an app from which there is no way out?

Plain text is the ultimate in open file formats. A text file is something that can be viewed without the need for any software over and above what comes with your operating system. It’s also hard to think of a modern system which won’t also allow you to edit text files out of the box (just don’t try using Notepad on Windows and expect sanity!)

It’s often the case that once you introduce formatting of text (bold, italics, different sizes of font) you lose the ability to use plain text. The rise though of simple mark up languages – Markdown, Textile, … – provide an opportunity to keep things simple and still use plain text. The great thing about Markdown and other similar syntaxes is that most examples are perfectly readable even if you don’t know what Markdown is or that the text is anything other than plain text. After a while writing in Markdown becomes second nature.

Who would have trouble reading the following?

# To do lists

Stuff to do at the weekend:
 * Research buying a new car
 * Buy food for Saturday dinner party
 * Clean **toilet** and bath

Trunk Notes stores it’s text data internally in an SQLite database. However you can quickly export all your wiki pages as individual text files. You can also sync text files to a Dropbox account. Images, sounds and other files can be retrieved via iTunes File Sharing or again via Dropbox. Of course I hope that Trunk Notes users never feel the need to move to another app – but if they do then it should be very simple to get their data out of Trunk Notes in a sensible format.

In summary make sure that the apps and programs you trust with your notes and other data don’t stop you from migrating your information somewhere else in the future.

New website live

The new Apps On The Move website is now live. There is still a lot I would like to do, and my hope is that this will provide me with a more extensible platform for the future. If you have any comments or find that some stuff isn’t working or could be improved then please let me know. The old site is still there ready to switch back as a last resort!

New website nearly ready…

I’ve been working on a new version of the Apps On The Move website. I’m hoping it is nearly ready to replace the old one. Still some work to do transferring blog posts across and browser testing.

The current/old website was created in Rapidweaver – which is a great piece of software. However I’m eager to move over to a CMS of some kind – primarily so it will be much easier to blog on the move. Having to write posts on my Mac and then upload isn’t ideal.

WordPress was chosen mainly as I didn’t have time to fully investigate all the possible alternatives – Joomla, Drupal, Concrete5, … – and there are many excellent professionally designed themes to choose from and easily tweak. PHP is a fairly sane language for a web platform.

If you would like to see the new website before it goes properly live, i.e. what people will see when they visit www.appsonthemove.com, you should be looking at it now. Feel free to have a browse and post feedback here. At the moment all comments are moderated. If I see that the majority aren’t spam I may remove that restriction, or look at adding some human check that isn’t too annoying.