Introducing CubeTutor.com

Rob Dennis

Developer
I'm starting to think that the cost of supporting custom card images is a little too great in the case of decks and should just store references to card id's instead. Either that or stop actually deleting records when cards are removed from a cube.

not sure how your schema is set up, but tables that track one-to-many/many-to-many references between other tables are usually pretty inexpensive to query as long as everything's indexed correctly. This may be a vote for not deleting records, but as you say, there may be a judgement call on if the added difficulty is worth the cost when it comes to custom card images.

As someone who's not into foiling/altering my cards I don't personally get a lot of value-add from custom images, but I could see the same backend being leveraged by both custom cards and errata'ed cards, which I'm more likely to use.
 

lebenski

CubeTutor Developer
I agree Rob, I think the cost of losing customised card info vs the additional data is a no brainer. I have just completed a fix for this on my development machine. So when cards are deleted they are now just flagged in the DB rather than deleted completely. This means that decks can continue to show cards that are no longer active.

I'll release this in a couple of days when I've had a chance to perform some more thorough testing.

Like you mention, errata is another great use case for this. I would love to see completely custom cubes like The Booze Cube on Cube Tutor soon!
 
Hey Ben,

I told you already, but amazing site.

This is either a feature I don't know how to use, or a feature request. :)

I bulk uploaded my list. If I make changes, it creates a blog entry and updates my list perfectly.

But would it be possible to have a way to reverse the last change and delete the blog entry, in case you mess up? I made DGM updates and accidentally messed up one card title. Instead of making a second update and post with just the weird second change that was just the correction, I deleted the whole cube and did a fresh bulk upload so it wouldn't look weird.

But I do like the way it works to document updates - I just know that if I had made several sets' worth of updates I probably still would have deleted and started over if I'd made that kind of entry error.
 

lebenski

CubeTutor Developer
Hey shaybo,

Deleting and Editing of Blog Posts is something that has been a long time coming, I've had a lot of requests for this. It is very high on my priority list so I will get something out in the next release or two.
 
Hey Ben!

I'm a newbie here at Riptide who just signed up to provide some feedback on Cubetutor. I've been using it pretty actively for several cubes in the last couple months and have recommended your site to several friends already. I do believe you're in the process of going viral, and I suspect your user information confirms that ;) First and foremost, I wanted to thank you for the incredible tool you've created here, as well as the openness you've been demonstrating through development so far! You have an excellent start on something here that could be a huge asset to your career if everything goes right. I know I'll be rooting for you!

I've come up with a short list of feature proposals that I'd like to submit for discussion:

-Re: cards in decklists subsequently deleted from the cube. Second the recommendation of others to partially move to a more generic id system that supports retaining deleted card info, BUT: Add highly visible text high on the page announcing that X cards in the deck have since been removed from the cube and optionally designate those cards in the list view (but not in the popup image) somehow (an icon on a corner of the card? shade the card heavily? overlay a large icon on the whole card image?)
-Cards at the bottom of the screen have unreadable popups, because the popup increases the page length and hides the bottom half of the card, but scrolling down to view the hidden section removes the popup and shortens the page again.
-When drafting, popups of cards seem unnecessary since you're displaying all the cards in visual format already. Could the draft view be rewritten with no card popups, and instead bringing the card currently under the mouse to the front? This would maintain the compactness of the view as well.
-A "See older posts" button for the Blog would be nice.
-A link to this forum should be somewhere accessible from everywhere on cubetutor.com, under "Feedback" or something similar.
-Seconding of course the many requests for edit/delete of Blog posts and saved Decklists, both by the submitter and the owner of the relevant deck or cube.
-Opt-in notification by email and a notification icon on the site (take inspiration from social media here) when someone other than you: saves a draft deck in your cube, comments on something you 'own,' replies to one of your comments
-At the end of a draft, at the deckbuilding screen, show a small diagram with the position of the human drafter and the bots and the colors that each bot was in. Optionally, allow clicking on a bot to open their draft pool for deckbuilding.
-In deckbuilding and with saved decks, add a new string to the deck breakdown for "Total Lands: X", either before or after the Basic Lands count.
-I've also been thinking about the correlation of cards issue for bot picks, as well as for player analysis. The amount of additional cloud service you're willing to pay for is a big question here, but maybe these ideas will excite you. From saved decks only, track the frequency with which a card appears in conjunction with each other nonbasic land card, as well as the total # of land it appears with. Separate these statistics for the relevant cube and across all cubes. This information could then serve as a basis for a huge amount of user service and tweaking of bot pick orders. For example: bots consider curve and card coincidence rates when picking, or a "suggested card" section for cube lists that shows cards that appear in decks with cards you already have sorted by calculated coincidence rates, plus user-adjustable settings for price/format etc.

I'm sure I've already listed far more than enough, and I'm eager to hear feedback you may have. I would also second the recommendation of others to partner with some sort of online store for card links if you're looking to recoup some of the costs of the site and still keep it free and ad-free.

Thanks again for all the incredible work you've done so far!

EDIT: PS: wrote this wall of text while in the middle of a CubeTutor draft. Looks like UR tempo aggro!
 

Jason Waddell

Administrator
Staff member
Hey Ben, what software are you using for creating your analytics graphs? I have some ideas for improving the visualizations.

Another thought I had regarding the pick orders it seems like things might get "stuck" in a suboptimal place. Like let's say my list starts off with people picking lands late. Now I never have to pick lands super early because I know the bots will pass them on through. In an actual draft that would stop happening because somebody would exploit the inefficiency.
 

lebenski

CubeTutor Developer
Hey Sam,

Thanks a lot for taking the time to register on RiptideLab and put down so many thoughts and ideas, some great stuff here! Here are my responses:

-Re: cards in decklists subsequently deleted from the cube. Second the recommendation of others to partially move to a more generic id system that supports retaining deleted card info, BUT: Add highly visible text high on the page announcing that X cards in the deck have since been removed from the cube and optionally designate those cards in the list view (but not in the popup image) somehow (an icon on a corner of the card? shade the card heavily? overlay a large icon on the whole card image?)

Completely agree on this. I've actually decided to not delete cards from my DB that are removed from a cube, this means that as well as retaining the cards in deck lists, any custom images will be saved . I like the idea of marking deleted cards on the deck page and this should be super easy given I now have an 'active' flag.

-Cards at the bottom of the screen have unreadable popups, because the popup increases the page length and hides the bottom half of the card, but scrolling down to view the hidden section removes the popup and shortens the page again.

This is a long standing bug that I really need to fix but people never talk about this sort of stuff so it's fallen down my priority order! Thanks for reminding me that it is important.

-When drafting, popups of cards seem unnecessary since you're displaying all the cards in visual format already. Could the draft view be rewritten with no card popups, and instead bringing the card currently under the mouse to the front? This would maintain the compactness of the view as well.

Would it only be possible to see one card at a time using this approach? I like the idea that you can see the pack at a glance. Have probably just misunderstood what you mean here!

-A "See older posts" button for the Blog would be nice.

The blog page is paginated meaning you can scroll through the older pages at the bottom.

-A link to this forum should be somewhere accessible from everywhere on cubetutor.com, under "Feedback" or something similar.

Definitely! I'm currently working with the Riptide Lab guys to look at some kind of single sign on or bulk registration of Cube Tutor users on Riptide Lab. This would make the whole thing seamless and would avoid having to login twice.

-Seconding of course the many requests for edit/delete of Blog posts and saved Decklists, both by the submitter and the owner of the relevant deck or cube.

Thanks, it's high up there on my to-do list :)

-Opt-in notification by email and a notification icon on the site (take inspiration from social media here) when someone other than you: saves a draft deck in your cube, comments on something you 'own,' replies to one of your comments

I don't yet have any infrastructure for sending out automated emails, but when I do these kind of notifications definitely be implemented. It's one of those things that people just take for granted in 2013 so I need to do it.

-At the end of a draft, at the deckbuilding screen, show a small diagram with the position of the human drafter and the bots and the colors that each bot was in. Optionally, allow clicking on a bot to open their draft pool for deckbuilding.

This is a nice idea! At the moment the bots individual performance may look a little suboptimal! As a collective they ensure that desirable cards are not passed, but that have no means to build a synergistic deck individually. That said, I'm not looking to hide it or anything and it would be a good way to see them improving as the algorithm improves.

-In deckbuilding and with saved decks, add a new string to the deck breakdown for "Total Lands: X", either before or after the Basic Lands count.

Added to my list!

-I've also been thinking about the correlation of cards issue for bot picks, as well as for player analysis. The amount of additional cloud service you're willing to pay for is a big question here, but maybe these ideas will excite you. From saved decks only, track the frequency with which a card appears in conjunction with each other nonbasic land card, as well as the total # of land it appears with. Separate these statistics for the relevant cube and across all cubes. This information could then serve as a basis for a huge amount of user service and tweaking of bot pick orders. For example: bots consider curve and card coincidence rates when picking, or a "suggested card" section for cube lists that shows cards that appear in decks with cards you already have sorted by calculated coincidence rates, plus user-adjustable settings for price/format etc.

What you describe here both in theory and implementation is exactly where I would like to get to. Making relationships between cards based on the frequency that they are drafted together (Entomb + Exhume) to improve the bots drafting ability. Given the volumes of data and the nature of querying required, leveraging the scalability of the Cloud with some kind of optimised NoSQL setup (Apache Cassandra maybe) is what I'm thinking. It would be a big undertaking but I certainly don't lack the ambition to get there.

Thanks again!
 

lebenski

CubeTutor Developer
Hey Ben, what software are you using for creating your analytics graphs? I have some ideas for improving the visualizations.

Another thought I had regarding the pick orders it seems like things might get "stuck" in a suboptimal place. Like let's say my list starts off with people picking lands late. Now I never have to pick lands super early because I know the bots will pass them on through. In an actual draft that would stop happening because somebody would exploit the inefficiency.

Hey Jason,

I use Google Charts for the Analysis page: https://developers.google.com/chart/ Would be interested in hearing your ideas!

I hope that the potential issue that you describe with the pick orders is mitigated by the fact that the cards are ordered using a ratio of pickCount : passCount. If Tundra starts off at 1:5 then people start picking it, the ratio improves to 8:6 then it will shoot up the pick order. I guess if someone wants to train their bots poorly then that's up to them but it would be quite a boring process! and the bots will also be influenced by drafts from other people too so I guess you could say those other human drafters would exploit the inefficiency?
 

Jason Waddell

Administrator
Staff member
I'll code up an example alternative in D3 when I have time. I mostly do static graphs in R and only dabble in web graphics. In the meantime:

So4xLKg.png


This is a bit of a classic case of a graph that has all the information but takes much longer to process than it should. For example, let's say I want to think about the curve of my green section. I have to train my eye on the green bar, then try to find it again at the next CMC and so on. It actually takes several seconds and a lot of brainpower to even figure out what that curve looks like, let alone the others. Unfortunately the Google Vis options aren't too great here. In custom graphics you can turn it all into a line-chart and provide some offsets so that the lines don't all overlap.

Another option might be to vertically stack a bunch of histograms, one for each color. This lets you see the distribution of each and make some immediate comparisons regarding shape.

A third option, which Google Vis can't do very well, is to give them an interactive toy for displaying and visualizing the curves of one or two colors at a time. You can do this selection thing in Vis, but only if you trick it into believing it should be a motion chart.

bYr1G0r.png


As a general rule of thumb pie charts are terrible for comparisons. It's actually really hard for the human eye to compare sizes of slices, especially ones that aren't next to each other. Tack on the fact that there are so many that that not all the numbers show up at once, and the need for the eye to consult the legend for the colors, and you have a visualization that is functionally worse at presenting the data than a simple table of values. The general solution for this is to use bar graphs, as they are really easy to make comparisons with.

For reference, see these slides I made!

CmmDcdp.png


VxIiv5m.png
 
If you change the set a card is from in "Edit List", it won't affect what version of the card shows in your Visual Spoiler, or during your drafts, right? Is it supposed to? Just wondering if it was only me/working as intended.
 
How difficult would it be to add color profiles for the color pairs that were "black OR blue", for split cards and hybrids (Far//Away or Nightveil Specter) so that the draft bots would take those cards higher if they were playing one color but not both?

Or are the color profile selections in 'edit list' just for your own bookkeeping and don't apply to bot drafting?
 
Top