Posted by Dalfort on 2013-04-26 12:01:06
Would a limit on the number of teams a coach enters to the game finder help significantly, or does this go against your ideals of the system as you visualise it?
and...
Thanks again for your commitment and tireless work maintaining and improving the site which we all enjoy so much (that sounds far too sycophantic but it is genuinely meant!).
Posted by Chainsaw on 2013-04-26 12:01:10
I'm a fan of Java. :)
Although, FYI for non-coders, the snippets in this blog are JavaScript (quasi code).
Posted by maysrill on 2013-04-26 12:44:13
Would a (temporary?) change in the check time from 4 second to something like 15 be of much help? I know "instant" is nice and everyone likes it, but the system would be doing about 1/4 the work for very little change in functionality to the end user.
BTW, I had a very nice, old-school IRC challenge last night and got to see on-pitch logos for the first time in a while. Had a fun game out of it. I'm not suffering here ;)
Posted by blader4411 on 2013-04-26 13:48:57
Does the method of starting a game determine the viability of pitch logos? I thought it was because some OS (i.e. Mac OS X) mirror the Java overlay leading to vanishing logo and gibberish team names.
Posted by RC on 2013-04-26 13:52:05
I didnt understand anything but I am very appreciative of all your hard work. :)
Thank you!
Posted by maysrill on 2013-04-26 15:02:57
@blader - If you start a game using a game name (i.e. arranged in IRC, scheduled tournament game, etc.), you get logos. If you use one of the schedulers (BBox or GF), you don't. I don't know the mechanism involved, but it's a low-priority bug that popped up from one of the client updates.
Posted by baelnic on 2013-04-26 15:47:12
So my suspicions are true. The Chinese government has hacked fumbbl in an attempt to steal our fantasy football secrets!
Posted by Hitonagashi on 2013-04-26 17:13:35
Oi Chainsaw, it's just pseudo code. Javascript is not quasi-code, it's an awesome language. (it also doesn't have a 'class' declaration without including frameworks/compilers).
Christer, can't it be improved from n^2? If you keep an array consisting of a hashmap of team id -> low_bound and team-id -> high_bound, then the possible matches are the intersection of the sets where the TV is greater than the low bound and less than the high bound. This involves a) iterating through low, b) iterating through high, and c) iterating through a and b to find the intersection, which is 4n? You then recalculate the overall low and high bound whenever a team is inserted into the game finder.
I think that's pretty much what you are proposing though, don't know how much of an improvement that would offer when you move to calculating matches on insertion.
Posted by Hitonagashi on 2013-04-26 17:13:56
P.S, loved the post, forgot to mention. Really good read thanks!
Posted by uuni on 2013-04-26 17:31:36
Could the situation benefit from moving some parts of the pairing to the clients with JavaScript etc?
If each n clients would perform something like:
a1. fetch all-Team list
a2. fetch own-Team list
a3. filter matches locally, O(all x own) or perhaps less
And then, when user changes a state of a match own-all1:
b1. Send statechange(t1 from own, t2 from all) to server
Which would not be recorded on the server but instead just propagated to the other end:
c1. Send statechange(t2,t1) to t2-owner
This would change the server to require active sessions to each client, but I think it sort of already does something that is similarly resource intesive.
I think this could benefit the system by moving the bulk of the load from the server to each game client. As the amount of client scales linearly with itself, it could be of use.
***
Of course, this could be just some thought foam as I am quite bit fluish right now. Hope it was of some use! :-)
Posted by Kelkka on 2013-04-26 17:49:40
I know this solution is unacceptable, but you could distribute the stress from server side to clients. Make it with javascript, browser polls the complete list of teams and data bound to them.
And browser is then responsible from handling the data and forming the list of games. This would increase data in/out quite a bit, but would release a lot of memory and cpu time from the server.
Downside is extra coding, handling the communication over net, obvious security risks and exposing all game finder information to all of the users.
Posted by harvestmouse on 2013-04-26 20:44:12
@baelnic
Looking at the Chinese release notes for next month I saw:
Harry Potter 57
One Piece movie 19
Fantasy Football version 6
& Servant to the Duke of Rings (Return of the Queen)
Personally, and without wishing to make waves on the new gamefinder. Finding a game without IRC (working) not being able to see what else is on gamefinder not working (to the point of costing FUMBBL a lot of unplayed games).
Posted by Urrghs on 2013-04-27 04:10:22
How dare you not to give us a perfect gamefinder immediately??
Lol; honestly mate, you give me great laughs anytime you apologise to us the community about something. Really; where would we be without all of your efforts? Well; maybe some more of us would have girlfriends or wives and would have finished work/thesises etc. earlier, but still....where would be the fun? (and blood).
So; thanks a lot.