Cube Tool cuesbey.com - purpose-built site for cube comparison

Rob Dennis

Developer
Hello everyone,
I'm a full-time software developer who's been working on a cube-related software development projet for awhile now. This has both been to keep my skills up, and because I think the cube community has a number of "user stories" that I don't think are currently being addressed by the tools we have available.
The first user story I'm taking on is:
"As a cube designer who's interested in finding new cards, I often want to compare my list to other lists I've seen out in the community, and I'm interested in where they are different. These differences may lead me to new cards I hadn't even thought of that I'd be able to check out."
I remember when I first built my list, I was going off of:
  • Andy Cooperfauss's google doc
  • Justin Parnell's OTHER google doc
  • Matt Kranstuber's MTGS post
  • Usman Jamil's pictures of his cards laid out on his tablecloth
And as I'm sure you can appreciate, this made it pretty difficult to get a sense of what people were doing differently (let alone get at the 'why' of those differences). In the absolute best case, you're flipping between two tabs with lists of card names, and maybe you can see some differences.

Well, maybe the difference is because that guy counts Porcelain Legionnaire as a white card, and that guy counts it as a colorless. Maybe someone groups all the spells in a color together, but that person splits creatures and non creatures apart in listing.

Even setting that aside, it's difficult to actually derive meaning from two lists of names side by side, so in software development, the concept of diff tools and particularly, graphical diff tools are useful for this purpose.

Here's a mockup showing what it might look like to compare the first MTGO cube to the Post-AVR update (black had the most changes and was discussed here). The information that was around at that time did make it easy to show "these were 10 black cards that left, and these were 10 that entered" but that does lose a bit of the nuance when you consider that not all those cards were costed the same or were the same general type:

cube_diff_list.png

I want to be able to compare someone else's cube to mine, and do so in the way that I like to lay things out. Now, the way that I lay mine out is different than all of yours, so essentially, we're talking about sorting a cube based on completely configurable parameters, which is kind of a tough task, and although not present in the mockup, I do have all the dials and switches that the system supports up on the deployed version.

So here, check this out:

http://cuesbey.com


This will load the latest deployed version of the cube diff app, and it comes loaded with the before and after card names from that mockup (e.g. the diff of the first two MTGO cubes) but they're just text areas. Enter your own cube! Someone else's cube! I don't care :)

That part's relatively easy, but the part I really need to get right are the controls I want to give designers to control how those two lists are conveyed to you (in they exact way you want):
  • The layout is controlled by that funky text box in the top right (I'm calling it a spec) and it's not really user friendly right now, but if you edit it, it is respected and shows that I'm sorting on the fly. Ideally, there'd be ways to edit this in a more friendly way, and probably saving off the way that you personally like to arrange things
  • The particulars of the sorting are also controlled by the (ugly and waaaay too wasteful of space) checkboxes that allow you to set a number of "heuristics" based on how you lay out a cube. Not all the names are that helpful right now, but check "off color flashback is gold" if you think of Lingering Souls as a W/B card, and "phyrexian always pays life except for abilities" if you think of porcelain legionnaire as a colorless 2-drop but Birthing Pod as a Green 3-drop. There's obviously a lot more there.
The whole thing is opened-source and although I've spent a lot of time on it, and it's good enough to answer the core user story (graphically compare cubes the way you want), it's rough and needs to be improved.

I'd like it if this community at riptidelab helped shape the direction for this project by way of passing on comments, requests, bug reports to the github issues page:
https://github.com/rdennis463/cuesbey/issues

This thread would be a great place to ask questions and for me to report back on when certain restrictions are fixed and deployed (I've been pushing hard this week for release by DGM preview season, but I'll need to dial it back to keep family stuff in perspective/priority).
 

Rob Dennis

Developer
protip: there's a 10000 character limit for posts (I assume that includes formatting characters). Here's the rest:

Current caveats and known issues (aside what's in the issues link):
  1. everything looks ugly and the spacing/real-estate usage is so wasteful the site, while functional, isn't really usable
  2. there's not great feedback to the user in the event something goes wrong; it's bad that a new person could hit "diff" and nothing happens, and they'd just give up and leave
  3. the spec needs a different editing widget that's actually easy to get the result you want
  4. the layout of >2 tables on a tab isn't going to be great and isn't going to scale well
  5. If you type in card names the backend hasn't seen before it takes about a second per card for that to come back to your browser, although as they start coming in, the page should be updating incrementally. If you decide to be funny and copy+paste in all of Homelands your browser will be less responsive than I'd prefer and you may need to refresh the page)
  6. Limitation of the system: all the card info is being pulled from gatherer.wizards.com (using this sweet project) and there have been cases where gather is wrong, or not working, or updates and breaks APIs sooooo yeah be prepared. It's cached after we get it the first time though so we're not hammering their server or at risk unless we're fetching stuff for the first time.
    1. a current issue for example, you can't currently find anything using "Juzam Djinn" since it doesn't have the accented "a"
You'll see me and maybe some other folks linking to shared diffs and I think that's a good way get the word out. I feel like people seeing it in action is all it'll take :)
attached is a shot comparing the black sections of the first two modo cubes :)
which is this link:
http://cuesbey.com/#/9ef198ba-5550-45ec-a10d-10bcf122ac2b
examples of the kind of feedback this thread is good for:
new heuristics or descriptions of the ways you'd prefer to lay out your cube in this tool. You could even link your personal google doc setup, since ideally this tool compares any random list to your cube and displays it in the format you'd use in your google doc (if you had one).
Great example, I realized in one of CML's lists, he had Bloodhall Ooze:
Image.ashx

this would be in most people's 3-color section, but I didn't know that this card existed until I saw it in his list.
 

Attachments

  • Screen Shot 2013-04-24 at 10.25.30 PM.png
    Screen Shot 2013-04-24 at 10.25.30 PM.png
    132.7 KB · Views: 0

Eric Chan

Hyalopterous Lemure
Staff member
Thanks a ton for reposting this, Rob! Like I said you to earlier, I really admire the hard work you're putting into your diff tool. I've been using it over the last day or two, and I have to say it's a godsend. It's about 100x more effective than bringing up two Google Docs and trying to eyeball the differences. You have my gratitude!

I'm gonna immediately drop a feature request for a heuristic: Shrine of Loyal Legions counting as white, and Shrine of Burning Rage counting as red. Pretty please?

(Also I think I broke your website just now. Um, I mean.. it wasn't me! I swear!)

Edit: pesky default forum settings.. upped to 100,000 characters
 

Rob Dennis

Developer
I just tried it and it looks ok? But the fact you don't know for sure if it's broken or not is B-A-D and is an excellent example of bullet 2 up there :(
this is assuming "I broke your website" means you clicked "Diff" and nothing happened after a few seconds.
I'm tracking an annoyingly intermittent bug that could be related here:
https://github.com/rdennis463/cuesbey/issues/17

excellent suggestion about the shrines, I classify them that way as well, here's a ticket I opened for it:
https://github.com/rdennis463/cuesbey/issues/19
 

Eric Chan

Hyalopterous Lemure
Staff member
It's weird. If you go to the front page, you get an HTTP 500 error. But if you have any link saved up, say for your own cube, and go directly to that, it works.
 

Rob Dennis

Developer
ugh, this has all the worst warning signs of caching (on the server side or client side) gone wrong.

http://support.mozilla.org/en-US/kb/how-clear-firefox-cache
http://support.google.com/chrome/bin/answer.py?hl=en&answer=95582

my theory is that at one point either one of you went to cuesbey.com's main page and there was an error page up (this did happen once or twice over the last week) and your browser cached it and loads that instead of hitting the server for the things it's supposed to.

when you have a link to a saved diff, that's a new URL and the browser correctly asks the server for all the information that it should.

if that doesn't work than geez, I'm in trouble. It isn't necessarily going to be authoritative, but I'm showing things as ok for the front page from:
- http://www.downforeveryoneorjustme.com/cuesbey.com
- cellphone (at&t 3g)
- work computer
- home computer

I'll check the logs tonight and hopefully I actually have that part set up right.

I actually came to say that I closed two annoying bugs:
- https://github.com/rdennis463/cuesbey/issues/18 - you should be able to copy+paste a cube in deck stats into one of the text boxes and it works (if they let you do weirder things like tappedout I might know about it)
- https://github.com/rdennis463/cuesbey/issues/14 - the moment someone searches for a know with a non-ascii character (like Jötun Grunt) other folks can find it using Jotun Grunt (e.g. with the ascii-equivalent character), this could be done better, but the tool I'm using to get card info from gatherer needs to be fixed

meaning the next time I have some time (should be tonight), I'll be working on Eric's suggested heuristic :)
 

Rob Dennis

Developer
alright, took me a lot longer than I wanted, and I'd just like to say, I'm thankful that magic, for how complicated it is, has pretty consistent templating
 

Jason Waddell

Administrator
Staff member
Okay Rob, I don't know if this is your wheelhouse, but here's my #1 cube related need:
A good place for me to store and edit my list. Both TappedOut and Deckstats are a complete pain, as they transform your list into just 360 card names one after another. It's for this reason I do all my editing in a .txt file, so I can see (visually) how many white one-drops I have, etc. If there were some interactive thing that looked like a "diff" that I could use for managing my list, I would use that instead of a .txt file. Then I wouldn't have to transform the list into the appropriate format to upload to different sites. Right now it's a big hassle.

But what I'm asking for sounds like a ton of work, so it's probably not near the top of any priority lists.
 

Rob Dennis

Developer
Well, part of where I want to grow this project is to allowing people to let their list live in cuesbey and then do stuff with it (compare them, draft them, analyze them), so it's definitely in my wheelhouse.

What's very important though, is understanding the kinds of things that you want to be doing, so allow me to reflect back what I'm reading:
  1. you have your current cube list, and ideally, this is in a format that you can visually interpret and understand what's in your cube
    • "Ah yes, I see here, after looking at this list again that I'm a bit light at the green 3-drop slot"
  2. you want to be able to manage your list by way of adding, removing, or replacing cards
    • "I'm tired of being stuck at 360, I want to allow 10 drafters at once so I need to add 90 cards spread across all the sections"
    • "Dragon's Maze is out huh? Well, Scion of Vitu-Ghazi is pretty nice, maybe I'll bench Cloudgoat Ranger
    • "I'm tired of managing a 720 card list when I'm 1v1 drafting all the time, I'm making some cuts from each section"
  3. While making these changes, you'd like the visual representation to update without a pause or refresh that breaks your workflow
    • ""Well, I'm 90 cards bigger/smaller but all the curves look about the same, so that's nice."
    • "I've made all my Dragon's Maze changes, and while I was doing that, I didn't notice any big sort of visual change."
    • "Oh god, I've cut too many White 1-drops. Better re-add some Steppe Lynx."
If these are the three things you'd need to do what you need to do, I think that's supportable using a lot of the machinery that's already in place with the cube diff stuff, and I could describe the process I'm going through for my main cube where I'm adding DGM:
Main cube (adding new DGM cards, and retooling black):
here's my pre-DGM list: http://cuesbey.com/#/b90ab39f-ac3f-4ea1-bdf6-e03333302f99
  1. for fun, why don't I copy the left to the right section (http://cuesbey.com/#/784916ba-f445-40c2-b97c-c3ef89a500c0)
    • now everything's blue, that's nice I guess
  2. I say to myself, "hmm, I think I want to get in that Scion guy, and at the 5-drop creature slot, looks like Geist-Honored Monk could take a break
  3. ctrl-f for Geist-Honored Monk and find it in the right side, replacing it with Scion of Vitu-Ghazi and hit diff (http://cuesbey.com/#/8620f280-434e-446e-a504-52793e6c9f91)
  4. repeat 15 or so times for each card I want to add
if I skipped step 1, and replaced the monk in the left side instead I'd still get that visual representation of my list (although Red :o )
that might be something to consider for now, if only to give me some feedback on where you'd like a real tool to give you more targeted help with your user stories :)
 

Jason Waddell

Administrator
Staff member
I currently work in this setting:
UgSOZX8.png


It lets me see things clearly, take notes, easily make swaps, and is lightweight. But then I have to do all sorts of BS to get my list on cuesbey or any other site.

I'd rather work in this setting.


And just be able to delete and edit cells as though it were a spreadsheet program.

I don't want to touch this:
we8MWvo.png
 

Rob Dennis

Developer
three things:
- I think if you just straight copy and paste the text file (as you've presented it) into cuesbey cube diff, it *should* ignore the lines that aren't cards and show you the curves (if you want to quickly compare or look at it,)
- I think that the desired cube-editing side of things for cuesbey is definitely targeted at all the folks out there with google docs (who use them instead of tapped out, etc. for all the reasons you mention; and it sounds like you would prefer that over a text pad)
- pictures are good, yay pictures

An extremely naive implementation of what you want, is relatively doable (although not til later in May since we're in the middle of moving):
- I start with the current cube diff page
- chop off one of those giant text areas at the top
- add a little delete button to each cell, clicking it is equivalent to finding and deleting one of the names from text area at the top and hitting 'diff'
- add a text input box to the bottom of each column, adding a name there is equivalent to adding a card name in the text area at top and hitting 'diff' (i.e. if you "add" an Inferno Titan in the the White 1 drop column, it's still going to be sorted to the Red creature 6 drop column on a different tab)

I'd be interested in hearing if this is close enough to be worth using, and if it is, if you'd be interested in using it and providing me feedback/user stories when I get a chance to actually develop again
 

Jason Waddell

Administrator
Staff member
Well, I think the first priority would be the ability to save a list more easily? Or would I have to keep track of the diff link?

The main concern is that I have to put it somewhere for people to be able to see it. Maybe I can just save half-blank diff links for now? If all I have to do is C/P my notepad file over, then that addresses a lot of my issues already. The main problem has been that the tools I use for managing my list and sharing my list are about 0% compatible.

I like the text pad in that things go exactly where I want them (unlike TappedOut, which rearranges everything). I suppose as long as you have enough checkboxes I can get things to go where I want them here too. Well, maybe. I jam hybrids in mono slots. There's not really a systematic way to code that, because I don't have any real system there. Being able to manually place things (re: Inferno Titan) is a little desirable, but not a dealbreaker by any means.
 
By the way, have you guys seen this very new site?
http://www.cubetutor.com/analysis/67
Very simple analysis, but very well presented, and a draft function that tracks your picks and (I believe) learns. Obviously, a total different project from cuesbey, but I thought you might find it interesting.
 

Jason Waddell

Administrator
Staff member
It's definitely something worth keeping an eye on. The statistics section is a little rough, but I'm admittedly always a little critical in that department. As far as I can see there's no way to run a multiplayer draft, correct?
 

Rob Dennis

Developer
By the way, have you guys seen this very new site?
http://www.cubetutor.com/analysis/67
Very simple analysis, but very well presented, and a draft function that tracks your picks and (I believe) learns. Obviously, a total different project from cuesbey, but I thought you might find it interesting.

I saw cubetutor today and seems pretty sweet. On my to-do list after moving next week is to reach out to cubetutor and see if there's anything worth collaborating on. Cuesbey won't ever be more than a part-time thing for me, but I think he's doing it full time so he's in a better spot to help out the community.
 
Top