Page 1 of 1

4 small issues with v5.0.4a

Posted: Fri Sep 07, 2012 5:21 pm
by FuxieDK
1: Cosmetic bug: In the level-bars in the bottom, it says "level54" (any number, 54 is just an example) = a missing space between "level" and number.
2: Small request: The census of the toon logged in, after the census have run, can that please be moved forward to BEFORE the actual run? it makes it much easier, if you "only" want to census yourself.
3: Possible bug:
[01:14:07] Census+ Sending /who 31-35
[01:14:14] Census+ Who query: 31-35, found 23
[01:14:14] Census+ Processing 23 characters.
[01:14:22] Census+ Who query: 76-78, found 29
[01:14:22] Census+ Processing 29 characters.

[01:15:01] Census+ Sending /who 21-30
[01:15:01] Census+ Who query: 21-30, found 49
[01:15:01] Census+ Processing 49 characters.
I did a /census me (on a level 71 toon), and the red line was the output.. VERY STRANGE...
4: Census pauses when you do a /census me command. Not very nice :P

Posted: Fri Sep 07, 2012 5:36 pm
by FuxieDK
Regarding 3...
[01:34:04] Census+ Sending /who 79-80
[01:34:11] Census+ Who query: 79-80, found 26
[01:34:11] Census+ Processing 26 characters.
[01:34:11] Census+ Sending /who 76-78
[01:34:17] Census+ Who query: 76-78, found 24
[01:34:17] Census+ Processing 24 characters.
[01:34:24] Census+ Who query: r-"Draenei" c-"Priest" 85-85, found 5
[01:34:24] Census+ Processing 5 characters.

[01:34:31] Census+ Sending /who 71-75
[01:34:32] Census+ Who query: 71-75, found 20
[01:34:32] Census+ Processing 20 characters.
This was the result of a new /census me command.. There is deffo some kind of problem here..

Re: 4 small issues with v5.0.4a

Posted: Sat Sep 08, 2012 1:23 am
by Pennet
FuxieDK wrote:1: Cosmetic bug: In the level-bars in the bottom, it says "level54" (any number, 54 is just an example) = a missing space between "level" and number.
2: Small request: The census of the toon logged in, afterthe census have run, can that please be moved forward to BEFORE the actual run? it makes it much easier, if you "only" want to census yourself.
3: Possible bug:
[01:14:07] Census+ Sending /who 31-35
[01:14:14] Census+ Who query: 31-35, found 23
[01:14:14] Census+ Processing 23 characters.
[01:14:22] Census+ Who query: 76-78, found 29
[01:14:22] Census+ Processing 29 characters.

[01:15:01] Census+ Sending /who 21-30
[01:15:01] Census+ Who query: 21-30, found 49
[01:15:01] Census+ Processing 49 characters.
I did a /census me (on a level 71 toon), and the red line was the output.. VERY STRANGE...
4: Census pauses when you do a /census me command. Not very nice :P
#2: I would like to see this change as well, if possible.

#4: This was discussed in this thread, in bringoutyourdead's comment dated Aug 28, 12 @ 1:51 p.m.

Posted: Tue Sep 18, 2012 3:55 pm
by bringoutyourdead
I want to do a follow up on this

#1 is fixed and will be in the next release

#2 & #4 the automatic recount of the player's character will continue to be at the end of the standard /census take runs.
If you want to just do a quick count of your own character.. you can do the following.
First make sure no active census run is active, then issue the command /census me. You can either have a census run going or do a quick /census me... but you can't have both at the same time as both are predicated on empty starting queues.

#3 I keep getting to this point of the message and then killing it for later. The odd nature of the return is so odd it is nearly impossible.! :? It has to be the result of some odd interactions between CensusPlus - wholib - Blizzard servers which I haven't been able to find. When you issue a /Census Me what you actually issue is the equivalent of "/who 1-maxlevel n-'yourcharactername'". In any normal condition you will of course only get one result since duplicate names are not permitted. The 1 to max level is just coding/language side effect since you can't say the level has nil value. Lua gets real unhappy with that when concatenating strings!

Posted: Wed Sep 19, 2012 1:41 am
by 1974ER
On that #3, Bringoutyourdead...

Would it be hard to test if something changes if you hardcode the maximum of /census me to 90?

I am asking this because I did a few tests... and I don't remember exactly what I tried but I had the the Census window open and verbose mode on... and I swear it said Sending: /who 1-23 (one to twenty-three)... which should not be possible.

Which in turn means I am either hallucinating (possibly due to being too tired at the time) or that there is something funny going on with the maximum level. Just as a wild guess... could it be that a non-hardcoded "maxlevel" redefines itself with each /who (depending on WHEN the /who is done)?

Additional note:

1) Start a census by pressing take button.
2) Pause manually by pressing pause button.
3) Execute /census me, census resumes without doing the /census me.
4) Let census finish normally, program executes /census me in the end as it is supposed to..
5) Press take button again, program ONLY executes /census me.
6) Press take button once more, normal census begins.

So the trick is that under some circumstances, the /census me gets stored somewhere and executes later on.

Posted: Wed Sep 19, 2012 11:34 am
by bringoutyourdead
Actually it is very possible... what you are seeing isn't what you think you are seeing.


This is a good point to explain for everyone a little about how CensusPlus works.

When you start a census run... either via auto-census, /census take, or /census me you first create a series of queries that are put into a LIFO (last in first out) queue. Think of each query as a plate and the queue is one of those push down plate holders that you can find at some cafeterias. so the plates (queries) looks something like this: (note only the top one can be used next)

90-90
81-89
71-80
61-70
51-60
41-50
31-40
21-30
11-20
1-10
1-90 n-Censusme

Now there is a very busy worker who stands next to the stack of plates.. call him Frame OnUpdate, his job is to hand out plates as needed.

He grabs the top plate 90-90 and hands it off to Lib Who. Lib Who does her work but tells the next worker Process Who says "Hey this order is to big for just one plate!", so Process Who stacks new plates onto the stack. Where Frame OnUpdate grabs the top one and off to Lib Who it goes..

and the stack now looks something like this:

-------------------------------- Frame Update has 90-90 r-Orc
90-90 r-Tauren
90-90 r-Troll
90-90 r-Undead
90-90 r-BloodElf
90-90 r-Goblin
90-90 r-Pandaren
81-89
71-80
61-70
51-60
41-50
31-40
21-30
11-20
1-10
1-90 n-Censusme

Then someone by the name of Censusme comes along and say 'Hey census me!"

now the stack looks like this:

1-90 n-Censusme
90-90 r-Tauren
90-90 r-Troll
90-90 r-Undead
90-90 r-BloodElf
90-90 r-Goblin
90-90 r-Pandaren
81-89
71-80
61-70
51-60
41-50
31-40
21-30
11-20
1-10
1-90 n-Censusme

so you would expect that Censusme gets handled next right!.. not if there is an active run in progress... (pausing in this case doesn't make it NOT in progress).. what happens is:

Lib Who says to Process Who. "the query is still to much for one plate", and Process Who adds to the stack with:

------------------------ and Frame OnUpdate grabs 90-90 r-Orc c-Druid
90-90 r-Orc c-Hunter
90-90 r-Orc c-Mage
90-90 r-Orc c-Priest
90-90 r-Orc c-Rogue
90-90 r-Orc c-Warlock
90-90 r-Orc c-Warrior
90-90 r-Orc c-Paladin
90-90 r-Orc c-Shaman
90-90 r-Orc c-Deathknight
90-90 r-Orc c-Monk
1-90 n-Censusme
90-90 r-Tauren
90-90 r-Troll
90-90 r-Undead
90-90 r-BloodElf
90-90 r-Goblin
90-90 r-Pandaren
81-89
71-80
61-70
51-60
41-50
31-40
21-30
11-20
1-10
1-90 n-Censusme

So you see even though you might think you have placed an order for something that should be handled right away.. it can and will get pushed down in the stack if the stack already has queries on it. Remember how I said Frame OnUpdate is a busy worker... His boss (Blizzard) requires him to be ready to hand out a new plate every time your screen updates... something like 20 to 60 times a second! Most of the time he doesn't since Lib Who isn't back to get the plate from him.

I'll leave it to the student to visualize how that plate (query) stack looks like when Lib Who keeps coming back with order too big until we are down to the "count that character if letter '?' exists anywhere in the name"

Posted: Wed Sep 19, 2012 11:59 am
by bringoutyourdead
1974ER wrote:On that #3, Bringoutyourdead...

Would it be hard to test if something changes if you hardcode the maximum of /census me to 90?

I am asking this because I did a few tests... and I don't remember exactly what I tried but I had the the Census window open and verbose mode on... and I swear it said Sending: /who 1-23 (one to twenty-three)... which should not be possible.

Which in turn means I am either hallucinating (possibly due to being too tired at the time) or that there is something funny going on with the maximum level. Just as a wild guess... could it be that a non-hardcoded "maxlevel" redefines itself with each /who (depending on WHEN the /who is done)?
getting a /who 1-23 is as far as I can tell impossible by normal means... so maybe you were hallucinating.. but it is possible that some how query data is getting scrambled when two or more queries get initiated at the same time..(But to be honest, I haven't a clue how that could happen).

The Max level is hardcoded.. but instead of being hard coded by CensusPlus the hard coding is now handled (correctly in my mind) by Blizzard in their User Interface FrameXML file set. Those files only get updated when they push a patch update down to you... the current FrameXML set is some +500 files and about 9MB. As you can see it isn't a large part of a patch.. most of that is image, sound, zone building data and Item info datasets.

Posted: Wed Sep 19, 2012 11:44 pm
by 1974ER
Hmmm... ok... next "silly" question: How about hardcoding /census me to only be /who n-Censusme?

Because there can not be more than one Censusme present, his/her level isn't relevant for the /who. Even if Censusme's siblings Censusmeme and Cencensusme are present, Process Who should not get overwhelmed, correct?

Posted: Thu Sep 20, 2012 12:12 am
by FuxieDK
1974ER wrote:Hmmm... ok... next "silly" question: How about hardcoding /census me to only be /who n-Censusme?

Because there can not be more than one Censusme present, his/her level isn't relevant for the /who. Even if Censusme's siblings Censusmeme and Cencensusme are present, Process Who should not get overwhelmed, correct?
True.. Level is irrellevant, but the name can cause problems.. If you census toon is named "Ee" or some other common two-letter combination, you could risk running into the 49 limit on a crowded server..
Level range won't solve this anyway, however /who n-<name> r-<race> c-<class> will solve it.. ;-)