Fantasy Ultimate : Wireframes

76 views
Skip to first unread message

Louis Abramowski

unread,
Sep 28, 2012, 11:41:19 PM9/28/12
to leaguevine...@googlegroups.com
Hi All -

I'm attaching paper-prototypes/wireframes for the few screens we'll need for the fantasy ultimate app.  Other screens needed are simply derivative of these.  I'm lining up a front end developer to put HTML/CSS/JS behind these (hopefully) starting Tuesday -- update later.

These cat scratches and sloppy handwritings should give an idea of what we'll need.

Feedback? Questions? …. should these be posted in github? :)

Lou
screens1-2.JPG
screens3-4.JPG
screens5-6.JPG

Dominick

unread,
Sep 29, 2012, 2:15:39 PM9/29/12
to leaguevine...@googlegroups.com
Very poor drawing of table dependencies in the DB.

Depending on how interesting TV is later I'll write up some field lists.  If anybody sees this and has any comments or suggestions, please let me know.
--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-devel...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.


--


With regards,

Dominick Smyth,

Dublin Youth Ultimate
086 150 73 33 

Dominick

unread,
Sep 30, 2012, 9:20:27 AM9/30/12
to leaguevine...@googlegroups.com
Try that again.



With regards,

Dominick Smyth,

Dublin Youth Ultimate
086 150 73 33 


Untitled drawing.pdf

Chadwick Boulay

unread,
Oct 2, 2012, 10:19:20 AM10/2/12
to leaguevine...@googlegroups.com
Hmm... none of the images are available using the google groups interface. I have them in my inbox at least.

It seems that a lot of the interface requires knowing who the user's FB friends are. I'm guessing that this isn't something you want to store because it may change.
I've never used the FB API so I don't know what to expect. Do you think querying for a user's friends and then intersecting the list of friends with the list of users on the site on every page load might be a little slow?

When adding friends to a league, there should be an option to invite by e-mail address. Maybe I'm old, but there are definitely some ultimate players' e-mail addresses that I know but I haven't friended them on facebook.

The tab header when browsing leagues should probably look like "MyLeagues > Greatest League", presuming users can belong to more than 1 league.

Just for fun, maybe the icon to indicate removing players from your roster should be little scissors, so people can enjoy saying, "Yeah, I cut Beau from my team because he wasn't producing enough".

Louis Abramowski

unread,
Oct 2, 2012, 11:23:53 AM10/2/12
to leaguevine...@googlegroups.com
Hi Chadwick -

I'm trying to keep the features in a MVP state.  Adding email addresses adds a couple of features: 1) invite and 2) login via u/p (rather than just FB).  Let's get everything done and if there's time, add the email address invite.

The FB API can be slow.  It may be faster for the user in the long run if we can store a user's friends, then update it in the background with each visit.  But if it's a much shorter path for us to just to rely on the FB API in real time, we can do that.

I like the "MyLeagues > Greatest League" header (I meant to include that).  But let's not worry about letting a user manage multiple leagues right now.  A user will only manage 1 league for now (as well as appear in the "overall" standings).

I like the cut metaphor.  I'll see what the designer can come up with.

Any progress on DB?  Anything else from anyone?

Thanks!
Lou







--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.

Ben Demboski

unread,
Oct 2, 2012, 12:41:21 PM10/2/12
to leaguevine...@googlegroups.com
If we want to allow users to invite friends using their Facebook friends list, then we have to use the Facebook app requests infrastructure (https://developers.facebook.com/docs/requests/). This is because unless a user has authorized our Facebook app, we cannot access their email address, even if they are a friend of a user that has authorized our Facebook app. So we could show the user a face pile of their friends and manage friend selection, but then all we would have is a list of Facebook UIDs, and no APIs exist to get contact info for those friends or to message those friends in any way. Instead, we have to use the app requests platform dialog.

App requests are those little things that show up in your notifications tray, or in the areas to the left or right of your feed saying that your friend invited you to play Farmville or Mafia Wars or SongPop or whatever, and they were designed for exactly this case (inviting a friend to play a game). To send app requests, we use the client-side SDK to show the requests dialog, the user chooses a bunch of friends, they get sent the requests and we get a callback with the Facebook UIDs of the friends they chose. This would allow us to store them in the database and show that they are part of the league before they actually arrive at the site and sign up. It would also obviously allow us to secure the league and only let people in that were invited.

The sticking point here is that using app requests requires that we have a Facebook canvas page. A canvas page (https://developers.facebook.com/docs/guides/canvas/) is when somebody else's content is delivered as an iframe within Facebook -- I'm sure everybody has used them. If not, go play a game on Facebook and then you've used one. We could make our entire app live in a canvas page (which would mean that we'd want all of our pages to be able to live comfortably in a 760px-wide window), or we could just make our canvas page a landing page for folks that have received invites that allows them sign in (authorizing our app), and then get redirected on to our actual site.

I don't think there is any reason to cache a user's Facebook friends list. We won't be rendering the face pile that they use for invites, and somebody has been invited into a league (or has signed up), we have their Facebook UID and can just link straight to their profile pic (e.g. https://graph.facebook.com/1268388916/picture?format=square).

I've been holding off on getting into the API integration because I'm not really sure what our data flow should look like. I've never really played fantasy sports before, so please excuse me if any of my assumptions are way off. As I understand it, there's a bunch of "event" data in Leaguevine that is periodically updated. For a given player, all that data gets mapped to a score based on who is on their team and a bunch of rules for how many points different events are worth. So, it seems like we have a few options:
  1. Don't store any event data in our DB -- we just manage leagues and rosters and implement the business logic for mapping and that and a set of event data to the state of a league. Anytime a user arrives, we figure out what leagues we need to render, retrieve all the relevant data from Leaguevine, do all the math, and show them the state of their leagues. Simple, but likely prohibitively slow.
  2. Store a cumulative score and a "cursor" into the event data for each team in our DB, and update on-demand. This would mean that when a team is created, we retrieve all the relevant data for that team, compute their score, and store their score in the DB along with a cursor into the event data (probably the timestamp of the newest event that we processed). Then, whenever we need to render a league, we iterate through the teams and retrieve all data since the cursor and update the scores and cursors. I suppose we could also keep a league-wide cursor rather than per-team.
  3. Same as (2), but instead of updating synchronously and on-demand when we need to render a league, we would just update every team as a background process periodically (on a fixed schedule, or configured to happen when we know new data has been generated).
Am I thinking about all of this correctly? If so, I'm guess we want to do (2) or (3), meaning that the API integration needs to happen server-side. I don't really care right now about the distinction between (2) and (3), as it doesn't affect the API object, and probably doesn't even affect the code that calls into the API object (just whether *that* code is called synchronously from within a client request, or just in a background task).

B

Mark Liu

unread,
Oct 9, 2012, 8:48:23 PM10/9/12
to leaguevine...@googlegroups.com
I'll let Lou handle your questions about Facebook app requests since he's a master at Facebook.

As for the API integration, I believe option (3) that you proposed is the best. We will calculate per-game stats for the players so you can fetch only what is relevant to a given fantasy league without having to calculate those stats yourselves. We are willing to add more stats to our backend to help you out with this fantasy app, so just let us know if you need anything and we can discuss it on these message boards.

Updating asynchronously will likely lead to a much better user experience because page loads will be faster and will already have the relevant data calculated. You can always play around with how often you update the stats to find that right interval, and you can of course try to make the system smart so it knows when it should be updating stats often and when it can relax a bit. I feel like the fantasy crowd won't be upset if you only update every so often because most people lived through many years of yahoo sports only updating the fantasy stats once per day. So as long as this system does better than that you should be fine.

Mark

To unsubscribe from this group, send email to leaguevine-developers+unsub...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-developers+unsub...@googlegroups.com.

Louis Abramowski

unread,
Oct 11, 2012, 12:53:57 PM10/11/12
to leaguevine...@googlegroups.com
Hi Ben -

Regarding the app requests, I like your idea of just having it there as a stub to facilitate redirecting back to the site.  That said, Facebook requests are a bit unreliable (in the sense that users ignore them) due to years of abuse.  

Alternatively, we may want to use the Send Dialog to share the link with the user's friends: http://developers.facebook.com/docs/reference/dialogs/send/

It might be easier to implement, more effective, and eliminates the need for a canvas page.  Thoughts?

And Ben (or others) -- anyone want to tackle the front end with a simple Twitter Bootstrap implementation?

For me, I'm going to start collecting volunteers for stats and prizes for everyone (winners and you guys).  I'll keep you posted.

Thanks!
Lou

Ben Demboski

unread,
Oct 11, 2012, 1:20:59 PM10/11/12
to leaguevine...@googlegroups.com
Yeah, we could use the send dialog, but the problem there is that we can't really track the invite. If we implement our own friend selection UI, then we can invoke the dialog specifying one friend (only one), but the user could then add more friends from within the dialog or even remove the original friend, and we don't get any kind of callback telling us who they actually sent the link to.

So if we go this route, then we can't really secure the leagues (we'd have to let anybody with the link in), and we couldn't show who has been invited to a league but hasn't actually joined yet. If this fits into the design, then we can certainly do this as a starting point -- it would eliminate the need for a canvas page as you point out. However, a simple redirect canvas page isn't really that much work, so maybe it's mostly a question of how we want leagues to work vis-a-vis invites, displaying unaccepted invitees, and security around who can join.

Bootstrap is definitely a good idea for the front-end. I would also recommend that we use compass/SASS for our CSS -- it makes life sooooooo much easier than just authoring CSS directly. When I get a chance, I'll drop in the basic structure for the front-end, including boostrap and the compass/SASS setup unless anybody objects.

I'd like to get rolling on the API integration and data engine -- can we come up with a set of rules for how event data turns into scores within the leagues?

B

Louis Abramowski

unread,
Oct 15, 2012, 4:06:30 PM10/15/12
to leaguevine...@googlegroups.com
I'll have the comprehensive rules ready soon, but here's a basic list:

Goal (received or thrown) = 1 point
D (block, interception, etc.) = 1 point
Turnover (drop, throwaway, etc.) = -1 point

Any progress update? 

Can Orion get in to help anywhere?

Five Ultimate has agreed to sponsor the app with prizes for winners and volunteers. Working on others.

Lou

Ben Murphy

unread,
Oct 15, 2012, 4:07:52 PM10/15/12
to leaguevine...@googlegroups.com
I will be down there working as an observer and can help spread the word. Let me know what marketing materials exist when the time comes. 

Louis Abramowski

unread,
Oct 16, 2012, 5:30:34 PM10/16/12
to leaguevine...@googlegroups.com
Ben? Orion?  Any word?  Anything I/we can do to speed things along?

Thanks!
Lou

Ben Demboski

unread,
Oct 16, 2012, 5:37:55 PM10/16/12
to leaguevine...@googlegroups.com

Hey, sorry, I'm kind of buried at work this week. I'm hoping to be able to make some time in the next couple of days to throw together the db tables for leagues and players and then do a really crappy job of exposing them to the front-end so somebody with html/css/js experience can help out, then move on to pulling data into the leagues.

We are going to want hosting soon so the code can run somewhere besides my dev box...

Ben Murphy

unread,
Oct 16, 2012, 5:43:13 PM10/16/12
to leaguevine...@googlegroups.com
Have you guys figured out the roster rules yet?

Louis Abramowski

unread,
Oct 17, 2012, 11:40:21 AM10/17/12
to leaguevine...@googlegroups.com
We are just going to do 7 players per team. Any team can can take any player. And players can be on many teams. There won't be a draft , but the roster will lock at gametime next Thursday morning. 

Does that answer the questions on roster?

By the way, if we can get this live, we have a grand prize of $100 to Five Ultimate gear, a cool poster, some nexgen stuff, and an ulticards deck (so far). 

Plus consolation prizes for the next 9 places.  

Plus we can get something for everyone working on this :)

Need anything from me?

Lou



--
Sent from my Sprint iPhone4S. 
RIP my Palm Pre, 2009-2011

Louis Abramowski

unread,
Oct 17, 2012, 11:41:50 AM10/17/12
to leaguevine...@googlegroups.com
Ben D -- is heroku an acceptable host? Otherwise maybe leaguevine can donate some hosting?



--
Sent from my Sprint iPhone4S. 
RIP my Palm Pre, 2009-2011

Ben Demboski

unread,
Oct 17, 2012, 1:04:45 PM10/17/12
to leaguevine...@googlegroups.com
Unfortunately, hosting and deployment is the part of this all that I have the least experience with. However, it does look like heroku has nice support for hosting Django with a detailed set of instructions, whereas hosting in AWS would involve a lot more unknowns. I think Mark mentioned that heroku can get expensive pretty quickly, but unless anybody out there has experience with any standalone deployment solutions (mod_wsgi, puppet, chef,etc.) then heroku is probably the fastest way to get going right now.

Do we have a domain name yet? That will be a blocker because Facebook login won't work without a fixed hostname.

B

Mark Liu

unread,
Oct 17, 2012, 1:39:32 PM10/17/12
to leaguevine...@googlegroups.com
I'll volunteer to set up the hosting and deployment for you all on
Heroku. I'll use the cheap database ($5/month I think) and we'll
probably need no more than one background worker ($36/month per
worker) so Leaguevine would be happy to pay this for helping with this
sweet fantasy app. Just give me the domain name you want and I can set
this all up.

Also, FYI, if we use Heroku we should really use Postgres in
production. Don't worry, for the development environment I can keep it
as mysql if you want so it doesn't mess up your current
configurations.

Mark
Mark Liu
630-738-9280
http://leaguevine.com
http://twitter.com/leaguevine
http://facebook.com/leaguevine

Louis Abramowski

unread,
Oct 17, 2012, 2:12:05 PM10/17/12
to leaguevine...@googlegroups.com
The domain will be http://fantasy.ultimatepagehq.com

I'll give Mark & co Plesk access to manage the DNS there.

One other note on the rosters, we'll only be using Open division players.

Lou

Mark Liu

unread,
Oct 17, 2012, 2:34:20 PM10/17/12
to leaguevine...@googlegroups.com
Thanks Lou. I realize this is asking a lot for a quick project like
this, but any way we could use SSL certificates for ultimatepagehq?
Our API uses OAuth2 and without SSL that protocol is simply not
secure.

Also, nice work on getting all those sponsorships and prizes lined up.

Ben Demboski

unread,
Oct 17, 2012, 2:46:31 PM10/17/12
to leaguevine...@googlegroups.com
Mark, could you still swing it if we doubled that cost? We really need two "real" environments to do this right -- the actual production environment and a staging environment. The DNS could be something like http://fantasy-stage.ultimatepagehq.com. The extra nice thing about that is that then we can set up ssh tunneling on the stage box and point a few other subdomains at it like fantasy-bendev.ultimagepagehq.com so that our development environments can have domain names and interact with services that perform domain verification and callbacks and whatnot (like Facebook!).

Mark, is there a good way for me to determine which leagues are open and which aren't? Or will we need to manually configure a list of available leagues?

B

Louis Abramowski

unread,
Oct 17, 2012, 2:58:15 PM10/17/12
to leaguevine...@googlegroups.com
Mark -

We could do that.  I'm not sure what this entails if all we're doing is using it as a front for a heroku domain. I'll probably need some help with that.  

If it's easiest, we can just do it through my domain registrar and change the DNS there.  Does that work?

Mark Liu

unread,
Oct 17, 2012, 3:30:10 PM10/17/12
to leaguevine...@googlegroups.com
Ben - Sure thing, we can set up and pay for both staging and
production environments. We do the same thing for Leaguevine, but I
just wasn't sure how serious we were planning on being with this
fantasy app. I'm glad to hear you want a staging environment as well
and I'm working on getting this set up right now.

As for knowing which leagues will have stats at any given time, I
think we'll need to manually configure the list of available leagues.

Lou - Awesome. If you've already purchased SSL certificates, if you
forward me the certificates (by email, not on this list :P) I can add
them to Heroku.

Mark Liu

unread,
Oct 17, 2012, 5:02:26 PM10/17/12
to leaguevine...@googlegroups.com
I've updated the app's configuration and deployed it to Heroku. Here's the temporary URL before we finish the DNS forwarding. Lou is juggling some of his domain configurations and we should have the URL pointed at the Heroku pretty soon.

I've sent collaboration invites to Ben and Lou. If any of the rest of you want to be Heroku admins and think you should be, please let me know. Here are the Heroku instructions for collaborators.

Ben - The Facebook authentication is not working for me in this Heroku app for some reason. Do you think you could check it out? On localhost I get an error on the Facebook site. On Heroku I get a 500 error.

Lou - VC Ultimate wants to get involved with sponsorship too. I'll forward you some contact info.

Ben Demboski

unread,
Oct 17, 2012, 5:55:14 PM10/17/12
to leaguevine...@googlegroups.com
Okay, Facebook issues:
  1. Authentication wasn't configured with any domains -- added temporary heroku domain/URL for now
  2. The app is in Sandbox mode, meaning that people can't wander into it until we're ready to make it public, and we configure which users can see it. This means that currently only I can see it. If you guys give me your primary Facebook e-mail addresses I can add you as admins on the Facebook app so you can use it as well as admin it.
  3. It's still not working for me, and I'm not sure why. I'm just learning heroku, so please have some patience with me :) Mark, did you set up local_settings.py in any way? Right now we obviously don't have a configuration project like we were discussing, so there must be some manual way to configure local_settings.py with our Facebook credentials so the Django app can access them? What did you do with the Facebook creds that I sent you?
B

Ben Demboski

unread,
Oct 17, 2012, 6:00:04 PM10/17/12
to leaguevine...@googlegroups.com
Never mind, answered my own question #3. Need to make some code changes to pull those values from the environment...

B

Louis Abramowski

unread,
Oct 17, 2012, 6:11:59 PM10/17/12
to leaguevine...@googlegroups.com
Ben … could you add hot...@gmail.com

Thanks!
Lou

Ben Demboski

unread,
Oct 17, 2012, 6:31:38 PM10/17/12
to leaguevine...@googlegroups.com
Okay, got it sorted. I hadn't noticed your checkins, Mark, to get the environment set up right, and they were all fine. The problem was that we had never run manage.py syncdb, so none of the database tables existed! Ran that and it's working fine for me, and should for you once I get you added to the Facebook app.

B

Ben Demboski

unread,
Oct 18, 2012, 2:48:02 AM10/18/12
to leaguevine...@googlegroups.com
Heads up, everyone -- I've officially switched us over to PostgreSQL. The README.md has been updated with new instructions for Ubuntu (MacOS section still needs updating), and the latest code will not run against MySQL. This is necessary to make our dev environments cleanly inter-operable with heroku where we are hosting our production environments.

If you've already set up MySQL, don't worry -- you can just follow the instructions in the section that describes how to set up your PostgreSQL database, update your virtualenv from requirements.txt and be ready to go!

B

Sean Parker

unread,
Oct 18, 2012, 3:11:22 PM10/18/12
to leaguevine...@googlegroups.com
Ran through the updated readme and got PostgreSQL all set up. 

I've also ran through a django tutorial and played with the LV API last week but I'm pretty time crunched at the moment. Chances are I will just continue to keep up to date and do some ad-hoc testing on the staging environment. 

Also a couple of design questions that have popped into my head in the last week:

1. Can other people view your team before the rosters lock?
2. What break ties?
3. How much is a Callahan worth? (Classic fantasy question. Maybe this is built into ultistats)

Lou, I noticed you were looking for open team contacts. I can rep for Rhino and possibly put you in contact with a few other teams if you are having trouble reaching people. Shoot me an email with what you need.

Nice work all, I'm excited. 


B

B


Lou



>> >> >>>>>>>>> For more options, visit this group at
>> >> >>>>>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>>>>
>> >> >>>>>>>>
>> >> >>>>>>>> --
>> >> >>>>>>>> You received this message because you are subscribed to the
>> >> >>>>>>>> Google
>> >> >>>>>>>> Groups "Leaguevine Developers" group.
>> >> >>>>>>>> To post to this group, send email to
>> >> >>>>>>>> leaguevine...@googlegroups.com.
>> >> >>>>>>>> To unsubscribe from this group, send email to

>> >> >>>>>>>> For more options, visit this group at
>> >> >>>>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>>>
>> >> >>>>>>>
>> >> >>>>>>> --
>> >> >>>>>>> You received this message because you are subscribed to the
>> >> >>>>>>> Google
>> >> >>>>>>> Groups "Leaguevine Developers" group.
>> >> >>>>>>> To post to this group, send email to
>> >> >>>>>>> leaguevine...@googlegroups.com.
>> >> >>>>>>> To unsubscribe from this group, send email to

>> >> >>>>>>> For more options, visit this group at
>> >> >>>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>>
>> >> >>>>>>
>> >> >>>>>> --
>> >> >>>>>> You received this message because you are subscribed to the
>> >> >>>>>> Google
>> >> >>>>>> Groups "Leaguevine Developers" group.
>> >> >>>>>> To post to this group, send email to
>> >> >>>>>> leaguevine...@googlegroups.com.
>> >> >>>>>> To unsubscribe from this group, send email to

>> >> >>>>>> For more options, visit this group at
>> >> >>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> --
>> >> >>>>> You received this message because you are subscribed to the
>> >> >>>>> Google
>> >> >>>>> Groups "Leaguevine Developers" group.
>> >> >>>>> To post to this group, send email to
>> >> >>>>> leaguevine...@googlegroups.com.
>> >> >>>>> To unsubscribe from this group, send email to

>> >> >>>>> For more options, visit this group at
>> >> >>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>
>> >> >>>>
>> >> >>>
>> >> >>> --
>> >> >>> You received this message because you are subscribed to the Google
>> >> >>> Groups
>> >> >>> "Leaguevine Developers" group.
>> >> >>> To post to this group, send email to
>> >> >>> leaguevine...@googlegroups.com.
>> >> >>> To unsubscribe from this group, send email to

>> >> >>> For more options, visit this group at
>> >> >>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>
>> >> >> --
>> >> >> You received this message because you are subscribed to the Google
>> >> >> Groups
>> >> >> "Leaguevine Developers" group.
>> >> >> To post to this group, send email to
>> >> >> leaguevine...@googlegroups.com.
>> >> >> To unsubscribe from this group, send email to

>> >> >> For more options, visit this group at
>> >> >> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>
>> >> >> --
>> >> >> You received this message because you are subscribed to the Google
>> >> >> Groups
>> >> >> "Leaguevine Developers" group.
>> >> >> To post to this group, send email to
>> >> >> leaguevine...@googlegroups.com.
>> >> >> To unsubscribe from this group, send email to

>> >> >> For more options, visit this group at
>> >> >> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "Leaguevine Developers" group.
>> >> > To post to this group, send email to
>> >> > leaguevine...@googlegroups.com.
>> >> > To unsubscribe from this group, send email to

>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/leaguevine-developers?hl=en.
>> >>
>> >>
>> >>
>> >> --
>> >> Mark Liu
>> >> 630-738-9280
>> >> http://leaguevine.com
>> >> http://twitter.com/leaguevine
>> >> http://facebook.com/leaguevine
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> >> Groups
>> >> "Leaguevine Developers" group.
>> >> To post to this group, send email to
>> >> leaguevine...@googlegroups.com.
>> >> To unsubscribe from this group, send email to

>> >> For more options, visit this group at
>> >> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >>
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Leaguevine Developers" group.
>> > To post to this group, send email to
>> > leaguevine...@googlegroups.com.
>> > To unsubscribe from this group, send email to

>> > For more options, visit this group at
>> > http://groups.google.com/group/leaguevine-developers?hl=en.
>>
>>
>>
>> --
>> Mark Liu
>> 630-738-9280
>> http://leaguevine.com
>> http://twitter.com/leaguevine
>> http://facebook.com/leaguevine
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Leaguevine Developers" group.
>> To post to this group, send email to
>> leaguevine...@googlegroups.com.
>> To unsubscribe from this group, send email to

>> For more options, visit this group at
>> http://groups.google.com/group/leaguevine-developers?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Leaguevine Developers" group.
> To post to this group, send email to leaguevine...@googlegroups.com.
> To unsubscribe from this group, send email to

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-developers+unsub...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-developers+unsub...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-developers+unsub...@googlegroups.com.

Louis Abramowski

unread,
Oct 18, 2012, 3:23:00 PM10/18/12
to leaguevine...@googlegroups.com
Sean -

We have prizes galore (like almost $500 in gear for a grand prize), a nearly functioning app, an excited crew, but not enough people to take stats.  If every open team can find one person to keep stats for their team for every (or nearly every) round, we'll be golden. You think you could spread the word?  Should go something like this:

Ballers - 

We're excited because we have a kick ass project that's nearly ready, but we don't want to announce it if we can't get it done. So please keep this to yourself for now.  

We're building a fantasy ultimate app for the club championships for Open. 

We have prizes galore (like almost $500 in gear for a grand prize, so far), a nearly functioning app, an excited crew, but not enough people to take stats.  If every open team can find one person to keep stats for their team for every (or nearly every) round, we'll be golden.  You think you can help?  

You'll just need a smartphone and keep track of scores, turns, and Ds.  That's it.

Super sincerely,
Lou (The Ultimate Page)

(with props to Leaguevine, Five Ultimate, Nexgen, Hammer Fakes and IO Breaks, Patagonia, Ulticards, & others)


Thanks!
Lou





To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-devel...@googlegroups.com.

Ben Demboski

unread,
Oct 19, 2012, 12:20:55 AM10/19/12
to leaguevine...@googlegroups.com
I think the database tables are essentially there, give or take a few fields here or there that we might need and I didn't think of. I'm working through exposing the data we need for the different pages and implementing forms to accept data (league/team creation). Keeping in mind that I've never really played a fantasy sport before, so I should be treated like a n00b, here are a few questions (which will probably have distinct short-term, get-something-out-the-door and long-term ideal-app-functionality answers -- the first is obviously more important now):
  1. What is the full lifetime of a fantasy season? To illustrate what I mean, I'll take a guess:
    1. When a "real" season (or tournament or whatever, I'll just call them seasons) is approaching, we configure the server to be aware of it and allow fantasy league creation for that season (could have multiple open at once)
    2. People create leagues and invite friends into them -- each league is tied to exactly one season. Everyone builds their rosters from the players in the season.
    3. At some point, we lock the season -- any incomplete fantasy teams are disqualified and no further modifications can be made to completed fantasy teams.
    4. We periodically run our update routine to pull stats from Leaguevine and store scores in our database so people can watch how their teams are doing over the course of the season.
    5. At some point the season ends. Maybe we do something special (other than announcing winners or whatever), maybe we don't.
  2. Do we have some kind of public fantasy league going for every season? Or just leagues that individuals create?
  3. How do people get into leagues? Creators can invite friends via Facebook. Can other league members invite friends? Can people search for and join leagues?
B

Louis Abramowski

unread,
Oct 19, 2012, 2:47:57 AM10/19/12
to leaguevine...@googlegroups.com
1. Ultimate doesn't really follow a season like other sports.  I thought for this, we'd make it simple: a "season" is one tournament.

Later, if we're really lucky, for MLU, we can define a full season as their team schedule is predictable and periodic.  For MLU, I can imagine we'd have a full season, with multiple games, and records would matter.  Here, we just have one game -- the entire tournament -- and that will represent the entire season.

Is that too hackish?

2. We do. This will just be all teams.  For this tournament, it will determine the grand prize & prizes.

3. This is by invite and by search. I think the wireframes and my explanations cover this fairly well, but if not, I can add more detail.  Let me know.

Lou

Ben Demboski

unread,
Oct 19, 2012, 3:17:30 AM10/19/12
to leaguevine...@googlegroups.com
  1. The Leaguevine API exposes the notion of seasons, which is why I asked, but I guess Mark will have to explain what's behind that. Tournaments should work fine. I set it up so that we should be able to tie leagues to seasons (whatever they are), tournaments, or even individual games. So no problem here, I guess.
  2. The way I have it set up is that a fantasy team exists in exactly one fantasy league. We can certainly do leaderboards across all teams in all fantasy leagues associated with same real season/tourney, but then for somebody to participate, they would have to create a league, or join somebody's. We could also just create a league ourselves and encourage everybody to join it, but then people wouldn't be participating in private leagues. Making teams able to exist in multiple leagues is probably doable, but I'd have to think it through, and I'm not sure it's really what we want.
  3. I do have some clarifying questions, but I'm going to skip them for now because I had a thought that makes this question irrelevant for the time being...
Given that time is short and as I understand it, the main priority is to have some kind of fantasy ultimate-like thing for people to play and give out prizes, why don't we punt on league creation for this first release? We will just manually create a league in the database, and then when people sign up, they are immediately prompted to create their team. Once they've created the team, they can see this global league with everybody in it, and we just run that league. The ability to create your own league with your friends is v.next.

This allows us to punt on all the league creation UI, on sorting out invites and league visibility and permissions, and on the Facebook canvas page and app request integration, but still have people playing fantasy ultimate and have winners to give prizes. It looks to me like this would scope down the work quite a bit and still hit the main priority for this first release. Agreed, or is this cutting too deep?

B

Louis Abramowski

unread,
Oct 19, 2012, 2:40:44 PM10/19/12
to leaguevine...@googlegroups.com
I'm okay cutting the leagues, but can we add in some other low hanging fruit to drive sharing? Maybe it's just the Send button, Like button, or maybe we can do an Custom Open Graph action like "is playing" acting on "fantasy ultimate" … (we'd have to get that approved, but that usually only takes a couple hours for approval.

Thoughts?

Lou

Ben Demboski

unread,
Oct 19, 2012, 3:01:54 PM10/19/12
to leaguevine...@googlegroups.com
Yeah, since all we would be doing is pointing people to the web site, and not trying to pass through any information like "you were invited to this specific league" or whatever, then we can definitely drop in those social widgets -- like, send, post to my wall, etc.

At some point we'll need to populate the Facebook app with content -- description, contact e-mail (I think it's my personal e-mail now), logo, etc. Nothing is really blocking that, so somebody could move on it right away. Then I'm assuming we can use a version of that logo as our opengraph image so that when the site is shared/sent/whatever, it shows up.

B

Mark Liu

unread,
Oct 19, 2012, 8:46:39 PM10/19/12
to leaguevine...@googlegroups.com
It sounds like you guys have figured out the way to go for this initial release and I agree that having one global league will work great for next week.

Ben - I should clarify the season entity on Leaguevine. We use seasons to split up leagues into these distinct seasons. This is important in our structure because each team belongs to a single season, not a league, and stats are aggregated accordingly. For instance, teams on Leaguevine can be related to one another and we internally aggregate stats for these "related" teams in the "team_stats_per_league" and "team_stats_per_sport" resources. 

As you guys have been discussing, though, just because we have a seasons resource in our API doesn't mean you need to follow suit and make each fantasy league relate to a single season. Having a fantasy league around a tournament makes plenty of sense.

Ben Demboski

unread,
Oct 22, 2012, 1:10:26 AM10/22/12
to leaguevine...@googlegroups.com
I need to check another assumption. Here is my guess as to how the leagues being open/closed works -- please tell me if it's right or not:

When a league is created, it has a cutoff date for when people can create teams in that league. Maybe it defaults to the start date of the event (real-life tournament), and maybe it can be configured to be earlier than than. Anyway, up until that cutoff date, people can create teams and modify their roster if we ever allow that, but afterwards it is locked and they can just watch the stats aggregate. This means that when we render a league, it is either locked or unlocked. If it is unlocked, we don't show any stats or anything because they presumably don't exist yet. If it is locked, then we don't allow team creation/roster management, but we do show stats. We also don't bother collecting stats from Leaguevine for a given league until it is locked.

Does this all make sense, or is it too rigid? Might there be cases where we want to show stats for existing teams in a league and also allow creation of new teams in that league?

B

Louis Abramowski

unread,
Oct 22, 2012, 3:44:09 AM10/22/12
to leaguevine...@googlegroups.com
Ben -

I designed it this way for easier development -- both in terms of actual coding and in terms of edge cases for scoring.

Later, I feel like it will make more sense to have some flexibility but it seems this is the fastest path to get something ready … for like Tuesday or Wednesday this week.  Crazy.

Lou

Ben Demboski

unread,
Oct 22, 2012, 7:07:23 AM10/22/12
to leaguevine...@googlegroups.com
Okay, got something together and working. You can go to http://protected-fortress-3851.herokuapp.com/, log in (I turned off sandbox mode so anybody can log in), see the leaderboards and create a team. For the time being the league is tied to 2010 USAU College Open Championships because Mark told me that's where we'll find the best data right now. I've created a few teams with test users and myself, then did a scores dump from Leaguevine so the existing teams have scores. You can create a team, but the scores won't update unless we do another scores dump (done through the Django admin interface).

Here's a bunch of stuff that still probably should be done:
  1. We need some content on the landing/login page -- need designs (Lou?)
  2. The Facebook app should be populated properly -- at the very least an image and maybe a description (Lou?)
  3. There is no switching mechanism for leagues being open/closed right now, so we'll need a way to cut off team creation at some point (Ben)
  4. There is no indication of the current user's rank in the leaderboards, or a good way for them to find their self without just scanning (Ben, open to design suggestions or I can just make something up)
  5. There is no way to view your friends' rosters -- only your own (Ben)
  6. There is no way to modify your roster once you've created it (Ben)
  7. There is no way to view the event data for the individual players on your roster, only their aggregate scores (punt?)
  8. We probably need a better call to action for creating your team when you first arrive at the site -- possibly a special welcome screen like Lou designed originally before league creation was cut that is shown after you log in for the first time. Or we could just start users that don't already have a team on the team creation page. Lou, what do you prefer? (Ben)
  9. As we discussed, we'll want to scatter social media tie-ins (send dialog entry points? post to your wall when you create a team?) at appropriate places around the app. Lou, care to give me some guidance on what/where?
  10. It would be nice to style the app some more. The vanilla boostrap UI looks decent, but it's pretty bare...not sure how to go about this, I suck at visual design. (Lou? Somebody?)
  11. DNS -- is this underway? (Lou/Mark)
I should have a pretty good amount of time over the next couple of days to work on these and any other issues. Lou, feel free to give me guidance on how you'd like to see these prioritized, otherwise I'll just use my best judgement.

Also, we'll need to switch the global league over to the actual nationals event at some point. However, it doesn't look like the event is really populated with player data right now, so we can't really use it to build team rosters yet. Mark, any idea if/when this will happen?

B

Mark Liu

unread,
Oct 22, 2012, 10:09:39 AM10/22/12
to leaguevine...@googlegroups.com
Nice work, Ben! It's insane that you got this done. As for your suggested improvements, I'd say #3, #5 and #6 are the highest priority.

Regarding #11, the DNS stuff is all set up. I forgot to report back on that. fantasy.ultimatepagehq.com points to the same app as protected-fortress-3851.herokuapp.com and I just now changed the Facebook settings to use fantasy.ultimatepagehq.com instead. So that should be working.

Regarding the players on the open rosters, I'll make sure all that data is entered by 7pm ET today.

I'd like to add a #12: Some info displayed to the user on how the point totals are actually calculated and how often they're calculated. :)

One more very important point - We actually need people to take stats at Nationals. Lou has been heading up the volunteer recruiting effort, but it's been tough. It looks like the best option is to get buy in from all of the teams and/or their fans. This is also tough, but it's possible. The last thing these players want to think about is having to take stats. They're laser focused right now on winning games and vying for a championship, not our nerdy stuff :). So Lou and I will work on finding friends or family of each team who would be up for taking stats for their own teams.

Keep up the good work,
Mark

Louis Abramowski

unread,
Oct 22, 2012, 12:20:46 PM10/22/12
to leaguevine...@googlegroups.com
Amazing Ben.  Um … words are failing me beyond … unbelievably incredible work!

Here's my feedback.

I agree with Mark on priority.

1. I'll take it.  We can live without design, but some introductory and instructional copy may be necessary.
2. I will write a description and probably use the Ultimate Page profile pic.
-
4. I think a <h1> tagged "You are currently ranked #4" above the standings table will work great.  Plus we could highlight their row with #FFFBCC on js-my-teammy-team. (see screen cap) 
5. And if we can, let's not let that viewable until after the event begins and rosters are locked
-
7. punting is fine (at least, bottom of the priority)
8. I like your idea of just throwing them on the creation page.  Let's do that and add copy <h4>You can view the leaderboard after creating your roster</h4>.  We should bypass this after the event has begun.
9. Let's try to have the send button near the top of the page on the leader board page like the attached.  And if we can add it near the top on other pages, great.  And could we have a feedback message in a header tag at the top of page after you've created your teams that reads "You've created your team, now tell your friends by clicking LIKE:" followed by a like button (that will pop up the dialog for them to say more about it)
10. let me see if I can get my buddy to spruce it up a bit one of these evenings.


Awesome awesome awesome … 

Lou
Picture.tiff
skitched-20121022-111537.jpg

Louis Abramowski

unread,
Oct 22, 2012, 12:28:14 PM10/22/12
to leaguevine...@googlegroups.com
Oh, and I have one other thing we'll need : a list of sponsors, prizes, and maybe thank yous.

I'll put the images and copy together for that.

Lou

Ben Demboski

unread,
Oct 22, 2012, 6:13:35 PM10/22/12
to leaguevine...@googlegroups.com
Okay, working through most of this. I'm still a little fuzzy on what we want to do about locking the league. I'm planning to add a lock_time field to the leagues table that is a datetime that can either be null, or specify the time at which the league becomes locked and no more team creation/roster modification is allowed. That part is easy enough, I just want to clarify what we do (for this initial release -- it can get more involved later) on the front-end.

So, here are my assumptions and questions about behavior before the league is locked:
  1. Users without teams arriving at the site are sent straight to their team page to create a team
  2. The team page (whether the team is created or not) has an indication of when the league will be locked
  3. We don't allow users to view their friends' rosters (Lou, I believe this is what you asked for in your mail -- am I interpreting it correctly?)
  4. We probably want to hide the ranking header ("You are currently ranked #n") because it's meaningless, right?
  5. Maybe hide the ranking and scores columns in the team list, so it's just a list of team names and owners?
...and once the league is locked:
  1. All users arriving at the site are sent to the leaderboards page
  2. If the user has a team, the team page shows it with a message telling them that the league is locked. If they don't have a team, they just get a message saying "Sorry, you're too late" or something.
  3. We allow users to view their friends' rosters (with scores)
  4. Show the ranking header (duh)
  5. Show all columns (duh)
Lou, Mark -- please let me know if you agree with 1-3, and what you think about 4 and 5.

B

Louis Abramowski

unread,
Oct 22, 2012, 6:39:42 PM10/22/12
to leaguevine...@googlegroups.com
Pre-locked:

1. yep
2. yep
3. yep - the idea here is for people to pick their own team, rather than copy someone else's
4. agreed
5. agreed

post-lock

1. yep
2. yep (need me to write copy?)
3. yep - just to be clear, users can view any rosters … no need to limit it just to friends
4. yep
5. yep

Looking great!

Lou

Ben Demboski

unread,
Oct 22, 2012, 6:45:00 PM10/22/12
to leaguevine...@googlegroups.com
Yeah, copy for (2) would be great! Also for the send dialog, we need a picture, name and description. I believe we can just put all that in our opengraph data and not worry about it in the send dialog explicitly, and then we have it there for any other links to the page that read opengraph. Do we have an image, or can we find one? Can you give me copy for the name and description?

I was thinking that it would be pretty easy to just add a global page footer with some social media stuff -- a small version of the like widget including the send button and maybe a face pile, a link directly to the Facebook page. Sound good? Any other stuff you'd like to see there? Twitter or anything?

B

Ben Demboski

unread,
Oct 22, 2012, 6:54:46 PM10/22/12
to leaguevine...@googlegroups.com
Hmm...actually if you like the social media footer idea, we need to sort out exactly what to link to. There's the Ultimate Facebook fan page, then there. the fantasy ultimate Facebook app, and then there's the fantasy site itself. Obviously for the big send call to action at the top we want to send the fantasy site. I guess for now we don't really do anything with the fantasy Facebook app -- since we don't have a canvas page, there's really nothing to share.

So, if you want that social media footer, just let me know what actions/links you want, and where they point. Maybe just a like button to like the Ultimate Facebook page, and then a link to it?

B

Mark Liu

unread,
Oct 22, 2012, 7:07:43 PM10/22/12
to leaguevine...@googlegroups.com
I agree with 1-5 on both of your lists. Good stuff. 

I'll defer to Lou on your questions regarding social media hooks. He's clearly the master at that kind of stuff. :)

Louis Abramowski

unread,
Oct 22, 2012, 7:10:24 PM10/22/12
to leaguevine...@googlegroups.com
Yeah, all we really have is the Facebook page right now (though I might get something up for ultimatepagehq.com).  If all we do is use the like box there, that will be great.

Besides that, I think I would like to put the sponsors there, which include:
  • Leaguevine
  • Five Ultimate
  • Nexgen
  • Hammer Fakes and IO Breaks
  • Patagonia
  • Ulticards
  • others tbd
Plus, I'd like to add "Fantasy Ultimate is a project from The Ultimate Page" in the footer.

And Ben … if you want to add something like "from the coding brilliance of Ben D", with a link promoting you, your twitter, your blog … or a cause you support (so long as it's not too polarizing), feel free.

Lou

Ben Demboski

unread,
Oct 22, 2012, 7:14:54 PM10/22/12
to leaguevine...@googlegroups.com
Okay, could you mock/wireframe something up for me for that footer when you get the chance?

Ben Demboski

unread,
Oct 22, 2012, 11:09:53 PM10/22/12
to leaguevine...@googlegroups.com
Alright, just deployed the latest and greatest. The only remaining issues that I'm aware of are not actionable by me right now:
  1. Whatever we are going to do about the landing/login page
  2. Facebook app icon/description
  3. Footer (social media/sponsors/etc)
  4. Displaying the scoring rules somewhere (where?)
B

Mark Liu

unread,
Oct 23, 2012, 6:17:18 PM10/23/12
to leaguevine...@googlegroups.com
Awesome stuff, Ben. The app looks amazing and Lou and I are doing our best to get as many stat keepers as possible for this.

My designer is currently working on #1 and #3. He'll check those directly into the repo.

Ben - for #4, can you add a tab on the navbar that says "Rules" and when you click on it contains info on how you calculate player scores. 

Lou - can you take on #2? Also, can you write out a list of prizes and how they will be distributed so Ben can copy/paste this into #4?

Thanks guys,

Mark


B


B


Lou


Lou


Lou


B


B


B

B


Lou



>> >> >>>>>>>>> For more options, visit this group at
>> >> >>>>>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>>>>
>> >> >>>>>>>>
>> >> >>>>>>>> --
>> >> >>>>>>>> You received this message because you are subscribed to the
>> >> >>>>>>>> Google
>> >> >>>>>>>> Groups "Leaguevine Developers" group.
>> >> >>>>>>>> To post to this group, send email to

>> >> >>>>>>>> To unsubscribe from this group, send email to

>> >> >>>>>>>> For more options, visit this group at
>> >> >>>>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>>>
>> >> >>>>>>>
>> >> >>>>>>> --
>> >> >>>>>>> You received this message because you are subscribed to the
>> >> >>>>>>> Google
>> >> >>>>>>> Groups "Leaguevine Developers" group.
>> >> >>>>>>> To post to this group, send email to

>> >> >>>>>>> To unsubscribe from this group, send email to

>> >> >>>>>>> For more options, visit this group at
>> >> >>>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>>
>> >> >>>>>>
>> >> >>>>>> --
>> >> >>>>>> You received this message because you are subscribed to the
>> >> >>>>>> Google
>> >> >>>>>> Groups "Leaguevine Developers" group.
>> >> >>>>>> To post to this group, send email to

>> >> >>>>>> To unsubscribe from this group, send email to

>> >> >>>>>> For more options, visit this group at
>> >> >>>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>>
>> >> >>>>>
>> >> >>>>> --
>> >> >>>>> You received this message because you are subscribed to the
>> >> >>>>> Google
>> >> >>>>> Groups "Leaguevine Developers" group.
>> >> >>>>> To post to this group, send email to

>> >> >>>>> To unsubscribe from this group, send email to

>> >> >>>>> For more options, visit this group at
>> >> >>>>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>>>
>> >> >>>>
>> >> >>>
>> >> >>> --
>> >> >>> You received this message because you are subscribed to the Google
>> >> >>> Groups
>> >> >>> "Leaguevine Developers" group.
>> >> >>> To post to this group, send email to

>> >> >>> To unsubscribe from this group, send email to

>> >> >>> For more options, visit this group at
>> >> >>> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>
>> >> >> --
>> >> >> You received this message because you are subscribed to the Google
>> >> >> Groups
>> >> >> "Leaguevine Developers" group.
>> >> >> To post to this group, send email to

>> >> >> To unsubscribe from this group, send email to

>> >> >> For more options, visit this group at
>> >> >> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >>
>> >> >> --
>> >> >> You received this message because you are subscribed to the Google
>> >> >> Groups
>> >> >> "Leaguevine Developers" group.
>> >> >> To post to this group, send email to

>> >> >> To unsubscribe from this group, send email to

>> >> >> For more options, visit this group at
>> >> >> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >> >
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "Leaguevine Developers" group.
>> >> > To post to this group, send email to

>> >> > To unsubscribe from this group, send email to

>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/leaguevine-developers?hl=en.
>> >>
>> >>
>> >>
>> >> --
>> >> Mark Liu
>> >> 630-738-9280
>> >> http://leaguevine.com
>> >> http://twitter.com/leaguevine
>> >> http://facebook.com/leaguevine
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> >> Groups
>> >> "Leaguevine Developers" group.
>> >> To post to this group, send email to

>> >> To unsubscribe from this group, send email to

>> >> For more options, visit this group at
>> >> http://groups.google.com/group/leaguevine-developers?hl=en.
>> >>
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Leaguevine Developers" group.
>> > To post to this group, send email to

>> > To unsubscribe from this group, send email to

>> > For more options, visit this group at
>> > http://groups.google.com/group/leaguevine-developers?hl=en.
>>
>>
>>
>> --
>> Mark Liu
>> 630-738-9280
>> http://leaguevine.com
>> http://twitter.com/leaguevine
>> http://facebook.com/leaguevine
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Leaguevine Developers" group.
>> To post to this group, send email to

>> To unsubscribe from this group, send email to

>> For more options, visit this group at
>> http://groups.google.com/group/leaguevine-developers?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Leaguevine Developers" group.
> To post to this group, send email to leaguevine...@googlegroups.com.

> To unsubscribe from this group, send email to

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.

To unsubscribe from this group, send email to leaguevine-developers+unsubscri...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.

To unsubscribe from this group, send email to leaguevine-developers+unsubscri...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To post to this group, send email to leaguevine...@googlegroups.com.

To unsubscribe from this group, send email to leaguevine-developers+unsubscri...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/leaguevine-developers?hl=en.

--
You received this message because you are subscribed to the Google Groups "Leaguevine Developers" group.
To view this discussion on the web visit https://groups.google.com/d/msg/leaguevine-developers/-/Q_f3pKHdALUJ.

To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-developers+unsub...@googlegroups.com.

Ben Demboski

unread,
Oct 23, 2012, 6:36:26 PM10/23/12
to leaguevine...@googlegroups.com
Okay, the rules tab is there, just needs content! When it's sorted out, just send it my way and I can drop it in.

B


To post to this group, send email to leaguevine...@googlegroups.com.
To unsubscribe from this group, send email to leaguevine-devel...@googlegroups.com.

Mark Liu

unread,
Oct 23, 2012, 6:41:15 PM10/23/12
to leaguevine...@googlegroups.com
For the content, I figured you'd populate it since I don't know how player points are calculated. :)

I'm guessing you have some rules set up for how players end up with points so if you can just translate that from code to human readable text, that's the most important thing that can go up there.

Ben Demboski

unread,
Oct 23, 2012, 7:00:05 PM10/23/12
to leaguevine...@googlegroups.com
Okay, the rules are there. Anybody let me know if you want to tweak the copy.

B

Mark Liu

unread,
Oct 23, 2012, 7:05:25 PM10/23/12
to leaguevine...@googlegroups.com
Looks good to me! Nice and simple.

Louis Abramowski

unread,
Oct 23, 2012, 7:33:54 PM10/23/12
to leaguevine...@googlegroups.com
Let's just use the Ultimate Page's image for the icon for now (attached).

And the description:

It's Fantasy Ultimate from The Ultimate Page. You score points for the players you select on your team based on how they play at the Club Championships (Open division).

Look good?

Thanks!
Lou
50276_300060247272_4822981_n.jpg

Ben Demboski

unread,
Oct 23, 2012, 7:52:02 PM10/23/12
to leaguevine...@googlegroups.com
I plugged in the description. The icons need to be 16x16, 75x75 and 128x128, so I'm not sure that image is ideal. I'll probably be hard to make out especially in the two smaller sizes. We would also need to crop it to make it square. Let me know how you want to proceed.

Also, my e-mail address is currently the contact/support address because I created the app -- do you want me to put in your address instead? If so, which one?

B

Louis Abramowski

unread,
Oct 23, 2012, 8:27:46 PM10/23/12
to leaguevine...@googlegroups.com
It's not a perfect image but it is recognizable since that's the small icon next to the Facebook page posts in the news feed. 

Do I need to resize it or will Facebook scale it on one upload?

Let's use ulti...@gmail.com for contact. 

--
Sent from my Sprint iPhone4S. 
RIP my Palm Pre, 2009-2011
B

B


B


Lou


Lou


Lou


B


B


B

B


Lou


>> >> &

Ben Demboski

unread,
Oct 23, 2012, 8:29:58 PM10/23/12
to leaguevine...@googlegroups.com
We need to size it ourselves. I have no problem resizing the image myself to a few sizes, but could you crop it however you want it to be square?

B

--

Louis Abramowski

unread,
Oct 23, 2012, 9:03:09 PM10/23/12
to leaguevine...@googlegroups.com
12850276_300060247272_4822981_n-2.jpg
12850276_300060247272_4822981_n-3.jpg
12850276_300060247272_4822981_n.jpg

Mark Liu

unread,
Oct 23, 2012, 9:36:25 PM10/23/12
to leaguevine...@googlegroups.com
The Login screen image and the footer are now live, so once you guys finish up the facebook link and description, I think this thing is ready to launch. 

Lou - I think it'd be nice if we could put the prizes in the rules section, but if you'd prefer to keep it on the facebook event or elsewhere to keep it more flexible I'm ok with that too.

Good stuff! 

Ben Demboski

unread,
Oct 23, 2012, 10:38:57 PM10/23/12
to leaguevine...@googlegroups.com
Footer looks nice! The images are uploaded to the Facebook app, so we're good to go on that.

Before we go live, we'll need to reset the data -- delete the existing league and create and event and league for nationals.

Mark, whenever we're ready to do this, I'll need the ID of the Leaguevine tournament object to configure on the server (unless you want to do it).

As far as updating the rules with prize descriptions -- it's no problem coding time-wise, but deploying it will take the site down for like 30-60 seconds, so if we don't do it before we go live, we'll want to wait until late at night or something.

B

Mark Liu

unread,
Oct 24, 2012, 12:19:54 AM10/24/12
to leaguevine...@googlegroups.com
Awesome.

Ben, can you take care of deleting that data and setting the Leaguevine tournament object and league cutoff time? The tournament ID is 18433 and the league cutoff time for team creation can be the start time of the first game Thursday. 

I'm driving down to Sarasota now so I'll leave the rest of the launch up to you guys.

Good work!


Louis Abramowski

unread,
Oct 24, 2012, 2:51:02 AM10/24/12
to leaguevine...@googlegroups.com
Ben - 

Everything looks amazing!  A couple things I noticed:
Here's the prize list copy which will go great on the rules page.  It'd be great if all the company names linked out to their pages.

Grand Prize ($375 total value)
    • Patagonia black hole duffel bag $159
    • Five Ultimate Gift Certificate $100
    • NexGen Cap 3 Pullover (L) $55
    • 2011 NexGen DVD $15
    • 2012 NexGen Tour Subscription $20
    • Ulticards Pack $15
    • Custom Club Championship Poster from Hammer Fakes and IO Breaks $10
Top 5 finishers plus 5 random contestants will receive one or more of the following prizes:
    • Patagonia Jersey
    • $10 Five Ultimate Gift Certificate
    • Poster from Hammer Fakes and IO Breaks
    • NexGen Hat
    • NexGen Cotton t-shirt
    • 2011 NexGen DVD
    • 2012 NexGen Tour Subscription
Thanks Ben!!

Lou

Louis Abramowski

unread,
Oct 24, 2012, 2:52:32 AM10/24/12
to leaguevine...@googlegroups.com
And Ben -- as soon as you feel the data is all set and the bullets below are addressed, I'll pull the trigger.  

This is so sick man.  Incredible work.  

Lou

Ben Demboski

unread,
Oct 24, 2012, 3:12:13 AM10/24/12
to leaguevine...@googlegroups.com
Okay, I set the server up with a new league attached to the tournament object Mark sent me. Everything looks good -- all the players are there. I fixed those two issues and dropped in the prizes. I also ran through the team creation process again with a new user and everything seems to be working. Maybe run through creating your own team as one final check, but as far as I can tell we're good to launch!

B

Louis Abramowski

unread,
Oct 24, 2012, 3:17:37 AM10/24/12
to leaguevine...@googlegroups.com
The patagonia image is still giving me issues … could be propagating through the CDN though, I suppose … https://s3.amazonaws.com/lvfantasyultimate/img/sponsors/patagonia.jpg

Otherwise, looks great! I'll announce it in the morning!

Lou

Ben Demboski

unread,
Oct 24, 2012, 3:19:25 AM10/24/12
to leaguevine...@googlegroups.com
Whoops, sorry. Fixed now.

Louis Abramowski

unread,
Oct 24, 2012, 3:20:33 AM10/24/12
to leaguevine...@googlegroups.com
Jackpot.  Let's roll!

Ben Murphy

unread,
Oct 24, 2012, 6:39:24 AM10/24/12
to leaguevine...@googlegroups.com
This is really exciting. Do we have a flyer or something we could print out to spread the word while in Sarasota? Relatedly, who else will be down there?

Ben Murphy

unread,
Oct 24, 2012, 7:16:28 AM10/24/12
to leaguevine...@googlegroups.com
One other question--have you guys thought about how you're going to
resolve ties? I'm guessing that there will probably be more than one
person that picks the same 7 players that result in the winning
combination, especially if there's enough exposure today for people to
submit rosters.

Louis Abramowski

unread,
Oct 24, 2012, 11:59:16 AM10/24/12
to leaguevine...@googlegroups.com
Ben/Mark -

If you get around to it, can you add this to the page headers?

<meta property="og:title" content="Fantasy Ultimate"/>
<meta property="og:site_name" content="Fantasy Ultimate"/>
<meta property="og:description" content="It's Fantasy Ultimate from The Ultimate Page. You score points for the players you select on your team based on how they play at the Club Championships (Open division)."/>

Thanks!
Lou

Ben Demboski

unread,
Oct 24, 2012, 1:14:39 PM10/24/12
to leaguevine...@googlegroups.com
Yeah, I'm on it...

Ben Demboski

unread,
Oct 24, 2012, 1:20:28 PM10/24/12
to leaguevine...@googlegroups.com
Done, deployed, verified it's showing up in send dialog and wall posts and whatnot.

B

Louis Abramowski

unread,
Oct 24, 2012, 3:15:37 PM10/24/12
to leaguevine...@googlegroups.com
Well guys … we appear to be getting an app error now … 

… are we overloaded? 

Application Error

An error occurred in the application and your page could not be served. Please try again in a few moments.

If you are the application owner, check your logs for details.

Ben Demboski

unread,
Oct 24, 2012, 3:32:25 PM10/24/12
to leaguevine...@googlegroups.com
Yeah, I've been seeing that intermittently. It seems to come and go, but I only see it on the league page. The logs have a bunch of connection errors (included below) -- my best guess is that requests are backing up for some reason, and by the time our app gets around to servicing them, the browser or whatever routes requests in heroku has given up and closed the socket. Not really sure why our requests would be backing up, though -- it doesn't look like the CPU is spiking at all. I don't know if we have access to any monitoring statistics to try to diagnose -- Mark, any ideas?

B


2012-10-24T19:24:52+00:00 app[web.1]: Traceback (most recent call last):
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 86, in run
2012-10-24T19:24:52+00:00 app[web.1]:     self.finish_response()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
2012-10-24T19:24:52+00:00 app[web.1]:     self.write(data)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 215, in write
2012-10-24T19:24:52+00:00 app[web.1]:     self._write(data)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/socket.py", line 324, in write
2012-10-24T19:24:52+00:00 app[web.1]:     self.flush()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/socket.py", line 303, in flush
2012-10-24T19:24:52+00:00 app[web.1]:     self._sock.sendall(view[write_offset:write_offset+buffer_size])
2012-10-24T19:24:52+00:00 app[web.1]: error: [Errno 111] Connection refused
2012-10-24T19:24:52+00:00 app[web.1]: ----------------------------------------
2012-10-24T19:24:52+00:00 app[web.1]: Exception happened during processing of request from ('10.84.101.45', 46208)
2012-10-24T19:24:52+00:00 app[web.1]: Traceback (most recent call last):
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 582, in process_request_thread
2012-10-24T19:24:52+00:00 app[web.1]:     self.finish_request(request, client_address)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 323, in finish_request
2012-10-24T19:24:52+00:00 app[web.1]:     self.RequestHandlerClass(request, client_address, self)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 139, in __init__
2012-10-24T19:24:52+00:00 app[web.1]:     super(WSGIRequestHandler, self).__init__(*args, **kwargs)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 641, in __init__
2012-10-24T19:24:52+00:00 app[web.1]:     self.finish()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 694, in finish
2012-10-24T19:24:52+00:00 app[web.1]:     self.wfile.flush()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/socket.py", line 303, in flush
2012-10-24T19:24:52+00:00 app[web.1]:     self._sock.sendall(view[write_offset:write_offset+buffer_size])
2012-10-24T19:24:52+00:00 app[web.1]: error: [Errno 32] Broken pipe
2012-10-24T19:24:52+00:00 app[web.1]: ----------------------------------------
2012-10-24T19:24:52+00:00 app[web.1]: Traceback (most recent call last):
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 86, in run
2012-10-24T19:24:52+00:00 app[web.1]:     self.finish_response()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response
2012-10-24T19:24:52+00:00 app[web.1]:     self.write(data)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 215, in write
2012-10-24T19:24:52+00:00 app[web.1]:     self._write(data)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/socket.py", line 324, in write
2012-10-24T19:24:52+00:00 app[web.1]:     self.flush()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/socket.py", line 303, in flush
2012-10-24T19:24:52+00:00 app[web.1]:     self._sock.sendall(view[write_offset:write_offset+buffer_size])
2012-10-24T19:24:52+00:00 app[web.1]: error: [Errno 111] Connection refused
2012-10-24T19:24:52+00:00 app[web.1]: ----------------------------------------
2012-10-24T19:24:52+00:00 app[web.1]: Exception happened during processing of request from ('10.82.111.203', 42357)
2012-10-24T19:24:52+00:00 app[web.1]: Traceback (most recent call last):
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 582, in process_request_thread
2012-10-24T19:24:52+00:00 app[web.1]:     self.finish_request(request, client_address)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 323, in finish_request
2012-10-24T19:24:52+00:00 app[web.1]:     self.RequestHandlerClass(request, client_address, self)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 139, in __init__
2012-10-24T19:24:52+00:00 app[web.1]:     super(WSGIRequestHandler, self).__init__(*args, **kwargs)
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 641, in __init__
2012-10-24T19:24:52+00:00 app[web.1]:     self.finish()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/SocketServer.py", line 694, in finish
2012-10-24T19:24:52+00:00 app[web.1]:     self.wfile.flush()
2012-10-24T19:24:52+00:00 app[web.1]:   File "/usr/local/lib/python2.7/socket.py", line 303, in flush
2012-10-24T19:24:52+00:00 app[web.1]:     self._sock.sendall(view[write_offset:write_offset+buffer_size])
2012-10-24T19:24:52+00:00 app[web.1]: error: [Errno 32] Broken pipe
2012-10-24T19:24:52+00:00 app[web.1]: ----------------------------------------
2012-10-24T19:24:56+00:00 heroku[router]: GET fantasy.ultimatepagehq.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=7ms status=404 bytes=2434
2012-10-24T19:24:56+00:00 app[web.1]: [24/Oct/2012 19:24:56] "GET /l HTTP/1.1" 404 2434
2012-10-24T19:24:56+00:00 heroku[router]: GET fantasy.ultimatepagehq.com/l dyno=web.1 queue=0 wait=0ms service=14ms status=404 bytes=2434
2012-10-24T19:24:56+00:00 heroku[router]: GET fantasy.ultimatepagehq.com/fav

Mark Liu

unread,
Oct 24, 2012, 3:33:04 PM10/24/12
to leaguevine...@googlegroups.com
Uh oh. I'm in the car right now and can't look into fixing this. Ben?


Louis Abramowski

unread,
Oct 24, 2012, 3:33:54 PM10/24/12
to leaguevine...@googlegroups.com
Btw, there's about 600 sign ups so far and we've barely promoted it.  

Somewhat related, should we paginate the main leader board by 100 rows so it doesn't kill the browser?

Ben Demboski

unread,
Oct 24, 2012, 3:40:36 PM10/24/12
to leaguevine...@googlegroups.com
Yeah, I can look into paginating the leaderboard. The friends tab makes it a bit complicated because right now the client retrieves the friends' list and does all the filtering client-side, but I guess I can just load it on-demand via an ajax POST from the client passing in the list of friends' ids.

B

Mark Liu

unread,
Oct 24, 2012, 4:21:20 PM10/24/12
to leaguevine...@googlegroups.com
I just provisioned a better database and migrated the data over so the app is up and running again. I really think the overload problem was with the database and not the leaderboard, but paginating it will at least help improve the user experience.

Mark
Reply all
Reply to author
Forward
0 new messages