What I’ve been up to and what’s coming up in version 2.6.3

So I’ve been pretty quiet lately.  I don’t like doing too many of these posts.  There is a real danger in development that you tell people that something is “COMING SOON!” and then a life reality hits, for example my son had appendicitis last week, or a complex development reality hits, I’m looking at you legacy Asset fields, and “COMING SOON!” turns into “COMING SOME AT SOME POINT…”.

I’ll start with me first, development on QW hasn’t stopped, it never does but more on that later.  I’ve been trying to do more writing lately and I’m trying to find an agent for my first book.  If anyone knows of a good agent who is looking for a book about two young brothers who discover that their local forest is full of weird and monstrous creatures then please shout up.  It’s obviously a lot more exciting than that I just don’t want to muddy things up here with a full elevator pitch.  Also, if you know of any site or publication that is accepting short stories, mostly for the fantasy and science fiction genres then I’d be much obliged if you could send me their details.  In short, I’m trying to get my work out there, although it seems most of the American publications and sites are on holiday until 1st September.

As an aside, I’ve created a new type of asset for my story called “Literary Agent” and added some agents I plan to send my book to.  Yay, the custom assets are working out.

Now onto QW news.  Some of the most frequent requests I’ve had lately are related to translations of the QW interface into other languages (hello Turkish feature requesters, I haven’t forgotten about you!)

It’s an old request and I’ve struggled with how to effectively implement it for a long time.  On the surface it sounds like an easy problem to solve, someone would like to help and provide their services, usually free of charge, to create a translation.  Sounds great and it is very generous, I can’t stress that enough.  In reality though, and isn’t reality always this way, localization of an interface is a complex and tricky thing to do.  The main issue is that I don’t want to own or be responsible for the translations.  That is, I don’t want to have to pay to get a translation checked or be responsible for keeping it up to date.  For example, if someone provides me with a translation file I have no way of knowing whether they have written the German equivalent, for example, of “Trololololo” for each string.  To check I would need to either pay someone or find someone who I trust who could check it.  Neither option is great.

My solution to this somewhat intractable problem will not involve trust.  Instead I intend to allow end users to validate the translation for me and for the originator of the translation to accept responsibility for it, so if you provide a translation you’ll need to provide an email address and at least tacitly agree to keep it up to date and fix issues found with it.  If you don’t respond to comments on the translation from end users then the translation will be removed or, if it’s abandoned, given to someone else.  Each translation can be voted on to give end users a feeling of confidence in the text provided.  For example, there may be three competing translation files for a particular language, this may sound strange but translation is more art than science (try using Google Translate for anything more complex than “Hello, I’d like a sausage sandwich”) thus one person may translate a phrase one way, someone else another way, the votes will give a confidence measure of the accuracy and usefulness of the translated text.  Translations will also be versioned and the email address of the translation owner available for end users to contact.

End users will be able to use multiple translations within a stack, where one translation overlays the previous one, thus if something is missing from one translation file, another may provide it.

In short, QW will provide a framework where other people can generate and provide translations but I don’t have to try and make sure they are correct.

I’m currently in the middle of moving the interface over so that it can use strings from a file.  Surprisingly there is a lot of text in QW.  I’m also having to change the way that the strings are used so that they are as language unbiased as I can make them.  Thus I don’t prescribe how a string should be phrased or laid out, just that it is there.  It’s a complex thing to do.

Unfortunately I can’t really say for sure how far through I am at the moment.  Tips, achievements and the main project window are done, as is most of the problem finder but I’ve still got editor mode and the rest of the interface to do.  In other words, I don’t have an ETA yet, but watch this space, I’ll do a “COMING SOONISH!” post with more details when I’m closer to finishing.

Advertisements

Version 2.6 – an update

Just a quick note about version 2.6.  I am still testing at the moment but the good news is that said testing is now approaching completion.  There are nearly 500 formal tests for QW and there are probably that many informal tests again that I run to check other things.  Most tests are an aide-memoire for a specific feature which gives you an idea of the size that QW has grown to.

I’ll be honest, development and testing of version 2.6 has been a long and complicated affair and it hasn’t helped that the changes for assets has impinged on every functional area (for example I am currently testing Editor Mode and sending an update to a project was broken because of the new user configurable fields).

On the upside, I have nearly finished testing Editor Mode and there are only a few minor areas left to test after that.  So I’m hoping (oh god I’m hoping) that testing will be complete by 7th May and then I can release maybe a week later.

What’s coming up in version 2.6

I haven’t done one of these for a while but to be honest there wasn’t much to talk about.  There have been a few “point” releases of QW since version 2.5 but nothing major to discuss.

However in version 2.6 some big changes are coming.

The two most requested features I get asked for nowadays are:

  1. More configuration, i.e. customizable fields, for assets (characters, locations etc).
  2. A dark theme for nighttime usage.

Item 2 won’t be happening (probably) until I can do version 3 of QW.  Version 3 will be built on a completely new technology called JavaFX and will support a slew of new features.  It will also be a very big change that is going to take some time and certain other things need to be in place before I can even think about moving, but it is coming.  As a side note native Linux and Mac versions will be possible when I move to JavaFX.

Version 2.6 will deal solely with item 1.  At first glance it seems like an easy thing to do, just allow users to add new fields, but the implications of doing so are huge.  I would add that an ancillary feature request often tacked onto the request for new fields is the ability to arbitrarily group and order items.

With the preamble over, here’s the 10,000ft view of what will be new in version 2.6.

Drag-n-drop of sections in the project sidebar

Currently the sections in the project sidebar (the panel that shows the chapters and characters and so on) can’t be customized very much.  You can either open or close a section and that’s your lot.

Version 2.6 will allow you to drag and drop the sections around, reordering things to how you would like them to be displayed, so if characters are the most important to you then drag them to the top, or if you are in the middle of getting feedback from your editors, drag those to the top.  The choice will be yours.

Adding/removing sections in the project sidebar

So you can drag-n-drop sections but what about if you never use a section and don’t care about it?  Well in version 2.6 you’ll be able to hide sections (and reshow them) whenever you like.  If you are not using “Research Items”, then why not hide it and save some space.

New object types

You’ve now removed all the things you don’t need in the project sidebar, you’ve moved things around to fit how you like them, but what about if you have something that isn’t an “Item” or a “Location” or a “Character”?  What about if you want to be specific and have a list of Cheeses or Spaceports or Books or Candlesticks?  In 2.6 you’ll be able to create new types of objects and each type will become its own section in the project sidebar, which you can hide or show as you wish.

Customizable object fields

So you’ve created your “Cheeses” object type, now you want to record some information about them, maybe stuff like “Smell” or “Color” or “Consistency”.  In 2.6 you’ll be able to add as many new fields as you’d like and record as much information as you like.  Here’s a list of the types of fields you’ll be able to add:

  • Text – a line of text
  • Multi-line text – err, multiple lines of text
  • Files
  • Select an item from a list of possibilities (think drop down list)
  • Number
  • Date
  • Web link
  • Another object – for example you might want to associate a character with their favorite cheese

Layouts

Your object is created, your fields added but now you have a different problem, how should the information be laid out and displayed?  A number of possible layouts will be available.  Some possibilities are shown below.

BTW, if you eat cheese that has pickled onions in it (yeah I’m looking at you Mersey Valley) then there is something wrong with you.  Seriously go see your Doctor, you are either pregnant or mad.

object-layout-1 object-layout-2 object-layout-3Tagging

But wait!  There’s more.  I’ve sometimes been asked to allow sub-groups or sub-types of objects to be created, or to allow arbitrary groupings of objects together that have some sort of commonality.  If we stretch our cheese example a little more, how would we group together characters, locations, chapters, notes and whatever-else-you-can-dream-up into a single easily identifiable group?  The answer I propose is tagging, that is you apply the same tag or label to each of the relevant objects.

So if you have a character that is obsessed with Wensleydale (let’s call him “Wallace”) and his location may be “62 West Wallaby Street” and you’ve created a new type of object called “Dogs” and you have a dog called “Gromit” and you have chapters called “A Grand Day Out”, “The Wrong Trousers” and “A Close Shave”.  You might give each of these objects the tag of “Where’s the Wensleydale Gromit?” to group them all together.  You’ll then be able to see the tagged objects in their own section in the project sidebar.

It will look something like this.

Cheeeeese Gromit!

Cheeeeese Gromit!

The advantage here is that you can group items together without having to nestle them within a sub-branch of a tree, they remain accessible at the top level and can be dragged and dropped around like any other section.

To add new items to the group you just drag them from another section… which leads me to…

Drag-n-drop items within a section

The final new feature deals with moving items of a particular type around in their section.  You can already drag-n-drop chapters around to order them, so why not characters or locations?

When will it all arrive?

Not sure yet.  I’ve already done the drag-n-drop and hiding of sections and I’ve started on the customizable fields and layouts, but I won’t deny, it’s a huge piece of work that impinges on a large number of areas and that means time.  Christmas is also in the way as is the unforgiving Brisbane summer, where you often feel like mother nature is lurking behind every ominous looking cloud with a piece of 2 by 4, just waiting for you to drop your guard so she can smash your head in with it.

Sometime in February 2017 is a realistic date but it could take longer.  My wife starts a new job (and career) in February and my son starts a new school then too so it will be hectic time and little may get done.  Life finds a way of getting in the way.

What’s coming up in version 2.5

It’s been a while since I’ve done an update, my apologies for that but sometimes I just don’t have anything interesting to say.

Development on version 2.5 has been progressing albeit slowly.  I’ll be honest, this release has been a finicky bugger requiring seemingless endless iterations to try and get things right.

First off, my desire to implement a Text Tidy has pretty much crashed and burned.  The main problem is that it’s almost impossible to reliably detect when a sentence ends.  Human beings understand context and semantics and can detect things like the end of a sentence much more easily than software.  There are clever APIs available that can do it, I just don’t believe a 20MB download per user is worth being able to determine when a sentence ends.

Some of the other ideas for the Text Tidy I had are valid but they would fit more within the Problem Finder than as a separate tool.  I’m going to leave those changes for now.

So, moving on to things that will be in the new version.

Targets & revamped charts

Writing targets is a feature that has been requested a few times but it is a difficult thing to actually do.  Checking for chapter length is simple but session counts is a much tougher affair.

Here’s what the new Targets sidebar looks like:

Targets Sidebar

Three types of target are supported:

  1. How many words you’ve written in a session, i.e. from the time you start QW to when you close it down.  There is tracking how much you write write in a session, how much per day, how much per week and month.  New charts have been added to visualize this data.
  2. You will be able to specify how long a chapter should be.  This is not a hard limit, QW will not prevent you from a chapter being as long as you like.  Instead, if the checkbox is selected it will periodically show you a warning message letting you know which chapters are over the limit.
  3. Finally, you will be able to specify what the readability of your chapters should be.  For simplicity, and because they overlap somewhat the Flesch Reading Ease has been left out (the Reading level is based on the Reading Ease and is a simpler number to understand).

Some new charts have been added, and the charts have been given a visual overhaul so that they are more consistent and just look nicer.

The time selection has also been changed to be more useful, gone is the “30 days” selection and instead there is there now: “This week”, “Last week”, “This month”, “Last month” and “All time”.

There is now a new chart for showing the session word count, an example is given below.

Session Word Count Chart

Similarly, there is a chart for Session Length:

Session Length Chart

A new chart has been added to let you see the current length of all chapters.

Chapter Word Counts Chart

The chapters have be listed vertically down the chart so that they all fit on and you can read the chapter name.  If you change the selection to be something other than “Now” then you get a different view (the same view as you get now).

Chapter Word Counts History Chart

Finally a new Readability chart has been added to let you see what is the current Readability of your chapters.

Readability Chart

As you can see, I should probably up my Readability targets.

That’s the big stuff, I’ve also added a number of new minor things and tweaked some others, in brief:

  • The color selection popup has been reworked to allow for easier RGB selection including entering a HEX code.  This thing has sucked up WAY too much time for something that someone may use once or twice.  I really wish Java had better widgets, their color selection tool is terrible.
  • You will be able to have the time, session word count and chapter word count always visible in full screen mode.
  • You will be able to specify a margin around the text.

I also have a big “out of left field” feature in the works.  I won’t go into details here but suffice to say it won’t be what you expect.

As for the release date of 2.5, not sure yet.  It should be in the next couple of weeks, I just have to tidy up a few corners first.

 

 

 

A new year and what’s coming up for QW

So the new year has rolled around and version 2.4.2 of QW has been released, it’s just a bug fix release though, nothing to get excited about.  The real main change is allowing Editors Service invites to be resent to pending contacts.

I’ve been quiet lately.  There are two reasons for this, the first is that it’s bloody hot in Australia and everything closes down over Xmas while we all sweat and wait for cooler weather.  The second is that I’ve been finishing my first book.  For most of last year I put finishing it on hold to get the Editors Service completed and with that done I put QW development on hold to get the book finished.

With both done I can look ahead to what’s needed for QW and with that in mind I now have reasonable confidence in what big things will be making the cut for version 2.5.

  1. First up is a “text tidy”.  After sending my book/project to the missus we discovered there are a number of quotation marks that won’t display in the text.  But only in the first three or so chapters.  It turns out these characters are from MS Word, added when I began writing the story and before QW existed, bear in mind QW is at least 7 years old!  Now the characters should show up and it’s something I’m going to (try) and fix but the bigger issue is the mix-n-match of quotation characters.  Hence the need for a text tidy which will unify and format the text.  This would be similar to the auto-correct that Word offers but since I am completely against auto correction for creative writing (nothing pulls you out of writing more than magical changes occurring in the text that you didn’t intend) it would be a tool that works like the Problem Finder.  It would be designed to be run at the end of editing and it would ensure that the correct number of spaces are before the start of a new sentence, that a full stop is either inside or outside of a quotation mark (your choice), that quotation marks are the same and so on.  There a number of minor rules you can apply for tidying things up and making them consistent.
  2. Improvements to the Statistics panel and charts.  This is an area I’ve neglected for a while and now needs some love.  More charts are needed for those who like getting information about their text and progress, for example I want a chart that tells me the chpater length so I can ensure I don’t have a monster chapter.  You can do this now via the Word Counts sidebar but it is tedious.  I’d also like a similar chart for Readability so I don’t have a single chapter that is easy for a 5th grader to read and another that requires tenure at MIT.  Again, doable but tedious to achieve.
  3. Targets.  A few people have asked for this and it’s something I could use as well but it is difficult to implement in a nice way.  Targets could be for writing, such as 2000 words daily or weekly, or they could be for chapter length.  The two are different but both are useful.
  4. A Project description page.  This is something I should have added at the start and didn’t for some reason.  For me at least, and I’m sure the same is true for other people, I will have an idea for a book/story but I don’t have it fleshed out yet.  I create a new project, give it a nominal name but then have to put the description in a chapter.  What is needed is a way to provide a description for a project.

These are the big things that will definitely be in 2.5.  There are other ideas that may well make it in and there are a few minor features that users have asked for that I’ll implement (such as putting a margin around the text in full screen mode).

I’ve no idea about a release date for 2.5 yet.  The text tidy tool could take a while due to needing to get the UI right and being able to undo changes.  So watch this space, I’ll keep you updated.  Soon I begin the great adventure of trying to get published, I hope my sanity will hold out, also who knew that knowing when to leave a sentence alone is a skill that needs to be learned.

And a pox on the WordPress visual editor that won’t allow me to format things in the way I would like.

What’s next for Quoll Writer

So the last release, 2.4, was not something I had planned to do.  I was hoping after 2.3, with the introduction of Editor Mode, I could kick back a little and finally get return to writing.  The point of Editor Mode was to allow my missus, who works in the next room to me, to be able to read and comment on my first book.  However it became clear there were a few things I needed to change within QW first.  One of the biggest issues, that thankfully few people experienced, was not being able to open projects.  Stopping people from writing is probably the greatest irritation and frustration for me, I wanted QW to empower people, not prevent them from scratching their itch.  The usual cause of this problem was the projects.xml file which QW used to keep track of all the projects you have, when you last edited them, where they are stored, what they are called and so on.  Sometimes though it became corrupted, the file became literal junk, filled with “NUL” values that overwrote the entire file, losing all the information it contained.  I’ve never tracked down the cause of this, I have my suspicions about why but nothing definite.

One of the most important rules I have in life and it is something I employ when developing code or while writing is “Redefine the problem.”  QW itself is a perfect example of this in action, when I started writing I tried out Word and a couple of other programs but I soon discovered they are focused on how your text is laid out rather than the text itself.  This is fine for writing a letter but it made me realize I was looking at the problem the wrong way, I was trying to fit my needs to what a word processor offered and I didn’t fully understand what it was I needed.  I needed to redefine my problem.  Thus QW was born.

The corrupted projects.xml file was a similar problem.  The fact that the file became corrupted was a problem but instead of trying to fix it I redefined the problem to instead ask myself “how do I get rid of the file altogether” and a suggestion from a QW user led me to the new “Projects Window” and to use a database to store the project information.

Version 2.4 also contains a number of important bug fixes and user requested features that I could no longer ignore, not that I ignore them, it’s just in development you have to be careful of scope and feature creep.  Sometimes things have to be added to the ever growing “do it later” pile and fastidiously ignored.  Adding support for bold/italic/underline for assets was one frequent request, allowing documents to be added to assets was another.

But now the release is done and out of the door and it’s taken me 450 words to get to the point of this post.

What’s next for QW?

First, I need to get back to writing, so my time is limited but the next big push is looking into the Mac feasibility.  In short, can I get QW working on a Mac.  This is going to take some time and while I’m sure that I can get QW running, running is not the same as working.

Next is the QW website and user guide.  The user guide and website are woefully out of date, there have been a billionty new features added and the website doesn’t reflect this.  The user guide still has images of QW from version 1.4 and some of the information is out of date.

The test tracking tool I wrote to help me test QW is now so rickety that I’m surprised I can still use it (seriously why can’t I find a good online test tracking tool?)  It needs some work to get it back up to scratch.

I also want to write some blog posts on various aspects of QW that I believe are helpful but that some people may not be aware of them, for example splitting chapters, the problem finder, setting what is displayed in the projects window, editor mode and setting edit points.  QW is designed to hide all these features away but it wouldn’t hurt to give them some time in the sun.

This is all admin type stuff though, here are some of the “big” ideas I have for version 2.5.

  • Some sort of integration with self-publishing services such as Amazon, Lulu and even things like NaNoWriMo.
  • A word cloud for your story (I’ll do a blog post on this at some point, it was a feature planned for 2.3 but had to take a back seat).
  • More statistics and visual representations.
  • Targets, such as words per day/session and so on.
  • Text tidy, a tool that will allow you to tidy up your entire project to conform with certain rules, for example putting a , after “, having two spaces at the start of a new sentence, ensuring all quotation marks are the same.
  • A news/interesting stuff tab which would show you interesting information/links.
  • HTML export that actually looks good.
  • A project planning tool that allows you to structure a project.
  • A timeline tool for planning timelines (this may be the same as the item above).
  • Move QW to use JavaFX.
  • Integration with Evernote so you can add notes/thoughts on your mobile device and convert them into “real” things within QW.

It’s important to note that all or none of these things may show up in 2.5 and if you have something you’d like to see added/changed please let me know.   The list above also doesn’t include the myriad of small changes and additions that will occur, for example I need to add the ability to change the font and font size of text boxes, that will probably be in 2.5.

That’s it for now, Happy Writing!

Another sneak peek at version 2.4 or why you sometimes have to break the world to make it better

It is said that you have to break eggs to make an omelet, and in software it is sometimes true that you have to break the world (your code) to make things better.

For the upcoming version 2.4 I’ve had to break the QW world twice, hopefully for the better.  The biggest change you’ll notice is how you interact with your projects as a whole, so how you open, find and manage them is changing in a big way in version 2.4.

In previous versions I’ve used an xml file to define your where your projects are stored.  But as time has gone on, and with the release of Editor Mode, the amount of information I need to store about each project has increased.  Also, more frustratingly, a number of users (thankfully a very small number) have reported corruptions with the file.  This has been a surprise because I wasn’t even aware the file could be corrupted and I’ve no idea what is causing it.  So in version 2.4 meta data about your projects will be moved to a database instead.  This has a number of benefits but was also a cause of one of the world breakages.

Here’s the new “landing” window where you’ll interact with and manage your projects.

landing

The exact information displayed for a project will be customizable, although I haven’t decided on the best way to do this yet.  A text format such as the following is currently being used:

<b>{s}.</b> {wc}, {ch}<br /><i>{le}</i>

where each value in the { } brackets has a meaning, for example {wc} means replace the value with the word count.  This has fantastic flexibility, especially when mixed with the HTML tags, however it may not be suitable for everyone.

Backups

In the current version of QW you can create a “snapshot”, which is, in all but name a backup of your project.  Trouble is I never really developed the concept and it has just languished, doing its thing and dutifully creating backups but pretty much useless unless the user intervened by diddling with zip files.

All that changes in version 2.4.  Backups can now be managed, the backups directory specified/changed and the project restored from a backup.  There is also a new option to indicate how many backups should be kept.

backups

Drag-n-drop importing

I’m not going to lie, anything to do with Java Swing and drag-n-drop is a mindnumbing miasma of murder-inducing mentalness, but I’m not immune to the reality of how useful such a feature is so I’ve taken one for the team and you can now drag your .doc and .docx Word files onto the your project window or on the landing window and it will trigger the import.

The picture is rather boring so you’ll have to take my word for it.

Bold/italic/underline in asset/chapter item descriptions

This is perhaps the most requested feature (apart from the next one in this list).  In short, in version 2.4, you’ll be able to use bold/italic/underline on character descriptions, notes, scenes and so on (even ideas).  The description text boxes now uses the same text component as normal chapter editing does (this is a source of the second world breaker).

I’ve also just added support for spellcheck and synonym lookup.

Documents in assets

Another frequently asked for feature is to add documents to characters and so on.  This one was fairly straight forward to do although it turns out there is no “nice” way of displaying the documents.  I’m not entirely happy with the display, or the layout of assets, and it’s likely to change in a future version.  A while ago someone asked for assets to be displayed in a sidebar and I think that’s probably better but I don’t want to lose the flexibility.

Coming soon

So that’s everything new coming up in version 2.4.  I’m hoping to have the new version out in a week or two, it just depends how long it takes to test.