Skip to content

Releases: Kinematics/NetTally

1.5.3

20 Dec 18:33
Compare
Choose a tag to compare

December 20, 2015

  • Added a set of general/advanced options. Open the window with the Advanced Options button.
    • The option to allow ranked votes has been moved to the general options dialog, rather than being a per-quest setting. It's been around long enough that I figure it's stable, and doesn't need the extra care of only turning it on per-quest. It defaults to on, though you can turn it off if it messes with things somehow.
    • In some (hopefully rare) instances, the default string comparer can be too lenient, merging together votes which should be treated separately. In those cases, you can turn off the option to ignore symbols (which includes whitespace and most punctuation). It may add extra merging work for you, but at least you can certain that the votes are kept separate unless you explicitly merge them together.
    • For the purpose of simplifying some merge situations, where there's a simple vote that includes a long description that's superfluous for the purpose of voting, you can turn on an experimental string trimming option. If a colon (:) is found less than 1/4 of the way through the total string (not including Plan: separators, or http: links), it will drop the text after the colon.
  • Newly added quests now have the Try Last Threadmark option enabled by default.

1.5.2

18 Dec 18:25
Compare
Choose a tag to compare

December 18, 2015

  • With the changes made that allowed vote collapsing in compact display mode, some quirks became evident. The manner in which voters are collected and displayed in Compact mode has been reworked.

All collapsed lines under a main line now have individual voter spoilers, and the content of the collapsed block (either a single line, or a 'plan' name indicating the original voter) is placed in the spoiler label.

In addition, [i]all[/i] votes are placed under the collapsed format. The main value of this is so that you can see the first line of any vote block that is too long to be normally displayed, instead of just a series of "Plan: UserX" labels. This also allows similar large votes (those starting with the same first line) to be grouped together, making it easier to see which should be compared.

Placing secondary lines in spoiler labels also provides a way of better compacting the entire vote. Votes with a descriptor, followed by a very long explanation, are now just two lines long, rather than multiple lines that make the entire display a mess.

Overall, the intent is to give the Compact output mode more meaningful value.

  • In addition, a new partition mode has been added. Partitioning by Line+Task allows partitioning by line, while giving each child line of a vote block the same task as its parent line (unless the child line already had a task).

[x][Stats] Stats to buy
-[x] Str
-[x] Vit

Partitioning by Line+Task would give you the following three lines:

[x][Stats] Stats to buy

-[x][Stats] Str

-[x][Stats] Vit

1.5.1

17 Dec 23:25
Compare
Choose a tag to compare

December 17, 2015

  • Fix an issue with a comparison operator that sometimes allowed duplicate entries to be treated as separate.

1.5.0

16 Dec 19:42
Compare
Choose a tag to compare

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.

1.4.2

05 Dec 08:02
Compare
Choose a tag to compare

December 5, 2015

  • Rewrite code for checking for new releases, to ensure it's not possible to silently fail and possibly cause the program to simply not start. (Actual cause of problem may actually be antivirus behavior.)
  • Rewrite code for cleaning BBCode out of a vote line, to normalize start and end tags per markup tag. Fixes flaws in previous handling, while also being faster.

1.4.1

04 Dec 20:26
Compare
Choose a tag to compare

December 4, 2015

  • Bug fix: Reference names that didn't match the original username's capitalization were not being matched properly.
  • Debugging: Added some logging for program startup if debug mode was active.

1.4.0

04 Dec 06:10
Compare
Choose a tag to compare

December 4, 2015

There were some notable bugs in the 1.3.x line, so, combined with the notable program changes that have been implemented, I'm bumping this up to 1.4.0.

Voting:

  • Bugfix: Hex colors are now properly parsed when reading posts.
  • The + symbol is no longer a valid voting marker.
  • Only BBCode within the content area of a single vote line will be retained. All other BBCode will be stripped. This includes full-line bolding or coloring, or markup that spans multiple lines.

Purpose: Retain useful markup (bolding or coloring or whatever on particular segments of a given vote), but remove extraneous markup (eg: fully bolded votes that are no different than non-bolded votes; coloring a line of a vote to mark which lines were added or changed, for the purpose of discussion; etc).

In other words, BBCode that applies to the vote structure will be discarded, while BBCode that applies to the vote content will be retained. This also allows the markup to show up in areas where it had to be discarded before, such as compact votes and rank votes.

Program:

  • Bugfix: Ranked votes (without a regular vote in the post as well) were not being tallied. (affected: 1.3.0 - 1.3.2)
  • Bugfix: Votes referencing a user who had made a vote post, but had not voted (eg: posted only a base plan) were not being properly handled. (affected: 1.3.0 - 1.3.2)
  • Bugfix: Some references to plans were not being tallied properly. (affected: 1.3.0 - 1.3.2)
  • Improvement: Votes which reference a future vote, which in turn references a future vote, and so forth, are now handled properly no matter how long the dependency chain.
  • Change: Compact votes that should be one line, but are part of a plan (ie: plans partitioned by line) now properly show the line rather than the plan name.
  • (DEBUG) is shown at the top of the output if the program is running in debug mode.
  • Partition by Task and Partition by Task/Block have been removed. Their use was obscure and not terribly useful, and not used as far as I know.
  • Partition by Block (All) was added. This is the same as Partition by Block, but also partitions all the blocks within a plan as well. (The basic Partition by Block treats plans as one contiguous block.)
  • Plans are now displayed with their header line for identification, if partition mode is None or Block (which leaves plans whole).
  • If you partition All by Block, any task on the plan name line is propagated to any blocks contained within that plan, as long as they don't already have a task set.
  • Custom tasks that you add in the Manage Votes window are retained if you re-run the tally on the same quest. (They were already retained if you changed the partitioning mode.)

General:

  • Improved testing and validation.
  • Complete rewrite of partitioning logic.
  • Major rewrite of string parsing logic.
  • Significant speed improvements.
  • A number of obsolete fields were finally removed from the program. It should be fine as long as you're not trying to update from a version that's more than 6 months old.

1.3.2

30 Nov 09:22
Compare
Choose a tag to compare
  • Bug fix: Mixed dashes and spaces in prefix weren't being tallied.

1.3.1

30 Nov 01:23
Compare
Choose a tag to compare

Bug fix release

  • Invalid voter count for a post with only base plans, but no vote.
  • Failed to properly handle a vote that only contained a line referring to a base plan, with "Base plan" in the text.
  • Fix potential issue of empty votes being recorded.

1.3.0

29 Nov 19:59
Compare
Choose a tag to compare

November 29, 2015

  • Better string comparisons, particularly for unicode characters and symbol (punctuation) differences.
  • Automatic plan detection. See wiki.
  • Retain plan name as part of the vote for automatic and base plans, when the partition mode should include the full plan block.
  • Pre-scanning for voters and plans. See wiki.
  • Better handling of reference votes, such as making the name a URL link, or including the plan name marker.
  • Fix issue of problematic results when self-referencing votes or plans are made (ie: user votes for themselves, or creates a "Plan Me").
  • Handle ambiguous reference detection better. In a conflict between plan name and user name, the plan will always be used now.
  • Huge amount of rewriting and refactoring code, and improved testing.