Coder Social home page Coder Social logo

Comments (9)

sphaso avatar sphaso commented on August 24, 2024

One thing I wondered when I first noticed the comment fetching strategy: is it really that costly to fetch all the comments as you load the game? Maybe trimming down the response (e.g. is the "userInfo" obj really useful? the kifu id?)?

from gokibitz.

neagle avatar neagle commented on August 24, 2024

Good question. The very first kernel of GoKibitz's existence was as a newly born Express app that provided a rest API for creating and retrieving comments for a given kifu id and a specific move. Each move was its own world with its own comment thread, so it made sense to me to be able to retrieve it individually.

Much later, it finally occurred to me to revisit this idea and I wondered the same thing: whether it was really worth dealing with asynchronous loading for each move, and the answer is that I don't know. I still like the idea of being able to make a comparatively light call, because users jump into games all over the place, and I like the idea at least, of not loading all 100 comments on a popular game when someone jumps in to a specific point.

In terms of real user experience, though, I haven't tested exactly what the difference would be and whether it's worth the added complexity. I still like the way this makes games light-weight no matter how many comments are on them (there is at least some theoretical scale where loading all the comments becomes cumbersome), but there's no question that this makes things more complicated than they otherwise could be.

from gokibitz.

sphaso avatar sphaso commented on August 24, 2024

Ah I see.
It is true that people hop on games all over the place, but a game of go starts on an empty board :) so someone (I imagine) would skim through the first 20 moves, and that's 20 calls. At the same time, the new "?path=xx" feature would make it more likely to link to positions instead of whole games. In the latter case, fetching comments for one move at the time would make more sense.
I'm guessing this is a case of "in medio stat virtus" as you mentioned in your first post :) either fetch nearby comments or adding a loading icon sound like a great improvement to me.

from gokibitz.

CmdrDats avatar CmdrDats commented on August 24, 2024

+1 for this - I find gokibitz kinda unusable for this reason, because I go through the game looking for the comments - easy to miss if it doesn't load up.

A useful stopgap might be to load up whether a node has comments or not along with the move - that way at least you can say 'hey! this move has comments, wait up for them'

from gokibitz.

neagle avatar neagle commented on August 24, 2024

I appreciate knowing this is an issue, @CmdrDats. Are you on a particularly slow connection, out of curiosity?

The stopgap you suggest is actually a pretty good idea. I'll see if I can look into that sometime soon.

from gokibitz.

CmdrDats avatar CmdrDats commented on August 24, 2024

Not crazy slow (10mb line) - It's probably more because there's a half a second of lag before comment shows, so as I'm skimming through the game I don't see the existence of a comment on a node. That said - perhaps I shouldn't be skimming so much xD

from gokibitz.

CmdrDats avatar CmdrDats commented on August 24, 2024

PS. I'm in South Africa, so perhaps that is a contributing factor xD

from gokibitz.

cannanieltf avatar cannanieltf commented on August 24, 2024

That's the reason I initially wanted the skip to comment button. That way I can browse to all of them without missing any.

from gokibitz.

neagle avatar neagle commented on August 24, 2024

Skimming is totally valid, even if for didactic purposes it might be a good idea to go slowly at times. :) But, yeah, this is definitely a usability issue that I need to address.

from gokibitz.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.