Log message #4159643

# At Username Text
# Jul 17th 2018, 12:15 admad @birdy247 @neon1024 endless scroll is the most annoying thing frontend devs have come up wiht
# Jul 17th 2018, 12:03 snake-venom can anyone here help me in this ?
# Jul 17th 2018, 12:02 snake-venom here is my nginx file
# Jul 17th 2018, 12:02 snake-venom https://pastebin.com/tSe7gdfP
# Jul 17th 2018, 12:02 snake-venom i have a folder /plugins and in this i want to run 5 cakephp projects.. but i am not getting what to add in config nginx file...
# Jul 17th 2018, 11:50 neon1024 Make sure you lint your JS, because if that breaks you’ll never get page 2 ;)
# Jul 17th 2018, 11:49 neon1024 You’d have to disable JS to use the footer :rolling_on_the_floor_laughing:
# Jul 17th 2018, 11:49 neon1024 I can’t imagine the horror if you have endless scroll, and only put certain links in the footer
# Jul 17th 2018, 11:48 neon1024 It’s like the kitty who wants to be stroked, but when you get close just wanders out of hands reach
# Jul 17th 2018, 11:48 neon1024 For the love all things holy, don’t have a footer. Please don’t have a footer.
# Jul 17th 2018, 11:47 neon1024 Hah, hate those things.
# Jul 17th 2018, 11:47 birdy247 FYI, we are using a endless scroll on the frontend
# Jul 17th 2018, 11:47 birdy247 just wondered if there was a less expensive way of quering all books every time
# Jul 17th 2018, 11:47 birdy247 so the plan is to query the DB for ALL books, pop into a collection and then take the necessary
# Jul 17th 2018, 11:47 neon1024 Yeah, so you’ll need to get all teh books, calculate the score, setup the collection and then paginate that new collection I guess right?
# Jul 17th 2018, 11:46 neon1024 Books right? So you’re getting all the books anyway
# Jul 17th 2018, 11:46 birdy247 1 User would want to see books with a score > 8
# Jul 17th 2018, 11:46 neon1024 Well you either paginate Books, or you paginate Users.
# Jul 17th 2018, 11:45 neon1024 Okay a trait, not an interface, but I was almost right!
# Jul 17th 2018, 11:45 neon1024 https://github.com/cakephp/cakephp/blob/master/src/ORM/ResultSet.php#L34
# Jul 17th 2018, 11:45 birdy247 @neon1024 If we paginate a collection, thats all good. but we still need to retrieve all books from the sql.
# Jul 17th 2018, 11:44 neon1024 Shouldn’t be too hard, as I think ResultSet implements CollectionInterface iirc
# Jul 17th 2018, 11:43 matt thanks, yes think we will go with paginating the collection manually but with caching
# Jul 17th 2018, 11:42 neon1024 At least then you alleviate some of the pressure, in exchange for slightly stale data
# Jul 17th 2018, 11:42 neon1024 Keyed by user id or something
# Jul 17th 2018, 11:42 neon1024 I guess you could cache the calculated user results
# Jul 17th 2018, 11:41 neon1024 It works. Is it perfect? Not by half ;)
# Jul 17th 2018, 11:41 neon1024 Meaning my request / response time was still snappy
# Jul 17th 2018, 11:40 neon1024 Which is why I ended up with a shell, and I could “front-load” the data
# Jul 17th 2018, 11:40 birdy247 I think we will see how big the problem is
# Jul 17th 2018, 11:40 neon1024 Away from the user request is #1
# Jul 17th 2018, 11:40 neon1024 It’s expensive, it just a matter of choosing where you want to put the expense
# Jul 17th 2018, 11:39 neon1024 Yep, and the aggregate table will be huge
# Jul 17th 2018, 11:39 birdy247 If we have 10,000 books and 20,000 users, could be quite a cron!
# Jul 17th 2018, 11:39 neon1024 Worked for me when I had to calculate bespoke pricing for every API consumer and every package
# Jul 17th 2018, 11:38 neon1024 Or on a cron, or both
# Jul 17th 2018, 11:38 neon1024 Perhaps either in a worker queue kicked off when the user logs in
# Jul 17th 2018, 11:38 neon1024 Then I can update that aggregates table on a per-user basis
# Jul 17th 2018, 11:38 neon1024 Then I’d have a shell which processes all the books for every user
# Jul 17th 2018, 11:38 neon1024 If it’s really expensive I’d probably do an aggregate table
# Jul 17th 2018, 11:37 neon1024 I think I’ve drunk too much tea and eaten too much pick and mix today :shocked_face_with_exploding_head: