Tuesday, January 15, 2013

Looking for a moderator or two

*Update* Recruitment is now closed. Thank you.

Hey everyone, I'm currently in search of a couple people to help me out with moderating the statistics pages. If you are interested in helping, please read the following, and then if you are still interested, keep reading :)

  • I cannot offer any compensation for your time. This is a 100% volunteer position.
  • You should be an active and devoted SWTOR player.
  • You should be able to devote at the very minimum 4 hours a week to the website.
  • You should be able to be easily reached via email or other means (and can expect the same from me).
  • Programming experience is a plus, but not required (PHP, JavaScript, AS3)

Ok, so if you feel that you meet the requirements, then please feel free to read on. 

At this moment in time, the job is very specific but there is nothing stopping it from opening up should the need or opportunity present itself.  The statistics pages are updated once a day, and often times spoofed logs or faulty encounters make it into the statistics pages and rankings that should not be there.  While I do my best to skim through the rankings, it is a lot of work for one person on top of everything else I am doing. The job would be to review the statistics pages to ensure no faulty encounters are present, and if they are, flag them for removal.  I have programmed tools that make this job a lot easier, and your account would be given access to them to help you with this task.

If you would like to apply, please email me at james@torparse.com. The application can be informal, and does not require any professional resume or template. With that said, please include the following:

  • A brief description of your SWTOR history (server, character, when you started, etc)
  • One thing you would like to see changed on TORParse.com
  • Your account name on TORParse.com (just the name, *not* the password)
  • If you have any previous experience doing things like this (it is okay if you don't)
  • Any programming experience? (it is okay if you don't)

I will do my best to reply to all applications in a timely fashion. Thank you!

Wednesday, January 9, 2013

Small Update to Analytical View

Hey everyone, today I have pushed an update live that I have been working on for a little bit now. I have added the ability to view your Analytical breakdown in two new ways, they are labeled on a new bar above the existing breakdowns. They are pretty self-explanatory what they do. "Player" is the default setting and will only show information related to the main character of the log (this is what existed up until this point). "Companion" allows you to see only the companion information, if there is any available. And "Player + Companion" adds your companion stats together with your own stats.  It's been a requested feature for quite some time and I'm glad to finally have it done! Enjoy :)

Also, I have fixed a pretty significant bug on the Heals Taken and Damage Taken pages that was causing the "by Source" breakdown to lump everything together and list the source as the main character of the log. These areas will now correctly break out the information into the source of the damage/heal.

And last but not least, I have added the ability to direct link all the way down to a specific tab in the Analytical View.  The "Link to Current Fight" link on the top of the pages now reflects this addition.  This does not yet work for Group logs but I hope to add it soon.

Thanks!
James

Tuesday, January 8, 2013

Upcoming Log Limit Enforcement

When I say limit, I am referring to time limit, there will be no number limit on the amount of logs you can upload. This is just a friendly warning that I will soon be enforcing the log limit policy that I outlined in my Welcome Back post back in July. The size of the database is getting to the point where if I don't begin to enforce this policy, it will cause degradation to the quality of service provided.  This is the way it will work:

  • Any logs that contain boss fights will be moved to an inactive archive database. They will be inaccessible at this time and will be used only for overall stats on the statistics pages. I may allow limited access to them at a later date.
  • Any logs that are ranked will not be removed. This includes archived rankings which can go back up to 60 days.
  • If you are a member of the site, your logs will stay on the website for a maximum of 180 days since its last viewing unless it contains boss fights. This means, if you upload your combat log, look at it once, and then never look at it again for 180 days, it will be deleted on the 181st day. If you look at your combat log on day 179, it resets this counter.
  • If you are uploading a combat log to the website as an anonymous user, your logs will stay on the website for a maximum of 60 days since its last viewing unless it contains boss fights. Same rules as above apply.

This policy will ensure the website can continue to function quickly and efficiently as well as reducing costs.  The numbers above are not set in stone and may change from time to time, but I will attempt to be as transparent as I can about the process.

As an FYI, I ran a test of this system to see what the results looked like.  As a result of running this system for the very first time, the following numbers were observed:

  • Anonymous logs to be deleted: 23176
  • Member logs to be deleted: 296

By the numbers above, you can see that very few member logs will be affected by this new policy relative to the total number of logs in the database (there are a lot). There are quite a few anonymous logs that will be deleted upon activation of this new policy. A large majority of both numbers will be moved into the inactive archive database vice being permanently deleted.

I will turn this system on in approximately one week to give everyone ample time to make sure none of your important, can't-be-deleted logs fall into the deletion state. I will need to bring the site down for approximately four hours to run this system for the first time as well as conduct database maintenance after it has completed. This maintenance is currently scheduled for Monday, 14 Jan 2013 4AM PT/7AM ET/1PM CET/9PM AET.

After I have run the system for the first time, it will be setup to run automatically every few days. The site will only need to be brought down for the first run, and subsequent runs will be transparent to the user.

Thanks,
James

P.S. I should have a new desktop application update ready by this weekend. I took a little time off for the holidays, but have quite a bit of new work to show everyone!

TL;DR: New log time limit policy: 180 days since last view for members; 60 days for anonymous; boss fight logs will be moved to inactive database, not accessible, only used for overall statistics numbers; ranked logs will not be removed. Scheduled maintenance: Monday, 14 Jan 2013 4AM PT/7AM ET/1PM CET/9PM AET. Maintenance length approx 4 hours.

Sunday, December 23, 2012

Important Notice

*Update 12/26*

After being in touch with Microsoft, emails to people with Microsoft accounts should no longer be blocked, meaning password reset emails should come through fine now.  I have checked the site against other "spam" databases, and it appears that the site is now in good standing with all the major email providers (after moving nameservers and properly setting up mail on the server).  If you have any issues getting emails from the website, please contact me.  Thanks!

*Update*

The nameserver move should already be complete.  Everything went smoothly and a lot faster than I anticipated.  The main reason for this nameserver move is to fix issues with mail rejection from a couple bigger email providers.  The mail rejection issue is not yet fixed, but I'm currently working on it.  This process may take a couple weeks.  If you attempt to reset your password and never receive an email with instructions on how to reset it, chances are your email provider is blocking email from the website (Microsoft email being the biggest one).  If you run into this issue, please email me directly at james@torparse.com and I will manually provide a reset link for you.

Thanks, and I hope to have this resolved soon.



I will be migrating the nameservers for the website.  This should be a seamless transition.  While I do not anticipate any problems, I just want to make you are aware of this migration just in case something goes wrong and the website becomes inaccessible for a short period of time.

You can expect the migration to be fully complete and propagated in approximately 3 days.

Thank you,
James

Monday, December 17, 2012

Torparse Application Update

Hey everyone, so I got in another good weekend of coding on the desktop application.  I don't really have much to show this time, because a lot of work was put into optimizing the server code.  I ran into some unforeseen problems once I started connecting more than two clients at a time... so ya, that wasn't good!  But, I have fixed the bugs, optimized the code, and re-worked a lot of the code.  I'm sure it's not perfect yet, but it has come a long way since I started on it this weekend.  The real test of the server code is still yet to come, but it is now handling several connections at once extremely well.

I did get in some work on the desktop application itself.  The layout of the main portion of the program is coming along nicely.  I have nearly finished the following features: Friends List, Private Messaging, and a Notification system.  These features will all play in very nicely to the group feature.

Some quick notes about the Friends and PM feature.  In order to be "friends" with someone, you add that person and then they must confirm it.  After it has been confirmed, if one person deletes the other from their friends list, they will no longer be friends. PM's are limited to friends only.

Check out the screenshots below to see what these features look like. Once again, please remember that this is not a final product and a lot will and can change.

This screenshot will give you a general idea of how the main portion of the application is looking.  You can see the Friends List on the left hand side, and the "Notifications" tab is currently selected.  This tab is where incoming friend requests, and more importantly, incoming group requests will show up.  It is built with a lot of flexibility allowing for other general notifications.


This is a screenshot of the PM feature in action.


So, next I will start work on the foundation of the grouping feature.  I plan on trying to make it as close as possible to an MMO-type group.  By this, I mean that these are my ideas/goals:

  • There will be a group leader
  • The group leader will "invite" people to the group
  • There will be group "assistants." People in the group can be promoted to "assistant" by the group leader and then they can invite people.
  • The group leader can remove people from the group
  • There will be a group chatroom
  • The group leader and group assistants will be able to issue a ready check
  • The group leader and group assistants will be able to set a break timer.
  • Everyone will be able to see who is in the group
  • The group leader and group assistants will have access to start group parsing.
  • The group leader and group assistants will have access to stop group parsing.

These are my ideas so far.  I think it will turn out nicely.  After I get all this in place, I will start work on the actual group parsing meters.  I want to do the basics on these, like damage, heals, etc, but I also want to include a Recount-style (WoW) window.

That's all I got for you this time!  If you are interested in helping me test the group feature, please email me at james@torparse.com. Thanks!

Wednesday, December 12, 2012

Why Aren't Absorbs Tracked in Stats?

I'm writing this blog today to hopefully help clear up this issue.  This is by far the number one request and concern that I get via e-mail.  I'm sure there are others of you wondering the same thing, but just don't bother e-mailing about it, so I'm going to take a moment to address this issue.  Hopefully after you read this, you will be a little more knowledgeable on the inner-workings of a combat log (if you haven't looked inside one yourself already) and why absorbs are not tracked.

Note: In this post, when I speak of "absorbs," I am referring to spells such as Static Barrier and Force Armor.  This can also be extended to include other absorption spells for Smuggler, Imperial Agent, Tank Tree Talents, Shields (from gear), etc.  Any spell, item, or piece of gear that causes damage to be absorbed.

TL;DR: Absorbs are not tracked on the website because based on the current combat logging system, they are not possible to accurately track.  It may be possible to some extent, but it would be a lot of guess work and the numbers would be extremely inaccurate and unreliable.

The Full Post:

Unfortunately, the absorption stat is not tracked any better than just showing a number on the website because of the way this spell is tracked via the combat logging system.  This is the scenario that occurs:

  1. SorcBob casts "Static Barrier" on TankJoe.
  2. SorcBob's combat log shows that he cast "Static Barrier" on TankJoe.
  3. TankJoe's combat log shows that "Static Barrier" was cast on him by SorcBob.
  4. TankJoe gets hit and takes damage.
  5. TankJoe's combat log shows that he absorbed damage.
  6. TankJoe's combat log shows that he lost the spell "Static Barrier" from SorcBob (if the entire bubble was used).
  7. SorcBob's combat log shows that he removed the spell "Static Barrier" from TankJoe.
So, based on this scenario, you can see that once SorcBob cast his "Static Barrier" spell onto TankJoe, nothing shows up in SorcBob's combat log again until the spell "Static Barrier" is used up or expires from TankJoe.

Now, I'm going to show you what this actually looks like in the combat log.  Below each line of information, I will describe what it means to the best of my ability.

This is what a snippet of SorcBob's combat log looks like from the scenario above:

[16:37:15.940] [@SorcBob] [@SorcBob] [Static Barrier {808201175957504}] [Event {836045448945472}: AbilityActivate {836045448945479}] ()

This line is telling us that SorcBob activated the ability "Static Barrier".  It shows it as it activating on himself, but that's just the way the combat log shows ability activation (for some reason).

[16:37:15.940] [@SorcBob] [@SorcBob] [] [Spend {836045448945473}: Force {836045448938502}] (35)

This line tells us how many resources were used.  It may or may not be in reference to the previous spell cast, but it's a reasonable assumption to make (and usually correct).  In this case, he spent 35 force.

[16:37:15.940] [@SorcBob] [@TankJoe] [Static Barrier {808201175957504}] [ApplyEffect {836045448945477}: Static Barrier {808201175957504}] ()

This line tells us that SorcBob is "applying an effect" of Static Barrier onto TankJoe.  The spell was cast on him, makes sense.

[16:37:15.943] [@SorcBob] [@TankJoe] [Static Barrier {808201175957504}] [ApplyEffect {836045448945477}: Deionized {808201175957777}] ()

This line shows the resulting debuff from Static Barrier being cast onto TankJoe as well.

[16:37:16.366] [@TankJoe] [@SorcBob] [Static Barrier {808201175957504}] [RemoveEffect {836045448945478}: Static Barrier {808201175957504}] ()

This line shows the spell "Static Barrier" being removed.  Take note that the names are also in reverse.



This is what a snippet of TankJoe's combat log looks like from the scenario above:

[22:37:15.059] [@SorcBob] [@TankJoe] [Static Barrier {808201175957504}] [ApplyEffect {836045448945477}: Static Barrier {808201175957504}] ()

This line tells us that SorcBob is "applying an effect" of Static Barrier onto TankJoe.

[22:37:15.061] [@SorcBob] [@TankJoe] [Static Barrier {808201175957504}] [ApplyEffect {836045448945477}: Deionized {808201175957777}] ()

This line shows the resulting debuff from Static Barrier being applied to TankJoe by SorcBob.

[22:37:16.947] [@SorcBob] [@TankJoe] [Static Barrier {808201175957504}] [RemoveEffect {836045448945478}: Static Barrier {808201175957504}] ()

This line shows the spell Static Barrier as being removed from TankJoe by SorcBob.

[22:37:16.947] [Imperial Assassin Droid {2854138912178176}:564009248328] [@TankJoe] [Armed {2853992883290112}] [ApplyEffect {836045448945477}: Damage {836045448945501}] (5141 kinetic {836045448940873} (4338 absorbed {836045448945511})) <5141>

This line shows TankJoe getting hit by Imperial Assassin Droid for 5141 damage, of which 4338 was absorbed.

So, if you've never looked inside your combat log text file before, this can all be a tad overwhelming.  In a nutshell (hopefully enough to explain this post), you are given a few pieces of information per line of the combat log.  You are given the time (but not the server time, the local time of your own computer; side note: this is why I ask for the timezone of your computer and not the server), the "who" did it, to "whom" it was done, what action was done, the effect of that action, any resulting numbers caused by the action, and threat caused by the action.

(Another side note: The long string of digits are language references to the preceding text.  It is a unique ID that links to language files, and then pulls the correct word(s) based on which language your client is running.)

So, as you can see from the above information.  There is nothing that shows in SorcBob's combat log about how much damage was absorbed by TankJoe.  In TankJoe's combat log, it shows how much damage was absorbed, but it doesn't say what the source of the damage absorption was.  In this case, it's pretty obvious, but if TankJoe has any methods of absorbing damage on his own, there is no way to differentiate how the damage was absorbed.

(//end color coding)

So, with that said, this stat theoretically could be listed on the website.  In a solo setting (meaning only SorcBob uploaded his combat log, and no group parse was created), a lot of assumptions would have to be made.  These are some of the assumptions we could make, and also some questions we would have to ask:

  • "Static Barrier" lasts for 30 seconds, so based on the fact that it shows it being removed sooner than 30 seconds, we can assume that the entirety of the absorption effect of that spell was used.
  • If there is a combat log entry showing "Static Barrier" being removed exactly 30 seconds later, then we can assume that not all of the absorption effect of the spell was used.  But, what if SorcBob cast it on a DPS, and he just got hit by an add once, so some absorption was used, but not all of it?
  • What if I cast the spell on someone again at the 20 second mark after the debuff wears off? It shows the effect being removed before it is applied again if the spell still exists on the target, but did it absorb anything?
  • What level is the player? I can get a general ballpark based on the spells used, and sometimes exact if the right spells are logged.  We can also assume that most people that upload combat logs are level 50.
  • What does the player's gear look like? How much healing power does the player have? How much damage should the player's Static Barrier absorb based on gear?

So, as you can see, that's a lot of what if's and assumptions that need to be made.  So, at best, the stat could be tracked with the following assumptions made:

  • The player is level 50.
  • If the "Remove Effect" spell shows up at exactly the 30 second mark, that means no damage was absorbed.
  • The player is not wearing any healing power gear (or maybe an average player gear level is assumed).
  • If the "Remove Effect" shows up before the 30 second mark, that means the entirety of the damage absorption was used.

Making these assumptions, we could ballpark the stat, but it would be extremely inaccurate.

In a group setting, some of these questions could be answered for us.  With the proper coding, player spells could be tracked back and forth from player to player.  Assumptions may not have to be made about a lot of things.  In the case above, we can assume SorcBob's "Static Barrier" spell absorbs 4338 damage before it is removed, which makes all the other questions a moot point.  It would still be an inaccurate stat, because if TankJoe had another absorption spell on him (like a tank talent), and both were up at the same time he was hit, how would we determine which spell gets how much of the absorption amount.  But wait, what if TankJoe's shield works and he absorbs some damage that way?

So, I think you get the point.  It would require a lot of coding and in most cases a lot of guess work.  At some point in the future, I hope to be able to at least provide a ballpark estimation on this figure, but it is not something you will see tracked on the site any time soon.  I think most have seen me say this before, but I'm a one man team.  This is not my real life job, it is simply a hobby that I enjoy doing.  So, if I want to get anything accomplished on the site, I must prioritize everything and limit my scope to as few projects as I can at any given time.  This project would be an extreme undertaking because of other systems that would need to be coded first to derive this stat, and would ultimately end up as a stat that is extremely inaccurate.

I hope this helps clear up the issue and helps you understand why the stat is not tracked.  Please feel free to email me (or post below) if you have any concerns, questions or comments.  And please, if you know something I don't, I'm always open to criticism.

Or, maybe, ask BioWare to improve their combat logging system.  That would fix a lot of problems. :)


Monday, December 10, 2012

Torparse Application Update

Hey everyone.  It was a good week/weekend... made a lot of great progress on the application.  I've got a lot more work to do, but I wanted to show you how everything is coming along, so I've taken a few screenshots.

Before reading any further, please remember that none of these screenshots are the final product.  Everything is still very much a work in progress and a lot will probably change.  Enjoy!

Ok, so first up, the best screenie I've got for you is the parser actually working in-game, with a custom skin I designed to make it blend with the game :)  (P.S. Don't judge me for my keybindings, I use a Nostromo lol).


This is the new login screen:


This is a screenshot of the program initializing (if you checked "Remember Me" it skips the login screen):


This is a screenshot of the main portion of the program.  Please note, the visual components of this frame are not yet programmed, but it will give you an idea of the skin of the program and also the Options menu in the upper right:


The next screenshots are all from the in-game overlay settings page.  You get to this part by clicking the wrench icon in the upper right.  These will be the settings available for every overlay component (they are also resizeable).  I hope to add scaling in, but I'm trying to overcome a bug with that right now, so I have taken it out for the time being:



So, there you have it.  A bunch of screenshots to look at.  I'll keep you guys updated.  All the best. -James