[CentralOH] Using Projectors; General Presentation Stuff
jep200404 at columbus.rr.com
jep200404 at columbus.rr.com
Tue Jul 24 22:00:48 CEST 2012
This is about a technical aspect of giving presentations,
particularly about how to get a projector to work with a
computer.
At the 2011 PyOhio, many presenters had difficulty getting their
computers to work with the presenters. This was most noticeable
during the "Lightning Talks" where each presentation was limited
to five minutes. Some presentation struggled with connecting to
the projectors longer than their presentations. There were some
presenters that were unable to give their presentations because
they could not figure out how to use the projectors with their
laptop. It's frustrating and embarrassing to struggle with getting
projectors to work with one's computer, in front of a crowd.
So the need to prepare for using projectors at presentations
became obvious.
In short:
Don't wing it.
Practice connecting to external displays.
Much of what follows are things to think about and things to try,
but not pat answers. One will need to read the manuals and experiment.
Many examples below are particular to Xubuntu 11.10, so details
will differ for various computers and operating systems, but many
of the concepts apply across various operating systems.
Connection
Get _something_, _anything_ to display. This is the hardest part.
Coping with stuck off displays (both external and internal).
Here are some things to try to get unstuck.
Switch "consoles": <Ctrl><Alt><F1> then <Ctrl><Alt><F7>
Cycle through <Fn><CRT/LCD>
Unplug and replug external display.
Open and close laptop lid.
Check for bent pins in video connectors.
On external display, manually select input.
Manually select resolution.
External display's automatic input selection
and laptop's automatic output driving, do hide and seek dance.
_If_ manually selecting output resolution, start with low resolution,
such as 640x480, then 800x600, then 1024x768.
Restart GUI display settings program.
Reboot.
ssh into the dark computer and execute command to bring
the computer display back to sanity.
Figuring the right command can be difficult. RTFM.
Sometimes one will settle for a graceful shutdown or reboot.
Although one should read manuals, many of the interactions
between software and hardware for using external displays is
highly idiomatic, for which there is no documentation.
For example of idiomatic behavior, with the same operating
system on two different laptops, closing and opening the lid
on one of them tends to turn on all displays, and provoke
a pop-up asking which displays I want on, while the other
laptop tends to lock up. One will have to just figure things
out by brute force experimentation and testing. Keep notes
of what one does and what the results were.
Practice connecting to different external displays.
Practice, practice, practice.
Making it look good.
After one has something displayed on a projector,
then one can progress to making it look _good_.
Adjust projector settings.
I have experienced maladjusted displays.
Be prepared to change projector settings.
Consider changing to normal or "factory" settings,
then tweaking as needed.
Manually select input.
This can be helpful when the projector has multiple inputs
and can not "find" the connected computer.
Reset brightness and contrast to normal.
"Optical" keystone correction is good.
"Digital" keystone correction can cause Moire patterns.
Disable automatic ("digital") keystone correction.
Set keystone correction to none (in middle).
Use actual native resolution of external display
Displays look best when driving an external display at
its actual resolution. Most external displays will
_tolerate_ several resolutions, but the actual native
resolution looks best, so output from one's computer,
the actual resolution of the external display.
xrandr usually indicates the "preferred" resolution.
bad effects of mismatched resolution:
blurriness from stretching or squishing
Provoke with:
xterm window full of 'W' characters.
xrandr --output VGA1 --mode 640x480
xrandr --output VGA1 --mode 800x600
xrandr --output VGA1 --mode 1024x768
Moiré pattern
Provoke with:
xterm window full of 'W' characters.
jam_video_mode 1016 764
jam_video_mode 1024 760
jam_video_mode 1024 768 71
xterm window full of 'E' characters.
xrandr --output VGA1 --transform 1,0,0,0,1.01,0,0,0,1
Make background that shows common resolutions.
The following seems like overkill, but shows the idea.
http://en.wikipedia.org/wiki/File:Vector_Video_Standards2.svg
Xubuntu 11.10 defaults to automatically showing the size of
smaller display as a shaded region on the display that
has more resolution.
Consider having presentation on different workspaces,
one workspace per resolution, already tweaked to go.
have xrandr commands for that resolution ready to go.
Laptops with displays that have more resolution than the external
display are nice. One can use the extra space to privately
display things such as notes and the time remaining. Also, one
can position the output to show only the presentation content
on the external display, focusing the audience's attention on
that presentation and avoiding distractions such as operating
system toolbars and icons. That also avoids wasting space on
the external display.
By the way, most projectors have 1024x768 or 800x600 resolution.
Programs to control display outputs
GUI programs
Of course they are intuitive. When they work well, they help.
When things aren't working well, they often get in the way.
Many GUI tools have bugs.
For example, xfce4-display-settings will often not correctly
update the options available for the remaining display,
when an external display is unplugged while xfce4-display-settings
is running. (A workaround is to kill that instance of
xfce4-display-settings and restart it.)
All GUI tools have limitations:
Can not choose resolution not on list. (most)
Can not overlap displays of different resolutions. (Unity)
Can not arbitrarily align displays (most)
Aspect ratio mismatches.
Consider making one's GUI wrapper for xrandr commands.
Command line programs
Command line programs offer the greatest flexibility and control.
They can also be used when the screen is dark, either by knowing
what to type (without seeing what one is typing), or by ssh'ing
into a dark computer. They also require effort to learn how to us.
aspect ratio:
Most projectors have 4:3 aspect ratio.
Many laptops have 16:9 aspect ratio.
xrandr will only allow one to choose one of the resolutions that
the display says that it likes. Often a display likes only
resolutions with the same aspect ratio as the actual display resolution.
However, many displays will show resolutions that they don't actually like.
When a laptop's display has a different aspect ratio than the external
display, it can be difficult to choose resolutions that one needs.
The jam_video_mode[1] command can make and try to use an arbitrary
resolution.
Need to see laptop display because presenter is facing audience.
When the presenter is facing away from the external display,
the presenter has to rely on the laptop's display.
Some laptops, especially 'netbooks', have less resolution
that the external display, so the presenter can not see
what the audience sees. See the --scale option in the
example xrandr commands below for a way to cope with such
a situation.
Example commands to study and play with.
xrandr --output VGA1 --off
xrandr --output VGA1 --auto
xrandr --output VGA1 --preferred
xrandr --output VGA1 --mode 1024x768
xrandr --output VGA1 --mode 800x600
xrandr --output VGA1 --mode 640x480
xrandr --output VGA1 --mode 1024x768 --rate 60
jam_video_mode 1024 768 71
# show how setting position can be used to crop window of interest
xrandr --output VGA1 --pos 1x72 # for Xfce Terminal Emulator
xrandr --output VGA1 --pos 50x50
# The --same-as option is a short cut for --pos 0x0.
# There are other positioning options that are also short cuts for --pos.
xrandr --output VGA1 --same-as LVDS1 --mode 1024x768
# Each time one hits return key, the external display position
# is changed randomly.
awk '{x=128*rand();y=128*rand();system(sprintf("xrandr --output VGA1 --pos %dx%d
\n",x,y))}'
# The --scale option can be helpful when using external displays with more
# resolution than the laptop display has, especially when can see the laptop
# display, but is facing away from the projector screen. It's a compromise.
# The squished laptop display will not look as good as the projector screen,
# but at least one will be able to see all that the audience sees.
xrandr --output LVDS1 --scale 1.3333x1.3333 # 1920x1200 / 1440x900
# Following is great for using 1024x768 projector with 1024x600 netbook.
xrandr --output LVDS1 --scale 1x1.28 # 1024x768 / 1024x600
# default brightness is 1.
# It is not unusual to need to tweak this.
# First consider setting projector's brightness to normal.
xrandr --output VGA1 --brightness 1
xrandr --output VGA1 --brightness 2
xrandr --output VGA1 --brightness 0.5
xrandr --output VGA1 --brightness 0
# default gamma is 1:1:1
xrandr --output VGA1 --gamma 1:1:1
xrandr --output VGA1 --gamma 2:2:2
xrandr --output VGA1 --gamma 0.5:0.5:0.5
# http://en.wikipedia.org/wiki/Gamma_correction
xrandr --output VGA1 --rotate normal
xrandr --output VGA1 --rotate left
xrandr --output VGA1 --rotate right
xrandr --output VGA1 --rotate inverted
# default transform is 1,0,0,0,1,0,0,0,1
xrandr --output VGA1 --transform 1,0,0,0,1,0,0,0,1
xrandr --output VGA1 --transform 0.707,-0.707,0,0.707,0.707,0,0,0,1
xrandr --output VGA1 --transform 0.9,-0.507,0,0.707,0.707,0,0,0,1
xrandr --output VGA1 --transform 0.9,-0.207,0,0.707,0.707,0,0,0,1
xrandr --output VGA1 --transform 1,0,0,0,1,0,0,0,1
xrandr --output VGA1 --transform 1,0,0,0,1.01,0,0,0,1
xrandr --output VGA1 --transform 1,0,0,0,1.02,0,0,0,1
xrandr --output VGA1 --transform 1,0,0,0,1.03,0,0,0,1
# transform is slow (likely software based)
# transform seems to do anti-aliasing
################################################################################
More general comments about technical side of giving presentations.
Arrive early to futz with projector and internet,
to get them working _before_ your presentation starts.
Have menus or commands to control display, ready to execute.
Don't rely in internet access.
Internet access is unreliable.
If you are going to use network, work out those details early.
If you really want to do live demo of stuff from internet,
be sure to have backup that shows how it should look.
Done right, the audience will not even not that anything is amiss.
KISS: Have content in simple or well-supported formats.
plain text
PDFs
browser based (from local content on local computer)
Brandon's presentation restructured text, html, css, browser.
Backups:
Presentation on USB flash drives.
If you can not present from your laptop, borrow somebody
else's laptop, with your USB flash drive plugged into it.
This works well when your content is an a format (such as
in KISS section above) that stock software on most laptops
is likely to be able to show.
Bootable flash drive with OS and presentation.
If your presentation relies on software that most people
are not likely to have installed on their laptops,
then this is a useful option. Have all the needed software
installed in the flash drive.
One can consider presenting from content on a USB flash drive as
the main way of giving a presentation. For backup, have extra USB
flash drives.
Have presentation on the web.
Use this ONLY as backup, not as main way of presenting.
Have URL written on _paper_.
extension cord
outlet strip
3-prong to 2-prong adapter
spare laptop
spare fully-charged battery (or batteries)
display time remaining to oneself.
display notes to oneself in part of laptop display that audience
can not see.
[1] jam_video_mode is a little script to create and use video modes
of arbitrary resolution and frequencies. For finer control,
tweak the output of cvt.
$ cat ~/bin/jam_video_mode
#!/bin/sh
cvt $* \
| awk -f ~/bin/jam_video_mode.awk \
| tee ~/jam.log \
| sh -v
# cat jam.log
$ cat ~/bin/jam_video_mode.awk
/^Modeline / {
sub("^Modeline ","")
print "xrandr --delmode VGA1 "$1" 2>/dev/null"
print "#sleep 1"
print "xrandr --rmmode "$1" 2>/dev/null"
print "#sleep 1"
print "xrandr --newmode " $0
print "#sleep 1"
print "xrandr --addmode VGA1 "$1
print "#sleep 1"
print "xrandr --output VGA1 --mode "$1
}
$
Get rid of the custom modes created by jam_video_mode.
xrandr | awk '/_/ {print $1}' | xargs -n 1 xrandr --delmode VGA1
xrandr | awk '/_/ {print $1}' | xargs -n 1 xrandr --rmmode
More information about the CentralOH
mailing list