X-Wing List Juggler

By sozin, in X-Wing

just finished a major refactoring of t he database schema to introduce a new table, 'list_archtype'.

previously every list was being stored as a unique collection of ships/pilots/upgrades. so BBBBZ, which shows up 100+ times in the database, was being stored 100+ times. this was a) having performance impact and b) getting in my way of implementing the archtype tagging feature that we discussed here on the boards a few months ago. so I introduced a new table, list_archtype , that represents each unique list. when a new tournament list gets entered, it'll refer to the archtype list (if it exists), or a new archtype list (if it doesn't). right now there is about a 2.5-1 ratio between tournament lists (9,357 list) and archtype lists (4,237). all of the archtypes can be browsed here .

in general, my original design is starting to creak under all the data the community has thrown at the site. there are a still a few performance issues. 1) fetching summary data of the number of tourneys, lists, ships, upgrades, points spent is taking too long for my taste. I've disabled that for now. 2) fetching the tourneys list is also taking a bit too long (~4 seconds), which is annoying, since it is the 'home page' for the site. I'm going to work on fixing that next. 3) the top lists page now generates its cache much faster (~30s instead of ~100s), which is good, but the cache generation should be way faster.

I also added checkbox for 'nationals' in the charts page. here's the elimination view of all the nationals played to date:

21354334930_814c929f93_b.jpg

after refactoring the schema my tableau views are all messed up, and now very out of date. I'm thinking about dumping tableau and just doing the key graphs by hand.

so ... plenty of work still left to do before I think I can move past this little project and take on a cool project that geordanr and I have been putzing around with !

a few updates.

1) beta version of list tagging has been rolled out. http://lists.starwarsclubhouse.com/archtypes is a list of all the archtype lists ever submitted. the third column contains a few tags that I added in. if you go to a list; for example, http://lists.starwarsclubhouse.com/archtype?id=10324 (BBBZ), you'll see a few tags I've added.

2) I'm got access to TOME yesterday! Yay! Gonna start working on the import code to send from TOME to juggler.

I guess that means it's time for me to get off my ass and add functionality to import their save file.

Wave 7 has been out for... a couple weeks now, and 4x Thugs + TLT + unhinged astromech is already #17 on the list. Interesting. I should eventually get around to writing some scripts to read the data and do other cool things with it. No time right now though.

Does this site work for Epic tournaments as well? We were used to putting every tournament in, but when we tried to put in an Epic tournament, the only list that was recognized as valid was the one which didn't have any Epic ships!

When manually inserting list data I'm also getting something went wrong, got response 'Invalid value for 'ShipType': u'raiderclasscorvetteaft' , so it's not recognizing the Epic ship fields.

hey chilligan!

sadly no support for epic ships :-( it is on the todo list, but not anytime soon.

If I seem to have your attention for a moment, a slight typo. Could you please change the country name from "Romainia" to "Romania"?

Also, make sure to rename the Islamic State to Qurac (Kurac).

Also, make sure to rename the Islamic State to Qurac (Kurac).

I don't think my request was unreasonable, you wouldn't want your country's name to be botched either. It messes up people searching for events near you. It's not a big enough issue to contact sozin just for that, but I thought I would bring it up since I already asked about Epic.

Just in case it would take too long to fix, here's a git patch that would fix it in the database creation scripts and in the online form. I'm assuming those scripts remake the entire database, so anytime you'll want to do that you can apply the patch. On the other hand, it's just one venue...

https://drive.google.com/file/d/0B53ChYYlrNita1p4cnpRU21RblU/view?usp=sharing

Not unreasonable at all, thank you for the patch! I've pushed out the Romania change :-)

added the TIE/fo expansion pack and the T70 expansion pack.

minor feature update: if you visit an archtype from the ranked archtypes page (for example my fav Han+Jake archtype ) it will show you the tournament results of that archtype.

bigger picture, we're coming into store championship season and I need to do some stuff / fix some things in preparation. for example support FFG's new TOME output .

Is it just me, or is that JSON pretty gross?

Like the "Tiebreaker:#" part, with everything listed a couple extra times. Why doesn't the first Han or Chewie have a tournament_pk field? Why are all of the *_pk fields negative numbers? What is intended to be conveyed with all the "entityAspect": {"entityState": "Unchanged"} stuff?

its pretty gritty. I think we're getting some dump of their internal ORM. negative primary keys ... wild.

Edited by sozin

some updates.

0) updated to have every upgrade/pilot/ship that is live on Vassal.

1) my next task is to add a new concept to listjuggler: 'league'. right now it only understands tournaments, and I want folks to be able to enter data from the xwing vassal league .

2) working with geordanr to use his data schema for all the ships, pilots, and upgrades because I'm getting tired of typing. he's got a really nice solution that we're thinking of here. I'm excited, because when I roll over to his stuff I can a) kill a bunch of code (the dream of every developer), and b) completely gut the listjuggler list builder to be super dead simple -- I'm not going to have any combo boxes or anything, you can just start typing and it'll figure out what you mean.

3) haven't heard back from FFG on their output format. trying some other avenues here, not confident :-(

some updates.

0) updated to have every upgrade/pilot/ship that is live on Vassal.

1) my next task is to add a new concept to listjuggler: 'league'. right now it only understands tournaments, and I want folks to be able to enter data from the xwing vassal league .

2) working with geordanr to use his data schema for all the ships, pilots, and upgrades because I'm getting tired of typing. he's got a really nice solution that we're thinking of here. I'm excited, because when I roll over to his stuff I can a) kill a bunch of code (the dream of every developer), and b) completely gut the listjuggler list builder to be super dead simple -- I'm not going to have any combo boxes or anything, you can just start typing and it'll figure out what you mean.

3) haven't heard back from FFG on their output format. trying some other avenues here, not confident :-(

Great stuff, Sozin! Thank you!

Ok, a bunch of updates.

1) League play is basically in there. Head over to http://lists.starwarsclubhouse.com/league and have a look! LJ is now integrated in with Challonge via its API . Some good news on that front -- the Challonge devs told me they are going to be implementing ELO! We can retire the current Challonge ELO site (after porting all the data of course; the old ELO site has become abandonware BTW).

2) Back in October I left my job and consequently lost my Tableau license. So the Tableau data got stale. Blair pestered me into implementing some of the graphs in native Highcharts, which I'm happy to demo! There is a new time series charting page that shows you some of the information set over time (starting in Nov '14, after Worlds). Right now I've got implemented total ships over time, faction over time, and ships over time. Next up is to add some filters to ships over time (tournament type, faction, elimination rounds) and then to add pilots over time, and finally upgrades over time.

On the ships over time graph you can click on the ship name to remove/add it to the graph. For example, if I remove everything but Phantoms:

24592815920_a93393fd74_b.jpg

Ah, Whisper, I only sort of miss ye.

Did the Imperial Raider have much of an impact on Tie Advanced being played? You betcha:

24770371472_902efc0e71_b.jpg

Finally, a question Blair asked me: the B-wing dominated the stats last year, how is it doing this year? Here's B versus Y:

24261414823_ae39133062_b.jpg

Edited by sozin

Ok, a bunch of updates.

All the likes.

It would be great to be able to see things as a fraction-of-total too. Perhaps the stacked line graphs? I've used highcharts a little for work, so let me know if you hit snags (only a slim chance I'll have anything to help with, but it doesn't hurt to ask).

The Y-wing is just the horse for both S&V and Rebels right now I think it's going to jump up even more after Wave 8 because S&V will have more options to build around it. I think two starfighters and two y-wings will be pretty popular.

The Ties are just killing it right now as well, though, right up there with the Y's. I think the meta shift from wave 7 has favored them a bit as well as crackshot and the new Gozanti pilots.

T-70 is the 3rd most popular ship right now Sozin said 90% is probably Poe and I'd have to agree.

Have to absolutely love the variety, though. In January the only things that saw minimal play were the bomber, which is going to change, and the scyk.

Love it.

Only detail that messes with me is the month of February always indicating a dip in all stats, just because we're early in the month. Either project or remove that current month altogether? I have no solid solution.

Thanks for the positive feedback guys. WG, you are the third person to ask me for stacked percentage graphs (Antigrapist and Blair also asked), so I'll do it :-)

Ok, here's faction as a stacked percentage. ships next.

24807533801_6101ed21a0_b.jpg

Ships are done.

24605576710_dd403a2183_b.jpg

Ships are done.

24605576710_dd403a2183_b.jpg

I really like this view. Something I would like added because I'm lazy and love demanding work from fellow engineers is a single button that would result in "only rebel/imperial/scum" ships being shown. I'm a lazy bastard and don't want to click a dozen times to get see how my rebel scum are doing.

The time graphs are fantastic! Any way you can add line segments to indicate wave releases? As I don't have the months of the releases memorized, that would be extremely helpful.