It feels so good to be raiding again and to actually have momentum. In the past four weeks, we've gone from only having Lurker Below down in SSC to actually making attempts at Vashj.

This week, for a change of pace, we're revisiting Tempest Keep. Today we try Al'ar for the first time. I should remember to have my Ashtongue Cowl just in case it looks like we're getting close today.

Parsing the info XML

Having completed the tooltip XML parsing, it's time to work on the info XML parsing. So far I have learned two things:
1. There's a lot of extraneous crap in the info XML parsing that likely isn't going to do anyone much good.
2. 65,535 characters is not enough to hold the info XML for some items (e.g. Rune Thread).

The second one took me a short time to figure out. Suddenly REXML was crashing and I couldn't quite figure out why. It turns out that the issue is that I originally stored the XML in a TEXT column, which is limited to 65,535 characters. Changing the column to a MEDIUMTEXT in MySQL increases the capacity to something like 16 million characters, which should be more than sufficient.

I'm letting the parse checker run now. If it completes, that'll give me everything I need to work on the next step: Extracting the item schema.

Status update #1

I've finally implemented the item tooltip XML parser to the point that I can parse and then reproduce the tooltip XML for all 22,557 items I have in my database.

The next thing to do is to do the same for the info XML blocks provided by the Armory.

Once I can do that, I should be able to determine exactly how to render an item. I'd like to say "And, then, from there, it'll be cake." but it won't be. I'm sure of it.

In short, I wonder if I've created a larger-than-necessary project. Fortunately, I've enjoyed playing with Ruby thus far. Playing with the Aptana Studio has been a little frustrating due to periodic slowness on my G4 iBook and a handful of implementation problems (like it choking on the creation of =begin ... =end comment blocks). It (and the poor performance of TBC) is really making me tempted to buy a new laptop which, while admittedly nice, would be an expensive toy I don't need.

Working away

I've been doing work on the XML parsers. The tooltip parser is shaping up nicely.

I'm trying my hardest to not turn this into a programming blog. Really...

Every journey starts with a single step

Now that the import process has finally finished for the XML, it's time to think about how to proceed.

I am admittedly beginning to wonder if the mage DPS/gear "spreadsheet" is a separate project from the gear database. I may come back and decide to split it off.

The first items of business would seem to be:

  1. Investigate the tooltip XML documents further.
  2. Create the schema for storing items in the database.
  3. Implement code to transform the item info and tooltip XML into actual items.
  4. Verify success by ensuring that the XML generated by the item objects matches the tooltip XML. (Since the item info XML is only going to be used to extract the item level, I'm not worried about making sure the XML matches.)

Funny how easy this seems when written down.

Finally, a preliminary name

I finally settled on a preliminary name for the new "spreadsheet." I'll call it "Phaedra's List" until I come up with a better one. (And, you have to admit, at least it's a more sensical name than "pain.")

The next big decision to make is: Which language do I want to write this in? I figure the end application will be Ajax so JavaScript is going to be a given. On the server interface, though, do I want to use Java servlets, PHP, or Ruby? Ruby is supposed to make building applications with Ajax easy and I have some books in the mail. I figure I'll decide when my big box from Amazon arrives.

On farming the Armory

After reviewing the results returned from the modified Warcraft Armory module, I discovered that the XML returned for the item tooltips (item-tooltip.xml) does not include the item level. This annoyed me slightly since this is information I want to have available in the gear database.

After some investigation, I found that an item's item level (ilevel) is in the XML for the item information page (item-info.xml). So I modified the module again to download item-info.xml for items that are found in addition to item-tooltip.xml. This will make the ilevel available for when I start building the database.

Naming the new "spreadsheet"

One problem with working on any project is deciding its name. I'm running into that issue. And, for me, a name is pretty important.

I've thought about naming it "jadis", at least as a working title, but it doesn't really mean anything for the end purpose. And the girl in the Rumplestiltskin tale doesn't have a name...

Creating a new "spreadsheet"

Back in October, I wrote about redoing my "spreadsheet" for weighing gear choices. However, despite writing, I never did any further work on it.

I'm thinking, though, it's time to rectify that.

Icy Veins

2.3.2 brought us mages a great new talent: Icy Veins. For 20 seconds, we get 20% haste on all spells.

I'm personally not sold on it. It doesn't feel like it does much difference but it obviously does. In an (unfortunately unsuccessful) attempt on Nalorakk on Saturday, it helped me pull 1134 DPS according to WWS. (This is the anonymized report. Phaedra shows up under the name "Horcrux.") (On the actual kill, I only pulled 994 DPS. I must find a way to increase that.)


Subscribe to I Wanna Cast a Spell... RSS