Ascension Log Visualizer

For stuff related to KoLmafia, KoLproxy, Ascension Log Visualizer, and greasemonkey scripts. Maybe other stuff too.
User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sat Mar 06, 2010 7:45 pm

The Ascension Log Visualizer version 2.4.0 has been released.

Changes from the last version include, but are not limited to:
- Added a log preview to the Notetaker, so in case all you want to do is copy&paste a log to make a forum post, you won't have to save the log to a file anymore before you can actually access the annotated log. Also added a button to start the Notetaker from the Ascension Log panel in a log tab to promote its usage a little.
- Added the possibility to customise the textual log outputs to a certain degree. You can find the files needed for that in ~/.ascensionLogVisualizer/logVisualizerData/kolData/ and they go by the names of bbcodeAugmentations.txt, htmlAugmentations.txt and textAugmentations.txt. How you can edit those files should be clear when you look at them. If not, ask! :)
- The MP gains got a similar update to that of meat gains in version 2.3.0, aka a per level breakdown. This includes both chart and textual summary.

As always, check the source repository log if you want a more detailed list.

As usual, any feedback, be it bug report, request, or just general comment will be appreciated, especially for features that were newly introduced.

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Wed Mar 24, 2010 5:26 am

Okay, I don't know if it's a mafia or the ALV, but the ALV has stopped reading my current run's log at Day 4. I'm currently as Day 6. Is there some place I could send my raw mafia logs so you can check if it's a mafia problem or whatnot?
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Wed Mar 24, 2010 1:44 pm

You can send logs to my e-mail address (you can find it in Help->About Licenses) or open an issue on the project's bug tracker and append them to it. If you send them per e-mail, please only append them instead of pasting the text directly into the mail.

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Wed Mar 24, 2010 2:42 pm

On its way. ^.^
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Wed Mar 24, 2010 3:57 pm

Just checked it out and I can reproduce your problem with version 2.4.3, but the current development tip is already able to parse everything correctly without me having to change anything (I made a relatively big change to the internal log data structures on the way towards 2.5.0). So, uh, once a new version is out, this will work again. ;)

Shouldn't be too long, I still need to add 2-3 things. I'll try to get everything done until Easter.

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Wed Mar 24, 2010 7:24 pm

Flolle wrote:So, uh, once a new version is out, this will work again. ;)

Shouldn't be too long, I still need to add 2-3 things. I'll try to get everything done until Easter.


Yay, fix! :D
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Mon Mar 29, 2010 6:16 pm

The Ascension Log Visualizer version 2.5.0 has been released.

Changes from the last version include, but are not limited to:
- Overhaul of the internal representation of turns and how they are added to the log data structure. This change shouldn't affect end-users, with a few exceptions*.
- Added recognition of per turn MP regeneration from equipment such as the Plexiglass Pith Helmet. The average amount of MP gains per turn will be added to the encounter MP gains. All of the ascension relevant equipment that doesn't have any conditionals (e.g. Party Hat, JEW hat) should be covered. Please note that this doesn't include MP regeneration buffs, such as Mental A-cue-ity.
- Added support for daily header and footer comments. They can be seen and edited from inside the Notetaker. Also, notes can be added to them while playing through the gCLI of KolMafia, just as is the case with normal log notes. The command to add header/footer comments is echo Header: LogComment or echo Footer: LogComment respectively. (Obviously, if you use a command alias for log notes, you can do the same for the new commands.)
- Acquired garnishes over the whole run are now shown in the BOTTLENECKS summary.

As always, check the source repository log if you want a more detailed list.

As usual, any feedback, be it bug report, request, or just general comment will be appreciated, especially for features that were newly introduced.



*The probably most obvious change is the point at which free runaways are shown in parsed logs. The old way was to show them inside the turn interval of the area they were used in as long as turns where spent in that area before or after the runaways. Now, they will always be appended to the last turn that was actually played before those runaways and if that turn was spent in a different area, the free runaway information line will be appended to the turn interval of that area.

While this is actually pretty logical when you think about it and follows the same notation as familiar changes, I will admit that it is not perfect, if only because it was done in a different way for so long. However, making this work in the old way would be a bit complicated and go directly against one of the reasons way I did the log data structure overhaul: Namely to make it far easier to understand and reason about how a turn gets added to the internal collections and what happens when two turns have the same turn number. And this is the reason why I left it as is without attempting to recreate the old behaviour.

There might be other changes along these lines, so be warned, but the above mentioned is probably the biggest one.

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Mon Mar 29, 2010 8:15 pm

<3 Flolle.
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Thu Apr 08, 2010 8:37 am

Just wondering if there was a way for the ALV to recognize a "failed" olfaction. I know this is trivial, but I found it funny that it didn't recognize it.
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Thu Apr 08, 2010 2:36 pm

Elayne wrote:Just wondering if there was a way for the ALV to recognize a "failed" olfaction. I know this is trivial, but I found it funny that it didn't recognize it.

I think what you really want is for mafia to recognize a failed olfaction so that the log doesn't look identical.
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Fri Apr 09, 2010 5:53 am

Or that, yeah.
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Fri Apr 09, 2010 7:14 pm

lostcalpolydude wrote:I think what you really want is for mafia to recognize a failed olfaction so that the log doesn't look identical.

Yeah, that's pretty much my stance on this.

Sorry. :(

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Fri Apr 09, 2010 7:19 pm

Np. Maybe I can request in on the mafia thread in the KoL forums. ;)

Btw, I also don't know if this is an ALV thing but... in my last HCO at HCNP run, the ALV lists a different primary familiar for me than the one that the game registers. Trivial stuff again. Sorry. >.<
Last edited by Elayne on Fri Apr 09, 2010 7:25 pm, edited 1 time in total.
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Fri Apr 09, 2010 7:21 pm

Elayne wrote:Np. Maybe I can request in on the mafia thread in the KoL forums. ;)

It would just get buried there. You could try requesting it (again) on the mafia forum, since the old bug report system went poof with the forum upgrade there.
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Fri Apr 09, 2010 7:26 pm

They do pay attention to those too, cleesh tracking from the BBB will be added any day now...

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Sat Apr 10, 2010 11:59 am

So, as far as olfaction goes, successful:

Round 1: bmaher casts TRANSCENDENT OLFACTION!
You acquire an effect: On the Trail (duration: 40 Adventures)


Round 1: bmaher casts TRANSCENDENT OLFACTION!


When you fail, it doesn't say that you got the effect.
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sat Apr 10, 2010 4:10 pm

lostcalpolydude wrote:So, as far as olfaction goes, successful:

Round 1: bmaher casts TRANSCENDENT OLFACTION!
You acquire an effect: On the Trail (duration: 40 Adventures)


Round 1: bmaher casts TRANSCENDENT OLFACTION!


When you fail, it doesn't say that you got the effect.

I am aware of this, but having to check multiple lines requires different handling than single lines, also the normal skill parser would have to make an exception for olfaction and a couple of smaller pitfalls would have to be worked around.

To be more frank here: I don't see this corner case as a problem that needs fixing, because it can easily be worked around by simply not casting olfaction when it won't do anything. And if you end up doing it by mistake, and it really annoys you to have it show up in the parsed log, just remove the line in the mafia session log, should take 15 seconds tops.

Where I could see myself adding recognition for this corner case is if/when buffs are tracked by the ALV. However, first, adding that would be quite a headache (though not as much as it would have been before version 2.5), and second, I can't seem to think of a good way to present buff usage so that it is actually useful to people (and without good use-cases I'm not going to add that feature).


Edit: I wasn't aware of lostcalpolydude's post being based on what JasonHarper said in the KolMafia thread (I read many things, but not that thread, too much stuff that isn't interesting to me personally to wade through). Just wanted to say he is essentially right in saying that that line would give it away, but as noted above, I don't feel that this corner case warrants a specific handling due to being relatively easily worked around.

HippoKing
Pie in the Sky
Posts: 198
Joined: Thu Jun 11, 2009 1:05 pm

Re: Ascension Log Visualizer

Post by HippoKing » Tue Apr 13, 2010 1:22 pm

I have to say I disagree with you that it isn't worth changing. At the moment, it causes the visualizer to provide profoundly wrong information about the log in question, and while manually solving the problem by editing the mafia logs is possible, it's not really a good looking solution.

As for it being hard to implement, that surprises me a lot. Why do you need to do multi-line handling? Can't you just make the olfaction log event trigger on "You acquire an effect: On the Trail (duration: 40 Adventures)" rather than on "Round 1: bmaher casts TRANSCENDENT OLFACTION!".

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Wed Apr 14, 2010 9:51 am

HippoKing wrote:I have to say I disagree with you that it isn't worth changing. At the moment, it causes the visualizer to provide profoundly wrong information about the log in question, and while manually solving the problem by editing the mafia logs is possible, it's not really a good looking solution.

As for it being hard to implement, that surprises me a lot. Why do you need to do multi-line handling? Can't you just make the olfaction log event trigger on "You acquire an effect: On the Trail (duration: 40 Adventures)" rather than on "Round 1: bmaher casts TRANSCENDENT OLFACTION!".

I believe calling it profoundly is a stretch, this is not in the same ballpark as the old RNG-Chart. That was profoundly wrong information for most users and misleading too. It shows some false positives, yes, however at some point I will always have to call it quits on the quest to make everything perfect. As an example that I mentioned some time ago, but am not entirely sure people are aware of: The list of lost combats is not necessarily complete, there are cases were a lost combat will not be recognised as such and this probably won't be fixed for the foreseeable future, because it would complicate the code base too much for a - in my eyes - small feature. Of course, incorrectly leaving data out instead of adding something incorrect is the lesser of two evils, but I believe my point should be clear enough anyway.

On the topic of an "olfaction log event": There exists no such thing. Most data is parsed on a per turn basis and once all session logs of the ascension are worked through, quite a few things are created based on the per turn data such as summaries, list, etc and among them the list of hunted monsters. A monster is considered hunted if olfaction was cast on that turn. As you see, no special olfaction logging, just normal skill casts parsing and a rather simple and easy check later on to figure this out, although as is obvious here, this doesn't catch these pesky unsuccessful casts.


With all this said, I let this problem sink for a night and in the end decided to implement everything so only monsters that were actually hunted will be logged as such. However, this will come with a caveat: If/when buff usage logging is added, this may stop working again, depending on how it would end up being implemented and if there is no simple workaround to get it working again, this problem would be considered WON'T_FIX until further changes would at some point allow for a simple way to make it work again, and I would ignore all complaints concerning this until that point comes. This is not to say that it will necessarily happen this way, but I wouldn't be able to guarantee the opposite either.

Antipasta
AFH
Posts: 251
Joined: Fri Sep 21, 2007 5:24 pm

Re: Ascension Log Visualizer

Post by Antipasta » Thu Apr 22, 2010 6:24 am

The program has suddenly quit working for my most recent ascensions. It visualizes my ascensions before 2010-04-02 fine, but when I choose "visualize mafia logs" and pick an ascension after that one, the mafia log parser exits but doesn't produce any results or error messages, just sends me back to an empty main screen.

Any idea what might be going on, or where to look for error messages? I haven't changed any mafia settings except keeping it upgraded with daily builds.

I see the same problem with versions 2.5.1, 2.5.0 and 2.4.3.

I could email you a set of log files that don't work if that would help.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Thu Apr 22, 2010 11:40 am

Antipasta wrote:I could email you a set of log files that don't work if that would help.

Please do, when something like you described happens, the internal parser dies on some line or another (possibly due to a session log format change) and that sort of stuff is a bit hard to figure out from afar.

Antipasta
AFH
Posts: 251
Joined: Fri Sep 21, 2007 5:24 pm

Re: Ascension Log Visualizer

Post by Antipasta » Fri Apr 23, 2010 5:44 am

Flolle wrote:
Antipasta wrote:I could email you a set of log files that don't work if that would help.

Please do, when something like you described happens, the internal parser dies on some line or another (possibly due to a session log format change) and that sort of stuff is a bit hard to figure out from afar.


I thought maybe it was due to the Baby Bugged Bugbear, and the crazy names of his drops, but when I deleted those names from a set of files it didn't help.

I couldn't find an email address for you; could you kmail it to me ingame?

User avatar
Elayne
My Pie Blown Sky High
Posts: 504
Joined: Thu May 08, 2008 3:19 am

Re: Ascension Log Visualizer

Post by Elayne » Fri Apr 23, 2010 8:30 am

Antipasta wrote:I couldn't find an email address for you; could you kmail it to me ingame?


Flolle wrote:You can send logs to my e-mail address (you can find it in Help->About Licenses)


:mrgreen:
I used to have a softcore multi. But now, it's just HC4L. Elayne.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Fri Apr 23, 2010 9:38 pm

OK, the fix for your problem is in the repository now and will be available in the next release. However, since I don't know when I will have the free time to finish everything up for that that I want to before actually doing the release, I send you a build of the current development tip so you don't have to wait.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sat May 15, 2010 8:31 am

The Ascension Log Visualizer version 2.6.0 has been released.

Changes from the last version include, but are not limited to:
- Added recognition of MP skill cost offset effects from equipment, such as those from the Stainless Steel Solitaire.
- Clownfish MP gains are now recognised as Starfish familiar gains.
- Updated the chart libraries to the newest version. With this came access to a new feature: Mouse-click events. They have been implemented for various charts and I would very much like to get feedback on what people think about it and whether there are ways to make them better. Right now, all of the information pop-ups are text-based, which is good enough for me personally, but they don't have to be if people propose good ideas for something more graphic.
- As kind of a sub-point to the above, it looks like the way chart drawing is implemented has changed. This resulted in too much memory consumption, especially when multiple logs were open and/or you used the zoom feature too much. For that reason a fall-back mode is now used, which results in a rather ugly looking selection area when selecting an area for zooming. That seems to be a small price to pay for mouse events though. Otherwise, everything should look and behave just as before.
- Some smaller fixes for subinterval handling. (Occurs when selecting single days in the Notetaker.)
- Turncount screw ups from free Bandersnatch runaways should stop happening now.

As always, check the source repository log if you want a more detailed list.

Anyone who used any of the previous releases of the ALV should on the first startup of this release recreate the data files through Extra->Recreate data files and then restart the program. If you made manual changes to the files, you will have to add them again afterwards.

As usual, any feedback, be it bug report, request, or just general comment will be appreciated, especially for features that were newly introduced.

Eitheladar
Just Plain Old Pie
Posts: 1
Joined: Wed Mar 10, 2010 9:04 am

Re: Ascension Log Visualizer

Post by Eitheladar » Sun May 30, 2010 8:23 am

I'm using KoLmafia-14.0 and AscensionLogVisualizer 2.6.0. It's misplacing my leveling, and also some of my turns. For example, I made level 4 on Day 2, turn 43, but in the parsed log it shows up on turn 57. I'm now at level 10, but the parsed log thinks I'm at level 8. What's going on?

I'm attaching a zip file of the raw KoLmafia logs and the parsed ascension log. (Dropped some of the later raw logs because quota reached.)
Attachments
ascensionlog.zip
(25.88 KiB) Downloaded 545 times

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sun May 30, 2010 10:42 am

Excellent, I finally got a reproducible data point for the now three times reported wrong character class problem. :)

It's fixed and will be available in the next release.

User avatar
vampirewolf3
Inscrutable Pi
Posts: 211
Joined: Thu Dec 11, 2008 11:12 pm

Re: Ascension Log Visualizer

Post by vampirewolf3 » Tue Jun 01, 2010 4:18 pm

I think there's a bug with improper parsing of a single log that contains parts of two ascensions. My friend sent me 6 successive Mafia logs, the first 2 being the end of a run, and the other 5 (notice the overlap) being the run he wanted to show me. The visualizer keeps thinking that the log begins in the first log, and doesn't recognize that a new run starts in the middle of the 3rd file.

I'm getting bounced when I try to attach .txt (the file extension is not allowed), and the board quote has apparently been reached when I try to attach a .zip.
[url=http://koldb.com/player.php?name=vampirewolf3]vampirewolf3[/url] (#433366)

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Tue Jun 01, 2010 4:59 pm

Just send the zip-file to me per e-mail or open an issue in the project's issue tracker and upload it there.

User avatar
vampirewolf3
Inscrutable Pi
Posts: 211
Joined: Thu Dec 11, 2008 11:12 pm

Re: Ascension Log Visualizer

Post by vampirewolf3 » Tue Jun 01, 2010 6:23 pm

Flolle wrote:Just send the zip-file to me per e-mail or open an issue in the project's issue tracker and upload it there.


OK, I submitted the problem to the project page.
[url=http://koldb.com/player.php?name=vampirewolf3]vampirewolf3[/url] (#433366)

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Tue Jun 01, 2010 7:23 pm

I just checked the logs out and responded on the issue tracker.

Looks like the character jumped into the gash while not being played with KolMafia. That meant the ascend.php request wasn't present in the session logs and thus the parser didn't figure out that a new ascension was started.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sun Jun 06, 2010 1:54 pm

The Ascension Log Visualizer version 2.7.0 has been released.

Changes from the last version include, but are not limited to:
- Added recognition of the Mental A-cue-ity buff. Its total MP regeneration (100 MP) will be added to the turn it was acquired on, which isn't exactly correct, but close enough to be workable.
- Added a little informational popup for the very first startup of the program to tell new users which logging options they should turn on in KolMafia to get the most out of using the ALV.
- Fixed a problem with deciding which character class was used during ascension.
- Added a chart showing MP gained/spent per turn.
- June content familiar support for items and the starfish ability. Please refresh the data files as described below to get this working 100%.

As always, check the source repository log if you want a more detailed list.

Anyone who used any of the previous releases of the ALV should on the first startup of this release recreate the data files through Extra->Recreate data files and then restart the program. If you made manual changes to the files, you will have to add them again afterwards.

As usual, any feedback, be it bug report, request, or just general comment will be appreciated, especially for features that were newly introduced.

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Mon Jun 07, 2010 8:57 pm

There are some characters that make these forums choke (there's a stickied thread of them in this forum), any chance that we could get an option for the parser to nuke them? That'd be sweet.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Tue Jun 08, 2010 9:22 am

In.

There'll be an option in the files menu to omit all non-ASCII characters in parsed logs without exception. I'm not pushing a new minor program version online yet, because I want to wait until Friday to see if anything else comes up, after that I'll probably be spending my free time watching World Cup games and not working on the ALV.

Just for the record, I do not consider this to be a bug of the Ascension Log Visualizer, but of the forum software or the underlying software stack (I believe that PHP's support of Unicode is rather sketchy) or where ever the problem lies. And yes, if it's actually a server configuration problem then it's your guys fault. :P ;)

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Tue Jun 08, 2010 9:39 am

Yeah, I don't consider it a bug in the ALV either, but from what I understand fixing the problem in the forums would be rather difficult, whereas it seems like adding the option to the ALV was not at all hard.

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Tue Jun 08, 2010 3:25 pm

I have no idea how hard it is to change versions of phpBB, but themystics.com/forum uses phpBB 3.0.7-PL1, and it handles special characters fine.

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Tue Jun 08, 2010 6:57 pm

Kelemvor wrote:I have no idea how hard it is to change versions of phpBB, but themystics.com/forum uses phpBB 3.0.7-PL1, and it handles special characters fine.

Apparently it's a database issue, not a phpBB issue.
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

User avatar
vampirewolf3
Inscrutable Pi
Posts: 211
Joined: Thu Dec 11, 2008 11:12 pm

Re: Ascension Log Visualizer

Post by vampirewolf3 » Wed Jun 09, 2010 3:00 am

Right now when I choose File=>Visualize mafia logs, it takes quite an unsavory while to load up all the possible logs that I can parse. Is there any way to cache what Mafia session log names correspond to which ascension, instead of calculating it each time (I think that's what it does), or make it faster in some other way? I promise not to tamper with Mafia file names, if that's what it takes.

I'm asking this because bmaher sent me, oh, about 62.5 MB worth of Mafia sessions, and I'm trying to comb through them to learn the secrets of SC ascending.

Sorry if I'm making any unreasonable demands/assumptions.
[url=http://koldb.com/player.php?name=vampirewolf3]vampirewolf3[/url] (#433366)

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Wed Jun 09, 2010 3:56 am

I usually just copy a small selection of log files that I want visualized into a separate folder, going a few days before and after the run(s) that I care about.
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Wed Jun 09, 2010 5:53 pm

While technically possible, I decided a long time ago that I wouldn't support something like that because it would open a can of worms regarding persistence that I'd rather not have to deal with if possible.

I can however look at the file handling done there and see if I can optimise the performance a bit in the future, though I wouldn't get my hopes up, I think it's rather unlikely that it'll be much faster than it already is. The problem here is simply that all logs need to be refitted to contain single ascensions and also need to be checked for "hidden" day changes.

What I personally do with my ascension history is to archive older session logs that I don't really need anymore for daily usage in 7-Zip files. I just recently did that with all my 2009 logs for example. This may not help you in your specific situation, but it's something that I recommend to do in the "normal" cases of just working with your own session logs.

In your situation it may help to make multiple folders with maybe a couple months worth of logs per folder, so only have something like 10-15 MiBs worth of session logs in a single folder.


vampirewolf3 wrote:Sorry if I'm making any unreasonable demands/assumptions.

You don't need to worry about something like that, just always be prepared for me saying no. :)



P.S.: Did you get the problem with your friends log fixed? I never heard back from you after my last comment on the issue tracker.

User avatar
vampirewolf3
Inscrutable Pi
Posts: 211
Joined: Thu Dec 11, 2008 11:12 pm

Re: Ascension Log Visualizer

Post by vampirewolf3 » Wed Jun 09, 2010 8:32 pm

Flolle wrote:P.S.: Did you get the problem with your friends log fixed? I never heard back from you after my last comment on the issue tracker.


Sorry for not getting back to you. It's all fixed, thanks!

I was just asking, since these are not my logs, and I'm not really sure when they start/end, but I can manage.
[url=http://koldb.com/player.php?name=vampirewolf3]vampirewolf3[/url] (#433366)

User avatar
maddsurgeon
Fie the Pie
Posts: 800
Joined: Sun Sep 27, 2009 10:24 am
Contact:

Re: Ascension Log Visualizer

Post by maddsurgeon » Fri Jul 02, 2010 12:35 am

Quick question: does the "turns spent per area" thing count combats that ended in a popper/runaway?
Image

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Fri Jul 02, 2010 6:28 am

Only turns that were actually spent are counted - or at least if they appear so in the session log.

As a matter of fact, the same goes for any other place that has turn counting, such as the familiar usage. That's probably one of the reasons why familiar usages percentages rarely line up with the ingame values beyond possible bugs, since those do count free runaway turns I believe.

User avatar
NardoLoopa
Market Manipulator
Posts: 1201
Joined: Tue Jun 19, 2007 10:37 pm

Re: Ascension Log Visualizer

Post by NardoLoopa » Fri Jul 16, 2010 12:32 pm

Flolle,
I spend an hour annotating a log in the Notetaker. (this is a great feature btw). However, that was a week ago. I can't figure out where that annotated file is stored and how to load it back into the Notetaker so I can continue my analysis.

Any hints?
Image

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Fri Jul 16, 2010 2:17 pm

Ah, unless you saved the annotated log to the filesystem from inside the Notetaker all your notes are lost. Sorry. :(

You wouldn't have been able to load the notes into the ALV, but at least they wouldn't have been lost.

Being able to work on notes over multiple sessions is something that is on my to-do list, but I'm not entirely sure how I want to implement that. Currently, creating a detailed XML representation of the log data is my preferred way to make this possible, the more so because that way other applications (like bumcheekcity's web app) could maybe benefit from a more standardised way to store mostly complete log data (or at least more detailed than in parsed logs). But again, I haven't decided yet, and I'm not willing to make promises on whether/when this gets added.

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Fri Jul 16, 2010 3:28 pm

Not the most elegant solution, but when I'm working on a log, whenever I stop I click on "show log as file" and copy it to Notepad as a backup. Then, next session I do the same, but only for the new sections.

Of course, it takes me like 4 hours to write a typical log and my old laptop had a nasty habit of freezing on resume, so it may be a problem that is particularly bad for me.

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Sat Jul 17, 2010 1:55 pm

So thacon pointed out what turns out to be an ALV bug:

Code: Select all

[0] Ascension Start [0,0,0]
     +> [0] Got bartender-in-the-box, disembodied brain, glimmering roc feather, glimmering roc feather
     +> [0] Got glimmering roc feather, glimmering roc feather, ten-leaf clover


The brain, bartender, and 4 roc feathers were acquired prior to ascending. I don't know if this something that happens regularly, but I've never noticed it before. Here's the file:
http://sites.google.com/site/stupac2/Ho ... ects=0&d=1
http://sites.google.com/site/stupac2/Ho ... ects=0&d=1

Additionally, the ALV got mixed up by inigo's and the fight against Wizzy-face, it said that I spent a turn crafting a reagent potion when I actually spent it fighting the boss:

Code: Select all

[494] Cook 1 scrumptious reagent + 1 tomato [83,95,182]



Further, a couple of style comments. I've been noticing (and finding it odd) that the ALV sticks familiar switches with the turn after they happened. I think it makes more sense to group them with the turn before they happened. Here's an example:

Code: Select all

[20] Outskirts of The Knob [0,0,0]
     +> [20] Got Knob Goblin encryption key
     -> Turn [20] He-Boulder
[21] Knob Goblin Harem [11,10,24]
     +> [21] Got Knob Goblin harem pants, Knob Goblin harem veil, Knob Goblin perfume, disease
     }> [21] Disintegrated Knob Goblin Harem Girl


Now this is just me, but I'd rather have the he-boulder underneath the harem. I believe you've said before that you have the opposite preferance but can see both sides, I just though I'd point it out.

Additionally, runaways have a similar problem. They sometimes show up in the zone before the one you actually spent them in, and sometimes don't. Which is all kinds of confusing.

For instance, there's this segment:

Code: Select all

[6-8] Moxie Vacation [0,0,3]
     o> Drank 3 bottle of peppermint schnapps (34 adventures gained) [83,94,134]
     &> 1 / 1 free retreats
     => Level 2 (Turn 8)! (9/9/12)
     => Level 3 (Turn 8)! (9/9/12)
[9-10] Spooky Forest [0,0,0]
     +> [9] Got divine cracker, spices, sugar sheet, sugar sheet
     +> [9] Got sugar sheet
     +> [10] Got mosquito larva
     &> 1 / 1 free retreats
[11-19] Typical Tavern Quest [82,84,251]
     -> Turn [19] Frumious Bandersnatch
     &> 6 / 6 free retreats
     => Level 4 (Turn 11)! (10/10/13)
     => Level 5 (Turn 19)! (13/13/20)
[20] Outskirts of The Knob [0,0,0]
     +> [20] Got Knob Goblin encryption key
     -> Turn [20] He-Boulder


I didn't spend any runaways at the shore (duh), and I didn't spend any at the tavern. The first was spent in the forest, and the second group in the knob, but for some reason they're kind of all over the place (my guess is that it only actually logs the zone switch once you've spent a turn there). I don't know if this fixable, and it's true that I can manually edit it, but it really caught me off guard while annotating the log.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sun Jul 18, 2010 11:43 am

stupac2 wrote:So thacon pointed out what turns out to be an ALV bug:

The brain, bartender, and 4 roc feathers were acquired prior to ascending. I don't know if this something that happens regularly, but I've never noticed it before. Here's the file:
http://sites.google.com/site/stupac2/Ho ... ects=0&d=1
http://sites.google.com/site/stupac2/Ho ... ects=0&d=1

Hmm, inside the logs you linked the ascend.php request, which is the point at which the internal parser considers a new ascension to have begun, comes before the acquisition of those items. Must say, never seen that myself either, but it looks like you ran a script which then got these items for you, maybe that's the reason.

Can't really do anything about this, the ascend.php request is the only safe bet to distinguish between ascensions, because that request is always present in logs.


stupac2 wrote:Additionally, the ALV got mixed up by inigo's and the fight against Wizzy-face, it said that I spent a turn crafting a reagent potion when I actually spent it fighting the boss:

Heh, that's a funny circumstantial mishap. :D

The crafting was first logged as a turn, but would have been recognised as not actually having spent a turn had you adventured pretty much anywhere else, because the session log would have shown the same turn number to be used again. But, because the level 12 bosses are a special case and don't actually have a normal turn usage line inside session logs (only a bigisland.php?action=bossfight request), the internal parser will always log it as having happened one turn after the last. Of course the next turn after the boss fight will then have the same turn number and the boss fight will be eliminated, because there can always only be one turn with the same turn number.

I don't really know how I can fix this, seeing as the behaviour works fine as long as adventures are spent in 99% of all places and the only reason this broke was because the level 12 boss is a special case in the session log.


stupac2 wrote:Further, a couple of style comments. I've been noticing (and finding it odd) that the ALV sticks familiar switches with the turn after they happened. I think it makes more sense to group them with the turn before they happened. Here's an example:

Now this is just me, but I'd rather have the he-boulder underneath the harem. I believe you've said before that you have the opposite preferance but can see both sides, I just though I'd point it out.

Well, first of all, the way this works is that the familiar change line shows the turn on which the familiar was changed not it's first usage, actual familiar usage is never shown inside turn rundowns. That's also the reason why a line such as

Code: Select all

-> Turn [0] Spirit Hobo

can exist.

Personally, I find this the better approach than denoting the first familiar usage, because that way you always know which familiar is used before you read the turn(s)-spent-in-area line. And organising it like this

Code: Select all

[21] Knob Goblin Harem [11,10,24]
     -> Turn [20] He-Boulder

seems rather iffy, because an event of a previous turn interval shouldn't be found under the next one.


stupac2 wrote:Additionally, runaways have a similar problem. They sometimes show up in the zone before the one you actually spent them in, and sometimes don't. Which is all kinds of confusing.

For instance, there's this segment:

I didn't spend any runaways at the shore (duh), and I didn't spend any at the tavern. The first was spent in the forest, and the second group in the knob, but for some reason they're kind of all over the place (my guess is that it only actually logs the zone switch once you've spent a turn there). I don't know if this fixable, and it's true that I can manually edit it, but it really caught me off guard while annotating the log.

This behaviour was introduced with version 2.5 see the release notes:
- Overhaul of the internal representation of turns and how they are added to the log data structure. This change shouldn't affect end-users, with a few exceptions*.

[...]

*The probably most obvious change is the point at which free runaways are shown in parsed logs. The old way was to show them inside the turn interval of the area they were used in as long as turns where spent in that area before or after the runaways. Now, they will always be appended to the last turn that was actually played before those runaways and if that turn was spent in a different area, the free runaway information line will be appended to the turn interval of that area.

While this is actually pretty logical when you think about it and follows the same notation as familiar changes, I will admit that it is not perfect, if only because it was done in a different way for so long. However, making this work in the old way would be a bit complicated and go directly against one of the reasons way I did the log data structure overhaul: Namely to make it far easier to understand and reason about how a turn gets added to the internal collections and what happens when two turns have the same turn number. And this is the reason why I left it as is without attempting to recreate the old behaviour.

There might be other changes along these lines, so be warned, but the above mentioned is probably the biggest one.

The reason for this was the change from turn intervals to single turns being the primary building blocks of the internal log data structure. This change made many things easier for me, because having to fiddle around with what happens when you have skipped over turns and turn intervals at the same time was rather complicated. Case in point, here is how some of the changed code looks like before and after:

Before:

Code: Select all

    /**
     * @param turnInterval
     *            The turn interval to add.
     */
    public void addTurnsSpent(
                              final TurnInterval turnInterval) {
        if (turnInterval == null)
            throw new NullPointerException("Turn interval must not be null.");

        // Remove any existing turn interval in the set that is equal to
        // turnInterval as defined by the comparator of turnsSpent.
        if (turnsSpent.contains(turnInterval)) {
            // Add all the data from the interval which should be removed to the
            // interval that comes before it, or if there is none, to the new
            // interval so the data is not lost.
            final SortedSet<TurnInterval> tmp = turnsSpent.headSet(turnInterval);
            final TurnInterval equalInterval = turnsSpent.tailSet(turnInterval).first();
            if (!tmp.isEmpty())
                tmp.last().addTurnIntervalData(equalInterval);
            else
                turnInterval.addTurnIntervalData(equalInterval);

            turnsSpent.remove(equalInterval);
        } else if (!turnsSpent.isEmpty()) {
            final TurnInterval lastInterval = turnsSpent.last();
            if (lastInterval.getAreaName().equals(turnInterval.getAreaName())) {
                // If there are single turns inside the turn interval just add
                // them, otherwise create a new overreaching interval.
                if (!turnInterval.getTurns().isEmpty()) {
                    for (final SingleTurn st : turnInterval.getTurns())
                        lastInterval.addTurn(st);

                    lastInterval.addNotes(turnInterval.getNotes());
                    lastInterval.incrementSuccessfulFreeRunaways(turnInterval.getFreeRunaways()
                                                                             .getNumberOfSuccessfulRunaways());
                } else {
                    final TurnInterval newInterval = new TurnInterval(lastInterval.getAreaName(),
                                                                      lastInterval.getStartTurn(),
                                                                      turnInterval.getEndTurn());

                    newInterval.addTurnIntervalData(lastInterval);
                    newInterval.addTurnIntervalData(turnInterval);


                    turnsSpent.remove(lastInterval);
                    turnsSpent.add(newInterval);
                }

                return;
            }
        }

        turnsSpent.add(turnInterval);
    }

    /**
     * Add the given turn to the log data.
     * <p>
     * Note that the integrity of the log data cannot be guaranteed if the given
     * single turn would be entered right in the middle of already existing turn
     * intervals. ({@code turn.getTurnNumber() >
     * getTurnsSpent().first().getStartTurn() && turn.getTurnNumber() <
     * getTurnsSpent().last().getEndTurn()})
     *
     * @param turn
     *            The single turn to add.
     */
    public void addTurnSpent(
                             final SingleTurn turn) {
        if (turn == null)
            throw new NullPointerException("Turn must not be null.");

        // 1. If the turn rundown collection isn't empty and the last turn
        // interval's area name is equal to that of the given single turn, add
        // the turn to the last interval.
        // 2. If the last turn interval ends on the same turn number as the
        // given turn, remove the last turn from the last turn interval, make
        // sure the integrity of the turn interval collection is not compromised
        // and then proceed as stated in 3..
        // 3. Otherwise create a new interval and add it to the turn rundown
        // collection.
        if (!turnsSpent.isEmpty()) {
            TurnInterval lastInterval = turnsSpent.last();

            // Check for turn count errors as they sometimes occur in mafia
            // logs. If one is found, fully remove the intervals that seem to be
            // out of place in the turn interval collection.
            while (lastInterval != null && turn.getTurnNumber() - lastInterval.getEndTurn() <= -100) {
                turnsSpent.remove(lastInterval);
                lastInterval = turnsSpent.last();
            }

            if (lastInterval != null)
                if (lastInterval.getAreaName().equals(turn.getAreaName())) {
                    lastInterval.addTurn(turn);
                    return;
                } else if (lastInterval.getEndTurn() == turn.getTurnNumber()) {
                    final SingleTurn equalTurn = lastInterval.removeLastTurn();

                    // If the skipped turn was a runaway and the Navel Ring was
                    // equipped, it means that it was a successful usage of the
                    // Navel Ring.
                    if (equalTurn.isRanAwayOnThisTurn() && equalTurn.isNavelRingEquipped())
                        lastInterval.incrementSuccessfulFreeRunaways(1);

                    if (lastInterval.getTurns().isEmpty()) {
                        turn.addSingleTurnData(equalTurn);
                        turnsSpent.remove(lastInterval);

                        // The removed interval may contain free runaways
                        // usages.
                        if (!turnsSpent.isEmpty())
                            turnsSpent.last()
                                      .incrementSuccessfulFreeRunaways(lastInterval.getFreeRunaways()
                                                                                   .getNumberOfSuccessfulRunaways());
                    }
                }
        }

        addTurnsSpent(new TurnInterval(turn));
    }


After:

Code: Select all

    /**
     * Add the given turn interval to the log data.
     * <p>
     * Note that the integrity of the log data cannot be guaranteed if the given
     * turn interval would be entered right in the middle of the already
     * existing turn collection.
     *
     * @param turnInterval
     *            The turn interval to add.
     * @throws IllegalStateException
     *             if this LogDataHolder is a detailed log data holder, see
     *             {@link #isDetailedLog()}
     */
    public void addTurnIntervalSpent(
                                     final TurnInterval turnInterval) {
        if (turnInterval == null)
            throw new NullPointerException("Turn interval must not be null.");

        if (isDetailedLog)
            throw new IllegalStateException("This LogDataHolder is based on a detailed log, please only add single turns.");

        penultimateTurn = lastTurn;
        lastTurn = turnInterval;
        turnIntervalsSpent.add(turnInterval);
    }

    /**
     * Add the given turn to the log data.
     * <p>
     * Note that the integrity of the log data cannot be guaranteed if the given
     * single turn would be entered right in the middle of the already existing
     * turn collection.
     *
     * @param turn
     *            The single turn to add.
     * @throws IllegalStateException
     *             if this LogDataHolder is not a detailed log data holder, see
     *             {@link #isDetailedLog()}
     */
    public void addTurnSpent(
                             final SingleTurn turn) {
        if (turn == null)
            throw new NullPointerException("Turn must not be null.");

        if (!isDetailedLog)
            throw new IllegalStateException("This LogDataHolder is not based on a detailed log, please only add turn intervals.");

        // If the last turn has the same turn number as the to be added turn,
        // add the data of the last turn to the penultimate turn.
        // Also, in that case, check if that turn was a navel ring free runaway.
        if (lastTurn.getTurnNumber() == turn.getTurnNumber()) {
            final SingleTurn tmp = (SingleTurn) lastTurn;

            ((SingleTurn) penultimateTurn).addSingleTurnData(tmp);
            if (tmp.isRanAwayOnThisTurn() && tmp.isNavelRingEquipped())
                penultimateTurn.addFreeRunaways(1);

            turnsSpent.remove(turnsSpent.size() - 1);
        } else
            penultimateTurn = lastTurn;

        lastTurn = turn;
        turnsSpent.add(turn);
    }


Let me tell you that the first code snippet griefed me hard a couple of times and I'm very happy to not have to bother with this anymore. Getting runaways to work like they did before, would introduce the problems I wanted to remove right back in. That is, I can't think of a way to make this work without reintroducing those problems at the moment, maybe one day the muse will kiss me and I get an idea how to get this to behave like before without the baggage, but until then, this'll stay the way it is.


P.S.: Please don't think I'm hating on you since I kinda said no to your every point, because if I was hating on you I wouldn't have bothered to make this post so long. :)

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Sun Jul 18, 2010 12:25 pm

Well all my points were basically niche things that don't come up very often and are fairly easy to notice/fix (in the log, not the program) or things that can have a legitimate difference of opinion. So no offense taken.

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Sun Jul 18, 2010 1:19 pm

Hmm, inside the logs you linked the ascend.php request, which is the point at which the internal parser considers a new ascension to have begun, comes before the acquisition of those items. Must say, never seen that myself either, but it looks like you ran a script which then got these items for you, maybe that's the reason.

Can't really do anything about this, the ascend.php request is the only safe bet to distinguish between ascensions, because that request is always present in logs.

This is a mafia script that you can set to preAscensionScript. Why not trigger on
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Beginning New Ascension
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

instead of ascend.php?
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Sun Jul 18, 2010 11:06 pm

Question about the +stat breakdown section of the log; here's my most recent one:

Need to gain level (last is total): 10 39 105 231 441 759 1209 1815 2601 3591 4809 6279 21904
c.a.r.n.i.v.o.r.e. button: 0 0 0 15 24 37 78 16 22 13 45 127 380
pilgrim shield: 1 6 9 21 10 30 63 13 13 10 58 126 363
ice sickle: 1 7 11 26 18 24 78 16 33 13 1 37 271
sugar shirt: 0 0 0 0 13 30 63 13 0 0 0 0 120
hipposkin poncho: 0 0 0 0 0 0 0 3 0 8 0 0 12

A few things don't seem right here:

1. I could swear I wore the hippo poncho pretty much continuously from around the time that I could equip it. I pulled it and was a muscle class, so this was around turn 140. I didn't have any other shirts, and I had no trouble handling the ML. 12 substats seems awfully low.

2. I'm pretty sure I only summoned one sugar shirt the entire run, on day 1. Something is really strange here, because the log also says I summoned 8 stickers and 6 sugar sheets in 3 days (if only!).

3. Both the totals for the carnivore button and the pilgrim shield seem low. I did switch out the shield for a bag of tricks a fair amount, but I had 440 combats, so 363 stat would mean I wasn't wearing it nearly half the time (363 mainstat / 1.5 mainstat / turn = 242 turns = nearly 200 turns without it). I'm not really sure what I was doing while I was level 8-9-10, but that stretch has a huge dropoff for stats for all three of the carnivore, PS, and ice sickle.

Am I reading the breakdown wrong?

If it would be helpful, I can send you the parsed log or the raw session files.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Mon Jul 19, 2010 6:26 pm

lostcalpolydude wrote:This is a mafia script that you can set to preAscensionScript. Why not trigger on
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Beginning New Ascension
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

instead of ascend.php?

I was about to point out that I have seen logs where that string is not present, but it occurred to me that I could look for both the ascend.php request and that string. This would result in all the data between those two string being ignored at all times, but I guess since it's at the end of the run in aftercore it isn't really that important.

Would this be an agreeable solution?


@Kelemvor
The +stat breakdown is based on equipment tracking, which cannot work 100% correctly with what is given in session logs - basically, every time you use a custom outfit, it is impossible to know what you're wearing. Also, when sugar stuff breaks, there is no indication on what broke or that something broke at all which makes those items behave rather badly in this context. Also also, I sometimes get the feeling that the equipment tracking is not bugfree, but I'd need to check an ascension's session logs line for line to figure out where stuff goes wrong in contrast to the mentioned problems with custom outfits.

Maybe I should check the equipment tracking one of these days and to that end it would be helpful if you send me your logs. And further, the problem with the summons sounds like a problem somewhere in the program.

Spiny_Twizzler
Just Plain Old Pie
Posts: 5
Joined: Thu Apr 30, 2009 12:30 am

Re: Ascension Log Visualizer

Post by Spiny_Twizzler » Tue Jul 20, 2010 8:13 pm

Using version 2.7.2

I've done a few days of a run and I selected Visualize Mafia Logs to see the various charts and whatnot that the ALV offers. On the chart that says MP Gains, nothing is showing by Starfish familiar. The only bars that are filled at all are Inside Encounters and Consumables.

An example of a combat where I stasised with a starfish is as follows from my session log:

Code: Select all

[265] Spooky Forest
Encounter: spooky vampire
Round 0: The_CCCP wins initiative!
Round 1: The_CCCP uses the spices!
Round 2: spooky vampire takes 1 damage.
You lose 1 hit point
Round 2: The_CCCP uses the spices!
Round 3: spooky vampire takes 1 damage.
Round 3: Star Starfish floats behind your opponent, and begins to glow brightly.  Starlight shines through your opponent, doing 6 damage, and pours into your body.
Round 3: spooky vampire takes 6 damage.
You gain 6 Muscularity Points
Round 3: The_CCCP uses the spices!
Round 4: spooky vampire takes 1 damage.
Round 4: Star Starfish floats behind your opponent, and begins to glow brightly.  Starlight shines through your opponent, doing 12 damage, and pours into your body.
Round 4: spooky vampire takes 12 damage.
You gain 12 Muscularity Points
You gain 5 Meat
You gain 4 Beefiness
You gain 1 Enchantedness
You gain 1 Roguishness


Also on another note, (I filed a bug report at mafia in case it's at their end that it needs to be dealt with). Using a script to automate Dungeon Fist in-run is being recorded presently as one turn spent, where it should be 5 turns. The turn rundown looks like only 1 turn spent each.


Thanks,
-Spiny

User avatar
Verdigris97
Colonel Contest
Posts: 739
Joined: Thu Jan 21, 2010 6:14 pm
Location: Northern CA

Re: Ascension Log Visualizer

Post by Verdigris97 » Tue Jul 20, 2010 8:50 pm

Spiny_Twizzler wrote:I've done a few days of a run and I selected Visualize Mafia Logs to see the various charts and whatnot that the ALV offers. On the chart that says MP Gains, nothing is showing by Starfish familiar. The only bars that are filled at all are Inside Encounters and Consumables.


I just recently learned (can't remember where) that to get good summary info, you need to turn on almost all of the logging options in mafia.

Go to General->Preferences, and then select Session Logs, and check every box except for "Log adventures left instead of adventures used."

All of your familiars will show up, and you will see stat gains from combats.

Spiny_Twizzler
Just Plain Old Pie
Posts: 5
Joined: Thu Apr 30, 2009 12:30 am

Re: Ascension Log Visualizer

Post by Spiny_Twizzler » Tue Jul 20, 2010 9:25 pm

Verdigris97 wrote:
Spiny_Twizzler wrote:I've done a few days of a run and I selected Visualize Mafia Logs to see the various charts and whatnot that the ALV offers. On the chart that says MP Gains, nothing is showing by Starfish familiar. The only bars that are filled at all are Inside Encounters and Consumables.


I just recently learned (can't remember where) that to get good summary info, you need to turn on almost all of the logging options in mafia.

Go to General->Preferences, and then select Session Logs, and check every box except for "Log adventures left instead of adventures used."

All of your familiars will show up, and you will see stat gains from combats.


I did double check that before posting, all are checked as suggested.

As far as what I said about Dungeon Fist. Veracity said the ALV needs to be updated to recognize that these games take 5 turns. Mafia never records multi-turn things as adventure ranges in a log. That actually makes sense to me.

Other observed things regarding ALV: If I choose parse mafia logs and then choose to visualize preparsed ascension log of what was just parsed, this will not have the same level of features available to look at as if I chose visualize mafia log directly.

- Noticably the Ascension log page doesn't have the top two buttons if using visualize pre-parsed log.

-The Stats per turn per level are rounded differently in a side by side comparison.

-One includes stats gained from consumables under the Stats gained per area chart, the other does not.

-On the stat gains overview tab, one actually charts the food/booze/Using, the other has those bars as blank.

-MP Gained/Spent per turn states Data not available in one, but is fully charted in the other

-Total MP Gains as mentioned in my prior post doesn't show my Starfish obtained mana at all in either chart. Granted I've only used him 9 turns so far, but as you can see in my prior post, familiar actions are logged so this should be easy to ascertain.

-Per day consumable stats. I drank 2 Pebblebrau on day 1, neither visualization mention that on day 1 booze for this chart. I can only assume it is due to the foreign characters. It should be noted that the Pebblebraus ARE noted on the Turns per consumable tab in both.

-Turns spent per area has Dungeon Fist! listed as 2 and it should (at this point) be 10.

-Turn rundown tab, as previously mentioned, has Dungeon Fist! as 2 turns for both.

Now that I went thru and documented the differences, it dawns on me why there are these differences. Mafia session logs have all the data and preparsed logs have a lot of that data syphoned out/distilled so they are not so easily charted. Or am I mistaken/confused?

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Wed Jul 21, 2010 12:43 pm

Spiny_Twizzler wrote:As far as what I said about Dungeon Fist. Veracity said the ALV needs to be updated to recognize that these games take 5 turns. Mafia never records multi-turn things as adventure ranges in a log. That actually makes sense to me.

And Veracity is correct, these areas need special handling, just like the shore. Yay for hardcoding stuff!


Spiny_Twizzler wrote:-One includes stats gained from consumables under the Stats gained per area chart, the other does not.

-On the stat gains overview tab, one actually charts the food/booze/Using, the other has those bars as blank.

This data is actually present in parsed logs, putting it into the internal data structure just doesn't work right now.


Spiny_Twizzler wrote:-Per day consumable stats. I drank 2 Pebblebrau on day 1, neither visualization mention that on day 1 booze for this chart. I can only assume it is due to the foreign characters. It should be noted that the Pebblebraus ARE noted on the Turns per consumable tab in both.

Yes, non-ASCII characters in logs are a bit of a complicated matter. They seem to be logged by mafia in different ways depending on the used operating system. Or maybe I'm just doing something wrong.


Spiny_Twizzler wrote:Now that I went thru and documented the differences, it dawns on me why there are these differences. Mafia session logs have all the data and preparsed logs have a lot of that data syphoned out/distilled so they are not so easily charted. Or am I mistaken/confused?

No, not mistaken. :)

Unless it is mentioned above, the difference is due to the data being omitted in parsed logs (mostly for human readability reasons). About one year or so ago, I decided to start adding charts that parsed logs wouldn't be able to create, because I figured that the main usage I had pegged for that feature, namely to visualise logs from other people by copy&paste from forum posts, wasn't really being done.

On that account, I strongly recommend to create log reports in the ALV from session logs - if they are present - for these very reasons.

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Wed Jul 21, 2010 3:14 pm

Flolle wrote:@Kelemvor
The +stat breakdown is based on equipment tracking, which cannot work 100% correctly with what is given in session logs - basically, every time you use a custom outfit, it is impossible to know what you're wearing. Also, when sugar stuff breaks, there is no indication on what broke or that something broke at all which makes those items behave rather badly in this context. Also also, I sometimes get the feeling that the equipment tracking is not bugfree, but I'd need to check an ascension's session logs line for line to figure out where stuff goes wrong in contrast to the mentioned problems with custom outfits.

Ah, that makes sense. I do a ton of custom outfit switching, as I have a chat macro that equips my -MP gear, casts buffs, and then puts on my previous outfit. Usually I set it up so that the navel ring goes in the same slot as the carnivore button, so as not to mess with things like max hp (vmask) or the juju mask intrinsic.

Not sure how this would apply to the pilgrim shield, though, since I wear that pretty much all the time once I leave the billiards room.

Flolle wrote:Maybe I should check the equipment tracking one of these days and to that end it would be helpful if you send me your logs. And further, the problem with the summons sounds like a problem somewhere in the program.

Sent! Let me know if you don't get them.

Spiny_Twizzler
Just Plain Old Pie
Posts: 5
Joined: Thu Apr 30, 2009 12:30 am

Re: Ascension Log Visualizer

Post by Spiny_Twizzler » Wed Jul 21, 2010 3:59 pm

Thanks for the response Flolle. I think you addressed all points except for the issue of the Starfish MP gains not being separately charted for me. See my post a few posts back where a combat was pasted for reference.

I do appreciate all the work you've done on this utility to make this a useful tool for run analysis and readable recording!

-Spiny

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Wed Jul 21, 2010 4:51 pm

Spiny_Twizzler wrote:Thanks for the response Flolle. I think you addressed all points except for the issue of the Starfish MP gains not being separately charted for me. See my post a few posts back where a combat was pasted for reference.

Ah, indeed I did, forgot to add it to the post because I only quoted your second one.

Anyway, this is fixed and will be available in the next release. Was a pretty dumb bug on my side, I might add.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sat Jul 24, 2010 12:20 pm

@Kelemvor
I did not yet look at the equipment stuff, but I just checked the problem you were having with tome summons. Turns out this is what is contained in your session log (just a single example below):

Code: Select all

cast 2 Summon Sugar Sheets

cast 2 Summon Sugar Sheets
You acquire sugar sheet (2)

cast 1 Summon Stickers

cast 1 Summon Stickers
You acquire an item: scratch 'n' sniff unicorn sticker
You acquire an item: scratch 'n' sniff wrestler sticker
You acquire an item: scratch 'n' sniff rock band sticker

I'm gonna go ahead and call this a problem with mafia's session logging/internet lag/whatever, but certainly not a bug in the ALV.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Mon Jul 26, 2010 2:57 pm

The Ascension Log Visualizer version 2.8.0 has been released.

Changes from the last version include, but are not limited to:
- The occasional problem of the parser breaking on long lines in session logs (>500 chars), should happen far less often from now on.
- New ascensions are now recognised through ascend.php requests and the "Beginning New Ascension" string that's also present in many logs. This should catch false meat gains/item drops from pre-ascension scripts by ignoring all the data between the ascend.php request and the "Beginning New Ascension" string. If this results in problems for users, please make post about it.
- Fixed a couple of bugs in the equipment tracking logic. However, this probably needs to be said here to reach at least some of the users, it can never work 100% correctly, since every time a custom outfit is put on, the program has no idea what equipment is worn and thus defaults to no equipment being worn at all.
- Fixed some smaller bugs (check the source repository log for details).

As always, check the source repository log if you want a more detailed list.

As usual, any feedback, be it bug report, request, or just general comment will be appreciated, especially for features that were newly introduced.



@Kelemvor
Your logs helped with my equipment tracking bug hunt, thanks! Sadly, I couldn't "fix" your problem, because as guessed there were cases of putting on a custom outfit and not reverting it back afterwards (custom outfit Your Previous Outfit or custom outfit Backup). That is kind of a KO hit and unfixable from my side, sorry.

@Spiny_Twizzler
Game Grid adventures should now take the correct amount of turns and consumable stats are included when loading a pre-parsed log. I couldn't however reproduce your problem with Pebblebrau, it seemed to be recognised correctly on my machine under both Ubuntu and Windows.

@Everyone
Thanks to all for giving feedback, it is greatly appreciated! Even if no direct program change resulted from it, it still gives me a better idea about how the ALV gets used "in the wild". :D :D :D

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Mon Jul 26, 2010 6:30 pm

Thanks Flolle! I'll give the new parser a whirl and see if my stat lines come out closer to what I expected.

I think that in my case, I only define a couple of custom outfits per ascension (mostly "jack" and "nojack", to help deal with Fiddly McFiddlerson), and I think that the only outfit I use outside of a run is my MP cost outfit, which should always get reverted to /outfit last afterward.

So what I'm wondering is, does Mafia log the line where a custom outfit gets created? If so, could the parser remember what I was wearing when that outfit got created, and modify equipment tracking accordingly? That sounds kind of painful to code, so maybe the solution is just for me to stop using a Jack-in-the-box in-run. Everyone wins! :)

User avatar
transplanted_entwife
Oh my! Guy with Pie!
Posts: 1577
Joined: Tue Jun 22, 2010 6:49 pm
Location: Nebraska

Re: Ascension Log Visualizer

Post by transplanted_entwife » Mon Jul 26, 2010 8:37 pm

Question: I use the Visualizer after each run (and find it extremely helpful- thank you!) but am curious about some of the logs I've seen posted which have different colors for hitting levels, etc. Is there an extension/step/setting I'm missing that will do that automatically?
Image

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Tue Jul 27, 2010 10:42 am

To get pretty colors:

1. Parse the log you want.
2. Click on "Ascension Log" at the bottom. Click on the "Open Notetaker" button.
3. When you're finished taking notes, click "Show annotated log".
4. At the top of that window, click on BBCode.

That should give you your log in formatting that shows colors.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Tue Jul 27, 2010 1:25 pm

Kelemvor wrote:I think that in my case, I only define a couple of custom outfits per ascension (mostly "jack" and "nojack", to help deal with Fiddly McFiddlerson), and I think that the only outfit I use outside of a run is my MP cost outfit, which should always get reverted to /outfit last afterward.

So what I'm wondering is, does Mafia log the line where a custom outfit gets created? If so, could the parser remember what I was wearing when that outfit got created, and modify equipment tracking accordingly? That sounds kind of painful to code, so maybe the solution is just for me to stop using a Jack-in-the-box in-run. Everyone wins! :)

Well, for what it's worth, before turn 166 in the session log, you put on the outfit ccast, but it wasn't reverted afterwards in the log and that killed the equipment tracking for quite some time. Might be that mafia didn't properly log it or that it had to do with chat macros (I don't use them, so no idea how those affect mafia logging).

And about the custom outfit creation: No, no logging that I'm aware of. I'm not really sure whether it would help anyway, since custom outfits are often used over multiple ascensions (at least, that's how I use them, but I don't use them that often anyway) and it would mean I'd have to track data over multiple ascensions, which is something I'd rather not do.


transplanted_entwife wrote:Question: I use the Visualizer after each run (and find it extremely helpful- thank you!) but am curious about some of the logs I've seen posted which have different colors for hitting levels, etc. Is there an extension/step/setting I'm missing that will do that automatically?

Kelemvor already described how to use that feature, but I want to point out that I'm fully aware that it is not entirely straight forward to get to. That is however by design, because I want to promote posting of annotated logs instead of just a parsed log dumps in forums and the way I choose to do this is to try to guide users through the Notetaker to get to some things. The intention of the Ascension Log menu point is actually just to let the user view the parsed log, not to edit/copy it. In fact, I've been considering making that text area uneditable before every new release for some time now, but I'm always afraid that there might be major complaining and that this is too much of a developer pushing his personal view onto his users. Maybe I should just do it anyway and see what the reaction is going to be.

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Tue Jul 27, 2010 1:29 pm

FWIW I always make my notes in the forum post itself, so I just want to be able to grab whatever BBCODE and then close the visualizer (outside of looking at any other fancy graphs). As long as that's straightforward, I'm happy.

And I don't think the current fancy-colored one is straightforward to get to, because I couldn't find it after a good bit of looking.

User avatar
lostcalpolydude
Forum Maestro
Posts: 2940
Joined: Wed Apr 23, 2008 6:54 pm

Re: Ascension Log Visualizer

Post by lostcalpolydude » Tue Jul 27, 2010 1:42 pm

Like stu, I much prefer adding notes outside of the visualizer interface. This in turn means I don't find the color coded log, and my logs are probably less readable as a result.
bmaher: Softcore character
lostcalpolydude: Hardcore character (abandoned)

Kelemvor
AFH
Posts: 980
Joined: Fri Aug 28, 2009 11:36 am

Re: Ascension Log Visualizer

Post by Kelemvor » Tue Jul 27, 2010 6:29 pm

Flolle wrote:
Kelemvor wrote:I think that in my case, I only define a couple of custom outfits per ascension (mostly "jack" and "nojack", to help deal with Fiddly McFiddlerson), and I think that the only outfit I use outside of a run is my MP cost outfit, which should always get reverted to /outfit last afterward.

Well, for what it's worth, before turn 166 in the session log, you put on the outfit ccast, but it wasn't reverted afterwards in the log and that killed the equipment tracking for quite some time. Might be that mafia didn't properly log it or that it had to do with chat macros (I don't use them, so no idea how those affect mafia logging).


Yeah, I had a feeling this was the case. Sometimes I put on ccast when I want to cast multiple buffs, and then I forget to take it off. :P That's why I was careful to say it "should always get reverted". :) I do almost always use chat macros to put on and take off my custom outfits, especially ccast, so I think those are getting logged correctly.

I'll make a new macro for when I want to cast multiple buffs; maybe that will make things happier.

Flolle wrote:And about the custom outfit creation: No, no logging that I'm aware of. I'm not really sure whether it would help anyway, since custom outfits are often used over multiple ascensions (at least, that's how I use them, but I don't use them that often anyway) and it would mean I'd have to track data over multiple ascensions, which is something I'd rather not do.

Ah. I only have the one custom outfit that I use every ascension, and other than that all my custom outfits are defined in-run.

@stu, bmaher: I used to copy the whole log and then edit it in the phpbb editor, but adding the code tags manually was a pain. ALV does that automagically, and that was enough to get me to switch.

User avatar
stupac2
Oh my! Guy with Pie!
Posts: 3027
Joined: Mon Dec 08, 2008 10:04 pm
Location: Stanford, CA
Contact:

Re: Ascension Log Visualizer

Post by stupac2 » Tue Jul 27, 2010 6:35 pm

I also switch the order of some things, since flolle and I have different ideas about how to organize certain events.

User avatar
Flolle
Fie the Pie
Posts: 848
Joined: Mon Apr 02, 2007 10:13 am

Re: Ascension Log Visualizer

Post by Flolle » Sun Aug 01, 2010 3:13 pm

As has been hinted at before, I planned to implement a XML output format to be able to work with logs across multiple program sessions and to have a better common ground for inter-program communication.

Well, here is a showcase for how I envision what that format would look like. Note that it isn't finalised yet, but version 1.0 shouldn't change much, if at all, unless there is a good reason. (loading the XML file with a browser might take a while, it's pretty long)

Hopefully, this feature - once fully implemented - may show itself useful for applications other than the ALV, since the format is different from the textual outputs due to the fact that it contains all the data the ALV itself tracks in mafia session logs, with the added benefit of being easier to parse in its entirety than mafia session logs (XML parsers are after all present in pretty much any programming language there is).

Post Reply