-
-
Notifications
You must be signed in to change notification settings - Fork 16.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
display pacing advice based on slide timings #1564
Conversation
So I had a look at this and it's certainly useful, if not quite as useful as it could be. A few issues:
|
I think there are two approaches to talks:
Clearly, a strict timing plan will not work as well with the latter, but it should with the former. But having said that ...
Congratulations for correctly predicting my next plans for this feature :-) I was thinking of adding
Another excellent idea! Yes - allocating a 5 min reserve would mean that it could be used up accumulatively at any points during the talk. Saving it to the end is ideal, but having flexibility to take questions earlier is even better. Question: should a pause button always toggle countdown between the main timer and the reserve timer? Or sometimes do you really want to pause everything? That would have the effect of delaying the end of the presentation, of course.
This is of course true. However in my experience, when averaged out over a whole presentation, 2 minutes per slide is startlingly accurate as rules of thumb go, for my personal presentation style. Your style tends to use far sparser slides, so I doubt it would work as well for you. That said, you may well be right that it makes more sense for this feature to be suppressed by default. |
The other problem I have noticed is that generally we don't want the timer to start until the 2nd slide or so, e.g. if the 1st slide is a QR code or other cover slide which is to be shown whilst waiting for the audience to get settled. Suggestions very welcome for how best to handle this. |
I'd say for any slide that doesn't count toward the time budget, the onus is on the speaker to set |
I was thinking |
I'd say if a slide has Yes of course you should also have an option to pause the timer, rather than only be able to reset it, but reveal currently doesn't have that for the "elapsed time" timer either. So that's icing on the cake. |
Just thought of a second use case for "pause" slides: a long session (e.g. hands-on training) where you want to allocate flexible breaks at various points. So yes, something like Current thinking:
I still haven't figured out the best UI regarding a "reserve" timer though. Intuitively, allowing setting of a reserve timer to (say) 5 minutes as a buffer for unplanned questions makes sense. However if the presenter presses the Pause button, that could be either a) to answer a question, in which case it should start eating away at the reserve, or So how to distinguish between these two types of pause in the UI? Would also be nice to show:
whilst somehow retaining a simple and intuitive UI. |
You're burrowing deep in a rabbit hole here. I'd say keep your changes as they are for now, except setting the default to 0 and not showing the pacing timer if the pacing value for the current slide (either via Or, drop this PR and start your own plugin. |
Sure, those enhancements can come in a separate PR to this one. It definitely doesn't make sense to start another plugin though, because it's inextricably linked with the existing built-in |
Point taken. (I've never really understood how some plugins live in the main repo and others don't, but that's a different story.) |
FWIW this plugin helped me and a colleague successfully deliver > 50 slides and 2 demo videos within 36 minutes ;-) https://www.openstack.org/videos/video/high-availability-for-pets-and-hypervisors-state-of-the-nation |
@hakimel This looks like a very useful feature to me at this point; would you consider merging it? |
This is really nice! Thanks @aspiers. I'd be happy to merge this with one change; can you make it so that this is disabled by default? Don't want to make assumptions about how long someone wants to spend per slide (we can suggest 2 mins in the readme though), and I think seeing a countdown there without having opted into it is a bit surprising. |
@hakimel Sure, I can do that. Do you think it would be reasonable if it was enabled by the presence of the |
Thanks! Yea, I think basing it on the presence of that config value makes
|
This can be used by plugins which are concerned with helping the presenter with their pace.
This can be used by plugins which are concerned with helping the presenter with their pace.
This will allow us to reuse the display code for displaying an additional pacing timer.
This allows us to use different colours for different timers, which will be useful when we add a pacing timer.
and make muting work for negative values
Add an option to display advice on whether the current pace of the presentation is on track for the right timing (shown as green), and if not, whether the presenter should speed up (shown as red) or has the luxury of slowing down (blue). The pacing timer can be enabled by configuring by the `defaultTiming` parameter in the `Reveal` configuration block, which specifies the number of seconds per slide. 120 can be a reasonable rule of thumb. Timings can also be given per slide `<section>` by setting the `data-timing` attribute. Both values are in numbers of seconds. When the option is enabled, clicking on the timers will reset the timer to the beginning of the current slide, i.e. as if pacing was perfectly on track, not to zero as if the presentation had just begun.
Thanks for the update – this has been merged. Made a minor tweak; instead of appending "to finish current slide" to the clock where the text is so large I added it into the "PACING" label. I wonder if you ever want to have both the elapsed time and pacing... Feels like if you opt into pacing the elapsed time counter is only visual clutter that makes it harder to follow your pacing. Maybe we should hide the elapsed time when pacing is turned on? |
Personally I prefer to have it there, and the colouring distinguishes the pacing timer from the previous one - but we could do that, or make it optional. |
I agree with your impulse on this, and your conclusion. |
* resolves hakimel#1324 allow display property to be configured - allow display property apply to current slide to be configured * add 'npm build' script that launch grunt * Allow switching off preview links The data-preview-link=false tag can be used to switch off preview links * Support sass extension for custom themes * Shift `dependencies` to `devDependencies`. The `reveal.js` npm module is typically installed to access the CSS/JS assets for Reveal.js. For those that want to run the plugins, they would clone the whole repository. Hence, it doesn’t make sense to include those as `dependencies`, which will increase download times. Closes hakimel#1734. * Allow background images without protocols to have query hashes/parameters. Closes hakimel#1603. * hakimel#1770, resume playback for paused media. * hakimel#1770, fixed function name. * hakimel#1770, added second argument for setAttribute * hakimel#1770, set 'data-paused-by-reveal' attribute only for the media elements, which are not already in paused state. * support complex markdown support <textarea data-template> `some code` </textarea> * Remove 'history: true' from index.html Readme says the default is 'history: false', so it may be surprising for users - it's easy to miss the contradicting setting in index.html * wait for in-slide video/audio to load before playing, reuse same autoplay logic for slide backgrounds * prevent autoplaying backgrounds from playing if slide is hidden * fix race condition by updating backgrounds after slide visibility * works with video, defaults to (same as for images) * remove unused argument * make backgrounds (iframes) interactive when the foreground is empty * 2017 * merge info links in index * fix empty pages in pdf exports (closes hakimel#1804) * additional fix for empty pages in pdf exports hakimel#1804 * adjust pdf margins instead of heights to fix hakimel#1804 * typo * note about showNotes in PDF exports hakimel#1800 * fix markdown typo, update comment hakimel#1780 * recommend using textarea wrapper for inline markdown hakimel#1780 * make background videos work on ipad hakimel#1778 * improved fragment notes support hakimel#1636 * warning about cube/page being deprecated hakimel#1774 * adjust comment for display config value hakimel#1325 * added toggleHelp function this way a key can be given ability to toggleHelp on and off. Previously Reveal.showHelp could open the help screen, but no way to close it. * added override parameter to toggleHelp function * update deserialize regex to work with decimals * docs for hakimel#1816 and remove showHelp * phantom export throws error if reveal.js isn't present * fix overview rendering issues in latest chrome hakimel#1649 * allow configuration of which view slide number appears on - fixes hakimel#1791 * correct config name in README * note about deploying multiplex server with now hakimel#1830 * tweaks to showSlideNumber config hakimel#1833 * avoid npe on iframe postMessage * print-pdf using callback iso timer Use window.callPhantom icw page. onCallback to wait for pdf-ready event. From: http://stackoverflow.com/a/28925479/129269 * print-pdf layout slide contents to fit stretch elements layout() and thereby layoutSlideContents() is never invoked when isPrintingPdf() is true so stretch elements are not sized correctly. This is ensured now by invoking the layoutSlideContents from SetupPDF(). There seems no need to scale down like in other PR's is suggested. * Fix video background autoplay on iOS * add autoPlayMedia config option, overrides individual autoplay settings * allow fullscreen for background iframes * new cli and in-browser pdf printing compatible fix for hakimel#1804 * make pdf page height offset configurable * replace cdn.mathjax.org with cdnjs cdn.mathjax.org is shutting down: https://www.mathjax.org/cdn-shutting-down/ This changes the default MathJax URL in the math plugin, as well as references in README.md and test/examples/math.html * formatting * formatting * clarify meaning of getProgress() value * expose getPastSlideCount() via public API This can be used by plugins which are concerned with helping the presenter with their pace. * clarify getTotalSlides() returns the number of slides * add new getSlides() API This can be used by plugins which are concerned with helping the presenter with their pace. * Allow popup window access to Reveal API * extract time display code into new _displayTime() function This will allow us to reuse the display code for displaying an additional pacing timer. * use opacity for muted clock elements This allows us to use different colours for different timers, which will be useful when we add a pacing timer. * don't mute minutes when hours is unmuted * avoid deleting existing classes when muting time elements and make muting work for negative values * don't show negative signs inside minutes/seconds elements * round decreasing timers to mirror increasing timers * document clock and timer in speaker notes window * optionally display pacing advice based on slide timings Add an option to display advice on whether the current pace of the presentation is on track for the right timing (shown as green), and if not, whether the presenter should speed up (shown as red) or has the luxury of slowing down (blue). The pacing timer can be enabled by configuring by the `defaultTiming` parameter in the `Reveal` configuration block, which specifies the number of seconds per slide. 120 can be a reasonable rule of thumb. Timings can also be given per slide `<section>` by setting the `data-timing` attribute. Both values are in numbers of seconds. When the option is enabled, clicking on the timers will reset the timer to the beginning of the current slide, i.e. as if pacing was perfectly on track, not to zero as if the presentation had just begun. * minor tweak for hakimel#1564 * 3.5.0 * * updated big picture slide * added schema image * added deployment texts * * update big picture svg * adjusted big picture styles * moved authors and company slides to the end * * * added styles for codelistings * tweaked dockerfile * added kubernetes cheatsheet * moved tldr slide to end of presentation * * added version number to html source * added config file for CircleCI integration * added deploy.sh * * updated status badge * troubleshooting deploy script * * bugfix as suggested in https://goo.gl/W1XnSk * * changed circle badges in readme * finetuning deploy.sh * moved sha label to span inside presentation * * optimized Dockerfile to leverage docker caching * * added key ‘v’ to toggle display of GIT sha in upper right corner * * added PS_VERSION_NUMBER to big picture slide * shortened stateflow texts * * removed unneeded files * * added link to github project on tldr * * changed port for k8-service * wip * * finetuning deployment * debug * * editorial finetuning * * extended deploy script to update dyndns with public cluster ip address * * added shell scripts for starting and stopping the kubernetes (k8) cluster on GCP * moved it all to subfolder k8 * * huge commit. The best. No seriously, it’s way to big and it can easily serve as a bad example. * * added seniority * finetuning claims on last slide * controls are now hidden * * extended collaboration slide * * added samples for collaboration * * replaced slide bgnd by collage * * modified collage * swapped slide order * added notes * reduced size of leafs bgnd * * tweakd tldr slide * * replaced the bgnd image on the collaboration slide - new one has some effects applied * * ignoring .vscode folder * * added data-timing values for every slide * extended readme section of the repo * * changed the way how the schema image is built into the slide * * windows millenium. and why you may never have heard of it
Display advice on whether the current pace of the presentation is on track for the right timing, and if not, whether the presenter should speed up or has the luxury of slowing down.
By default this assumes 120 seconds per slide, which can be a reasonable rule of thumb, but this can be configured by the
defaultTiming
parameter in theReveal
configuration block, and also per slide<section>
by setting thedata-timing
attribute. Both values are the number of seconds.Here is a screenshot:
The pacing advice changes red when you are behind, and blue when ahead.