Activity Feed
#2671·Dennis HackethalOP, 25 days agoJS modules are always deferred and unusable until the page is fully loaded. As a result, comment buttons and gutters won’t work while ideas are still streaming onto the page.
I now purposely prevent interactions with buttons and gutters, and gray them out, until the page is fully loaded. So instead of broken hover effects and interactions, the user gets intentionally disabled elements, and this intentionality is communicated to them.
Once the page is fully loaded, buttons and gutters are enabled and visually restored.
Since the browser’s loading indicator remains visible until then, this behavior shouldn’t violate user expectation.
#2692·Dennis HackethalOP, 25 days agoI could override
authenticate_user!in theDiscussionsController.
That means duplicate functionality; anytime I customize Devise in the future, I’ll have to remember to adjust this one method as well.
#2670·Dennis HackethalOP, 25 days agoIncompatible with Devise authentication: https://github.com/heartcombo/devise/issues/2332
I could override authenticate_user! in the DiscussionsController.
#2670·Dennis HackethalOP, 25 days agoIncompatible with Devise authentication: https://github.com/heartcombo/devise/issues/2332
I could extract discussions#show into a new, separate StreamController or something like it. That controller would not use Devise.
#2688·Dennis HackethalOP revised 25 days agoThe thread suggests a workaround: use
authenticated do …blocks inroutes.rbinstead ofbefore_action :authenticate_user!in controllers.It’s probably a good idea to do this anyway to avoid divulging the existence of routes that unauthenticated users don’t need to know exist. (They will get a 404 instead of a 401.)
Then again, I’d want to redirect users to the sign-in page (and then ideally back to where they were trying to go).
The thread suggests solution: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
It’s probably a good idea to do this anyway to avoid divulging the existence of routes that unauthenticated users don’t need to know exist. (They will get a 404 instead of a 401.)
The thread suggests a workaround: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
It’s probably a good idea to do this anyway to avoid divulging the existence of routes that unauthenticated users don’t need to know exist. (They will get a 404 instead of a 401.)
The thread contains a suggested solution: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
It’s probably a good idea to do this anyway to avoid divulging the existence of routes that unauthenticated users don’t need to know exist. (They will get a 404 instead of a 401.)
The thread suggests solution: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
It’s probably a good idea to do this anyway to avoid divulging the existence of routes that unauthenticated users don’t need to know exist. (They will get a 404 instead of a 401.)
#2636·Dennis HackethalOP, 28 days agoOn initial page load, I could just load the first ten or so top-level ideas and their immediate children, just to reduce wait times and populate the page. Then load the rest asynchronously.
#2677·Dennis HackethalOP, 25 days agoThe top level ideas could be rendered as turbo frames of
ideas#show.
While ideas load, cmd +f won’t work.
#2680·Dennis HackethalOP, 25 days agoI just tried this. Seemed promising at first but sometimes ideas load out of order. Looks horrible.
I could render the first ~10 top-level ideas immediately and only render the rest as turbo frames off screen. By the time the user scrolls down, they should all be loaded.
#2676·Dennis HackethalOP, 25 days agoFor large discussions, wouldn’t that flood the server with requests?
#2677·Dennis HackethalOP, 25 days agoThe top level ideas could be rendered as turbo frames of
ideas#show.
Too many requests when there are enough top-level ideas.
#2677·Dennis HackethalOP, 25 days agoThe top level ideas could be rendered as turbo frames of
ideas#show.
I just tried this. Seemed promising at first but sometimes ideas load out of order. Looks horrible.
#2659·Dennis HackethalOP revised 26 days agoI could use
ActionController::Liveto stream top-level ideas to the page one by one. Instant page load.
cmd + f won’t work reliably.
#2635·Dennis HackethalOP, 28 days agoI could lazy load ideas: only load the parts of the page that would be visible on the current viewport. Then load more parts as the user scrolls.
That means cmd + f won’t always work.
#2630·Dennis HackethalOP revised 28 days agoDiscussions are getting slower to render as they grow. It’s a rendering issue (not a db issue).
The top level ideas could be rendered as turbo frames of ideas#show.
#2675·Dennis HackethalOP, 25 days agoI could have a separate route at
/ideas/:id/isolatedwhich renders only the idea without any parents or children. And then a discussion could render a bunch of deeply nested turbo frames loading that route.
For large discussions, wouldn’t that flood the server with requests?
#2630·Dennis HackethalOP revised 28 days agoDiscussions are getting slower to render as they grow. It’s a rendering issue (not a db issue).
I could have a separate route at /ideas/:id/isolated which renders only the idea without any parents or children. And then a discussion could render a bunch of deeply nested turbo frames loading that route.
The thread contains a suggested solution: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
The thread contains a suggested solution: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
It’s probably a good idea to do this anyway to avoid divulging the existence of routes that unauthenticated users don’t need to know exist. (They will get a 404 instead of a 401.)
#2670·Dennis HackethalOP, 25 days agoIncompatible with Devise authentication: https://github.com/heartcombo/devise/issues/2332
The thread contains a suggested solution: use authenticated do … blocks in routes.rb instead of before_action :authenticate_user! in controllers.
#2659·Dennis HackethalOP revised 26 days agoI could use
ActionController::Liveto stream top-level ideas to the page one by one. Instant page load.
JS modules are always deferred and unusable until the page is fully loaded. As a result, comment buttons and gutters won’t work while ideas are still streaming onto the page.
#2659·Dennis HackethalOP revised 26 days agoI could use
ActionController::Liveto stream top-level ideas to the page one by one. Instant page load.
Incompatible with Devise authentication: https://github.com/heartcombo/devise/issues/2332
Feature idea: pay people to address criticisms (either revise an idea and check off criticisms or counter-criticize).
#2659·Dennis HackethalOP revised 26 days agoI could use
ActionController::Liveto stream top-level ideas to the page one by one. Instant page load.
This page used to take ~3.5 seconds to load. Now it renders within 600ms :)
‘Veritula’ is a difficult name, people don’t know how to pronounce it. They usually can’t remember it.
‘Veritula’ is a difficult name, people don’t know how to spell or pronounce it. They can’t easily remember it.