Web Tools for WoW Nerds
All signs point to 4.1 coming out today (at least in the US) so DPS Bot will show the first available data tomorrow at around noon EST. Don’t forget that the default view uses all data from the last 2 weeks, so if you’re looking to see how 4.1 is affecting players, you’ll likely want to use the 1 week Sample Period option (you can use the 1 day period but since raid lockouts are on a week timer the 1 day period often is too noisy to be super useful).
These links might help get you started:
As more days go by and more folks clear their farm content, the numbers should get better and better. This time next week should show a pretty clear indication of how folks are playing post-patch.
What are you expecting to see?
Spec Score is my attempt to create a number that more accurately compares specs across all fights in a tier of content. So, let’s start with the basics
What Does It Mean?
Calculation of the Spec Score is a little funky but not too complicated.
It’s hard to make a direct “well this spec is 5% less powerful than that spec” argument as it’s an average across all the fights. But you can definitely look and see clearly when some specs are very close in power across all the fights in a tier.
Spec Score should help comparing spec performance across very different fights since the DPS levels are normalized somewhat. Overall DPS has the problem of skewing results way too much when there’s an AOE or damage-multiplier fight (see Halfus). I’ve also included one special view that excludes Halfus for you diehard adjusted fans out there.
I just pushed some code that will, by default, hide DPS specs that have a low relative number of samples compared to the rest of the DPS. This should help reduce the wildly varied values of such specs as Sub Rogues, Frost Mages, and the like. You can still easily click those classes on and the choices will stick with you as you browse around the site.
Just pushed a change live that enables changing the measure and sample period of the data. This is edge case usage and can give very confusing information if you don’t know what you’re looking at. So be careful!
The cool stuff you can see:
http://raidbots.com/dpsbot/Overall_DPS/25H/all/7/60/samples/ – class representation over time
http://raidbots.com/dpsbot/Overall_DPS/25H/all/1/60/samples/ – guess which nights are the most popular for raids
Update: Spec Score for the last 2 days is a little wonky. I’m going to be deleting some data and regenerating it shortly so don’t be alarmed if Spec Score looks a couple days old.
The new DPS Bot is finally live! It looks pretty similar but there’s a lot of new stuff going on:
Why is this interesting and good?
Scraping the top 200 rankings from World of Logs had a lot of problems associated with it. The rankings are from all time so if a spec was nerfed it took quite a while for the data to show just how far the spec DPS had changed. This new data collection method should show changes much more quickly since I’m using every parse as the data set.
In addition, being able to crunch the numbers across all parses lets us finally answer questions like “what’s the actual DPS of the median player and how does that compare to the top players?” Pretty cool stuff. And I’ll be able to do even more with this data once the changes I’ve made prove themselves out and a little stability comes around.
Also, lots of little fixes and tweaks
Anyway, it’s been a pretty major effort to handle the huge amount of new data but I’m pretty happy with how it’s come out so far. I can do a lot more cool stuff with this so I’m pretty excited.
Please let me know if anything doesn’t work, is confusing, or anything else! Post here or email me!
I’m playing around with Varnish, a “web accelerator” that sits in front of my web server. I have it caching bits and pieces of the site (all pages from DPS Bot, CSS, JS, and image files) and it could cause weirdness. It seems stable so far in my testing but let me know if anything seems wrong.
In other news, getting closer to releasing the new DPS Bot with much improved datas. I have a bit more testing to do and a few more things to add before I’m ready to release, but it shouldn’t be long now. Maybe even this weekend if I’m particularly productive.
What to get excited about!
So first off, apologies if the site has been slow at all over the past couple of days. I’ve been working on new data crunching code to handle the giant data dump from World of Logs and it likes to hog the CPU and disk at times.
Otherwise, the new server seems to be pretty fast and stable. There were a couple of small bugs that came about because I had forgotten to move some configuration to the new server but I think those are all ironed out now.
I’m pretty excited about the new data. To remind you, instead of scraping the World of Logs rankings, I now have a nice, tidy data dump directly from the WOL guys that has information on every kill from every day. So I’ll be able to generate the median from all kills, not just the recent ones from the rankings. In addition to the median of all players, I’m generating the median of the top 100 over the last 14 days – this should look pretty similar to the current version on the main page of raidbots. The one big advantage the full dataset has is that it should a drop in DPS much more quickly than the current method.
At this point, the main work left to do is create a new way of displaying Overall rankings and probably merge the detail table into the same page as the chart. There are some other tweaks I have in mind (hide a spec by default if they have far fewer samples than other specs – I’m looking at you subtlety rogues and frost mages) and a lot of other random cleanup to do so it’ll probably still be a few weeks until I have anything ready for release.
I’ll keep posting progress and asking for ideas here. If there’s anything you want to know about or have ideas to share, post it here or shoot me an email!
Right now I’m copying all data to the new server. This will take a while. Everything should still work but new compares won’t make the transfer to the new server. This seems like it won’t be a huge deal as you can run the same parses once you can see the new server in case you want to link the compare to other folks.
I’ll keep this updated with news. The biggest pain in the ass will probably be DNS propogation though I’ll have a domain you can visit to get around that in the meantime.
Update: ~10% done with the big copy. Full migration will probably take another hour or two. Also, beta.raidbots.com will now be the same as raidbots.com once the migration is done. That old URL has a few too many old links that people use for live stuff so I have a new beta subdomain for my own uses.
Update 3:20PM EST: ~60% done. Still waiting. Good times.
Update 4:20PM EST: Copy is done, importing data right now (which is almost done). Will be flipping the DNS switch pretty soon.
Update 4:40PM EST: DNS is changed. Doing some checks to make sure it all works!
Update 5:00PM EST: Changing the old server to redirect all requests to new.raidbots.com which should close the loop and make all requests respond from the new server. Everything seems to be working as far as I can tell – please let me know if you run into any weird problems!
Update 5:30PM EST: Done! Now just monitoring to make sure nothing is blowing up. Theoretically by tomorrow DNS should be good to go everywhere but until then folks will just get bounced to new.raidbots.com. Tomorrow or later I’ll probably make sure that the ‘new’ domain just goes right back to the normal domain and have done with all that.
I went ahead and started the process for getting an honest-to-god dedicated server for raidbots. Lots more disk than I currently have, a little more RAM, and a decent dedicated processor. Once I have access, I’ll be starting to set up the new machine and migrating the code and data over. It’ll probably take a week or two to find the time to get it all set up and working (not to mention handling DNS and all that fun with minimum downtime). This is going to take precedence over any other development but once it’s done I’ll be able to dive headlong into making sense of the huge data dump WOL is providing me. First task once the migration is done – playing around with the Top DPS Bot and possibly creating the Average DPS Bot (to answer the age old question “what is the ACTUAL average DPS across all levels of raiding players (that log to WOL)?”
Nerdy Server Stuff
Onto the details! I’m moving from Linode to Server Beach. I love Linode and am sad to leave but they just don’t offer disk space at a price I can afford. I’m using Mongo as the database for raidbots and my usage require a ton of disk space – I could probably reduce the size of each document by compressing keys more intelligently but the rate of growth would likely still require moving to a server with proportionally more disk space than RAM and CPU. Also, at this point, I’d rather keep the keys in the documents as readable as possible to make it easier to develop against.
Turns out that most cloud hosting tends to have really limited disk options. Most of the disk sizes scale in lock step with the amount of RAM on the node. Elastic Hosts was one exception with reasonable prices but their one datacenter in San Antonio has a pretty high latency to Boston (where I live and develop). In addition, their bandwidth was pretty expensive. Amazon’s EC2 tended to be far too expensive for me as well – also, any solution that requires a price calculator that is more complicated than raidbots itself is probably more than I want to deal with.
The new server is a Core 2 Duo 6750, 2GB RAM, 2×160 GB drives, and essentially unlimited bandwidth (10Mbit NIC). Hopefully I should actually get access to it in a day or two and can start the process of configuring Debian, setting up Mongo/Apache/PHP/etc/etc/etc, and start migrating the code and data.
I’m also hoping that a few downtime blips might have been caused by being on a shared machine. There was a 5-10 minute downtime this week that seemed to be related to Mongo taking a long time to flush data to disk. I’m not sure if this is just going to end up happening with a single Mongo instance or if the disk my nodes were using were being saturated by another machine on the same physical host. We shall see! At least with a dedicated server I’ll know that it’s my own fault if there’s a massive performance problem. I’m a little worried that running everything on one box might end up causing some RAM contention issues (Mongo likes to slurp up every bit of available RAM but theoretically should let go of it if needed) but there’s only one way to find out.
Anyway, I’m excited if you couldn’t tell. Once this is set up, I should be able to jump back into developing code and doing cool stuff with the new data. It’ll be a huge relief not to have to spend a ton of time working on maintenance tools to make sure I’m not overstepping my minimal resources.
Update: I love it when companies under-promise and over-deliver. They said it would be ready in 24-48 hours but it was ready in about 4. I love the smell of a new server in the evening.