1.5.0
December 16, 2015
1.5 is another major rewrite. It focuses mostly on architectural and correctness issues, rather than new features. Very little changes on the user side; it's more for the sake of improving the code base, and making it easier to maintain. Focuses include:
- Improved memory usage. Maintains a stable memory footprint with more intelligent caching. Gets rid of a ton of stuff that caused memory bloat before. While the 1.1 line might have bloated up past 500 MB in some rare cases, and the 1.4 line at least keeps things capped at about 250 MB, it now stays pretty solidly at about 100 MB no matter how much it's run. Note that it typically uses about 75-80 MB just to start up, due to the .NET environment, so this represents a pretty low overhead once you work out the size of the data.
- Rebuilt forum adapter code. This is the code that handles figuring out how to read information from various types of forums, and is improved to be slightly more reliable, and easier to expand to other forums.
- Rebuilt text output code. This is the code that converts the tally data into readable results. New version is much easier to maintain.
- Rebuilt code for handling page loading logic. Can handle gzip compression on page requests now. Also reduced the number of simultaneous connections from 5 to 4, since 5+ seemed to cause stalls when reading from SB. Overall speed tends to be about 15% to 30% faster for loading the bulk of a thread's pages.
Overall: More maintainable, reduces memory bloat, and faster page loading.
However, in the leadup to the next release, a few little issues are being fixed which are useful for the user to know.
- If the thread name you copied into the drop-down box does not include the host name (eg: http://forums.sufficientvelocity.com/), it will no longer assume any particular host. Copy the full URL into it if it refuses to run a tally because of this.
- Plan names are now listed in the voter listboxes in the Manage Votes window, so that you can merge them, or merge voters with them, as needed.
- Tasks that differ only in capitalization now get properly treated as the same task when grouping to display.
- In compact display mode, for votes small enough to show the full text (one main line + one optional sub line), it now combines multiple votes that have the same main line while also showing you the count of each individual subline.
In other words, it collapses this:
[5] Vote for thing
[2] Vote for thing
-[2] With an extra note
Into:
[7] Vote for thing
-[2] With an extra note
Plans:
- A vote with a plan name as its first line, where that plan has no content, will be treated as a label for the entire post, as long as there are no other plans in the vote.
In other words, the plan:
[x] Plan Kine
[x] Stuff
[x] More stuff
Will be treated as a single, referenceable plan.
- Plan naming. Plans named after usernames cause a ton of trouble. I've now decided that you cannot have a plan that is named after a user. This applies to both automatic and base plans, as well as the above labeling of an entire vote. This clears the issue of how to treat plans that are named after users, which previously caused varying conflicts, and lost part of the ability to properly use username references for tracking votes.
The following formats apply:
[x] Username — This is a tracking reference, and will always point at the latest post made by this user. It will never be a 'plan' (ie: marked with ◈).
[x] Plan Username — This is a pinned reference, and will always only point at the vote that was valid for Username at the time the post was made. It will never be a 'plan' (ie: marked with ◈).
[x] Plan Fly High — This will always only point at whatever plan is defined with this name, anywhere within the tally vote range. Only one such named plan can exist.
[x] Base Plan: Fly High — This will always be a reference to the named base plan. A base plan is not automatically voted for.
[x] Base Plan: Username - This will not be treated as a base plan, but instead be normal vote text, with no referencing capabilities other than normal user references.