Dev Blog 28: My wife has all the best ideas

I've been working on a built-in tutorial for Davenport for the last few days, to help people get used to the various features. Today I tested it out on Jackie, my wife, who got as far as Tutorial 4: The Timeline before breaking everything.

However, this was the best thing that could have happened.

During development, I have been obsessed with efficiency - not just because I want Davenport to run on mobile devices without killing the battery, but because I have a horror of sluggish, poorly-optimised 'productivity' software. My goal is buttery-smooth performance on even modest laptops regardless of how large and complex your document becomes.

One of the trickier systems to optimise was Davenport's #tag and @time system. #Tags can apply formatting and can have several definitions at different moments in your story's timeline. I was so pleased to get this working that I used it, without really giving it much thought, to power LISA's suggestion boxes.

Tag definitions are a special case in Davenport: they have to start with a '#' and end with a ':' and they have to be right at the start of a note or directly after an @time. For example:

#Fred: The main character

@7am #Fred: In bed

@8am #Fred: Having breakfast

@9am #Fred: At his desk

@12am #Fred: Has a bagel for lunch

Once these definitions have been created, the moment you type Fred into another note all of these definitions can be near-instantly located by LISA and presented as a timeline, with the most relevant definition highlighted.

Being pleased with myself for this accomplishment lasted right up until Jackie typed the following:

#Judy: The love interest

@4pm Fred and Judy kiss for the first time

Instantly I realised nobody was ever going to use the system in its current form. Nobody would even think, let alone bother, to organise the above thought the way the system wanted:

@4pm #Fred: Kissed Judy for the first time

@4pm #Judy: Kissed Fred for the first time

So, after smacking myself in the forehead a few times, I dived back into the code and added a second tier of quickly-traceable connections: mentions. Now a note can define a #tag (like the ones defining Fred as the main character and Judy as the love interest), but LISA can also track and sort mentions of those tags, and bring the most relevant to your attention while typing. I haven't crunched the numbers yet, but I think this makes the feature around a hundred thousand times more useful than it was.

Of course, this means redoing the tutorial, which I had hoped to get finished tonight, so you can blame Jackie for not getting a new build yet ;)

Comments

Popular Posts