How you can keep track of how v2.5 is progressing

It occurred to me the other day that there is a way for you, dear QW user, to keep track of how version 2.5 is progressing.

tl;dr Click here to view the commits that are occurring to the code for version 2.5.

A few months I changed the way I develop QW and instead of huge monolithic updates I switched to smaller, more delineated changes (or commits) to the codebase.

Testing of this release is going slower than it has for previous releases.  I’ve talked about some of the reasons in the last post but one further complication is that I’m now raising bugs for just about everything that I think needs adjusting within QW (I couldn’t do this before with my home grown test tracking system).  I’m also tying commits to the codebase back to the bugs raised so I have a full history of what is going on and why.  I’m still working on how to make the bugs visible to the world.

I appreciate that most people will have little to no interest in this and fewer will have an understanding of the terse and arcane terminology used but it does give you a window into what I’m doing.

So if you want to see how version 2.5 is coming along, check out the version 2.5 commit list.

Advertisements

Version 2.5 – an update

Version 2.5 is now complete and I’ve begun testing however a number of things have occurred that means it may be a while before it is actually released and I just wanted to give a quick update as to why this is happening.

New Test Management

Over the years I’ve been writing tests for QW and in the past I created a webapp that managed them for me, it allowed me to record the testing results and keep track of what had been tested.

However it needs some work and to update it to what I now require (QW has over 400 separate tests) is going to take a serious amount of time.  It also suffers from the “internal only” problem in that, because I’m the only one using it, a number of problems have been ignored or I work around them since that is easier than actually fixing them.

So for version 2.5 I decided I’d try and use a 3rd party online system for test management.  It has taken a while to actually find one, there are many around but I can’t afford to pay $10/month for a system that I may use twice a year.  I’m now using a free system called leantesting, but it comes with its own problems, not least I’m having to change the way I want to test to fit with how it forces me to test.  For example I can’t create a new test run that only contains tests that haven’t passed or haven’t been run.  Also I can’t add tests to a test run which means I have to start a new test run with the new tests and keep track of these things myself.  Not ideal but still, overall better than trying to roll my own system.

The tl;dr is I’ve moved to a new test management system and it’s taking me some time to get to grips with it.

I am getting older

Yesterday I turned 43 and my birthday present to myself was a pair of $750 spectacles that I seem to now need for reading and computer use.  Over the past few months I’ve been getting a lot of headaches and shying away from reading and writing.  I’ve found myself having to put things at arms length so I can see them properly.  In short, I’m over 40 and getting old so on Friday I had an eye test where I was told I am over 40 and getting old.  This was unhelpfully reinforced by an information card the optometrist handed to me that told me I’m over 40 and getting old.  The final nail in the coffin was when she placed a popped a lense into the weird testing contraption in front of my face that brought the previously blurred tiny text line at the bottom of the borderline offensive information card into sharp focus.

The tl;dr is that I’m old and need glasses, yay go aging!

What this means

To sum up, this means that testing of version 2.5 is taking a bit longer than I thought it would.  The double hit of new testing tools and deterioating visual acuity means I’m moving slower than I used to so testing and fixing problems is taking longer than it did in the past.  Hopefully when my glasses arrive in a week or so I will speed up again since reading won’t be a struggle (I’m starting to get a headache writing this post).

Version 2.5 is coming I promise, it’s just the old man is taking a little longer than he used to!

 

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.

A Mac version of Quoll Writer – not until v3

I’ve actually been able to use QW for writing lately, hurrah!  Specifically I’ve gotten back to editing my first book (it’s been close to a year since I last looked at it) and found that I actually quite like my own writing and I’m not polishing a turd, double hurrah!!

But my mind is again turning to the future of QW and to that end I started trying to get the Mac version up and running.

I’ll save you the long version so you can stop reading now.  QW on a Mac won’t be happening for quite a while.  Not until at least version 3 when I plan to move QW to JavaFX which is the replacement for Java Swing.

Over the past week I’ve been tinkering around, trying to make QW not look like utter arse on my Mac.  But there are so many things wrong I’ve come to the conclusion that I’m best off waiting.

QW is currently uses Java Swing, which is a fantastic toolkit for doing just about anything that you might want to do in a GUI.  The problem is that it is also a verbose, complicated mess that is poorly documented, has non-intuitive design and tempremental behavior.  A substantial amount of my development time is spent dealing with these quirks and oddities (don’t get me started on layouts and component sizes).  However, with effort, as QW shows, you can produce something that looks nice and behaves well.  A lot of this success comes from the use of a amazing LNF (look-n-feel) called JGoodies.  It handles a lot of the underlying gubbins needed to make components look like they should on Windows.

Now, Macs have a similar project, called Quaqua however it is has recently fallen into disrepair, for example it doesn’t use the new font for El Capitan and there are a number of visual issues with it.  Don’t get me wrong it is also an amzing project but the number of tweaks and twists required to make QW look even close to how it does on Windows would be huge and some behavior I struggling to understand.  For example, in some places moving your mouse over a button shows a background, in other places it doesn’t. I would have to change that behavior and probably have to create new components to get the look and feel I’m after.

The way full screen works on Macs is also different.  QW spoofs full screen behavior, this is because Windows handles full screen apps very badly, Java Swing handles it even worse.  QW’s full screen is designed to give you a semi-locked in space, where you attention can be kept on the text but you can break off to do something else then come back to it.  Java’s full screen behavior is to exit from full screen whenever you give focus to some other window which is NOT what you want.  So QW just makes the window full screen size and removes the chrome (the title bar and buttons) so you can’t do anything with the window.  You get the look of full screen but the behavior of a standard window.  Now on a Mac QW has the app menu bar at the top, this means I’ll have to change the behavior to use real full screen to get rid of it.  Lions, tigers and bears, oh my…

I’ve always known that Macs handle tabs badly and nothing I’ve been able to do has made it better.  The default way of handling a tabbed panel in Quaqua is to put a god-awful border around the panel obliterating the visual design.  I can remove the border at the expense of how the tabs themselves look and I’d have to start drawing my own borders around components.  Spiders, wolves and snakes have now joined the throng…

The menu bar itself is a problem for QW.  I’ve had a couple of people complain about the lack of a menu bar in QW but I’ll be honest, menu bars need to die.  They are great at hiding functionality but they actively hamper feature discovery and muscle memory.  Menus are needed, QW uses them in many places but sticking everything on a bar and hoping the user can find the relevant function by digging around in multiple menus is what I consider an antifeature (I’m aware I’m using this word in the wrong way, there isn’t a better term).  It makes the user’s life difficult for no tangible benefit and I consider it to be lazy design.  There is a reason browsers removed menu bars and why Microsoft introduced the Ribbon.  So QW will never have a standard menu bar.  There are certain global features that you could put on one but they would be limited, perhaps a list of open projects, open a project and preferences, help, contact support.  Even preferences is contextual though, different preferences are shown and relevant in the Projects window and in a standard Project.

I could go on, and so I will, but briefly.  The default colors for highlights aren’t compatible with QWs design using Quaqua, the drop shadow on popups is too dark, the mouse behavior is different, the control key is different (Macs effectively have 2 control keys), nothing seems to have the correct opacity and there are suprious borders drawn in various places.  All this and I haven’t even checked the functionality!

So, to sum up, there are lots of issues in the way for making a Mac version of QW.  I’m hoping that when I move to JavaFX many of these problems will disappear but that remains to be seen.  Apparently JavaFX uses a CSS style component skinning (think web pages) so changing how things are styled between platforms would be simple, if Mac, use this, if Windows, use this instead.

The next obvious question of course is when will QW version 3 appear?  To be honest I don’t know.  It is something I’m going to start looking at but I’ll be moving to a whole new architecture and way of doing things which means time.  Yes you can embed Java Swing components in JavaFX but how that works in practice (and how well it works) is something I’m ignorant of.

Watch this space, I’ll keep you updated 🙂

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!