Freitag, 11. November 2011

Talks: Comments

What makes a good talk? How do I prepare it?

Seminar at a group where nobody knows your work:
  • Most important point: the talk is not for you, it's for the audience. The talk has to be designed such that the audience enjoys it, not you
  • Who is the audience? What do they know? How much introduction is required such that it becomes understandable what I'm saying?
  • Once I know who the audience is going to be: draft the talk in four slides. Condense the material
  • Readable graphs (large units/labels, thickness of lines), i.e. if graphs are not prepared nicely, it shows that the preparation of the talk was not a priority
  • Better the audience understands a little a bit, instead of it totally does not understand anything
  • Simple Rule of thumb 1: Not more than two messages per slide
  • Simple Rule of thumb 2: Not more than six bullet points, not more than 6 white-spaced expressions per bullet point No bullet points, substitute bullet points by figures
  • Dont read the bullet points, memorize them. Go through them while facing the people, not the slides Address each figure and make it clear why it is there
  • The slides dont substitute the talking. The talking is the main message carrier, the slides should allow to assist when explaining. Thats why text is not required, instead figures
  • Dont base the talking on the slides, base the slides on the talking.
  • Timing (excluding questions): 5% personal introduction: "who is this guy?", 10% content introduction, 70% content, 10% summary/conclusions, 5% aknowledgements
  • Start practicing the talk at least 3 days a week ahead.
  • Avoid text
  • In the start of the talk, it's fine to show something unrelated so people remember you

Donnerstag, 3. November 2011

GNUPlot 002: EPS Bounding Box

I plot some data in gnuplot and want to include it in a Latex document. One option is to use the gnuplot terminal "postscript enhanced eps" and print to an eps file. The eps file can be converted to a PDF and then included in the Latex document which is compiled with pdflatex. However, it may happen that the bounding box is too large and then the diagram takes up too much space. And nobody wants to hand-edit the bounding box, or manually select the graph in Preview and save manually to pdf.

What I now do is to use gnuplot terminal "postscript enhanced" and print to ".ps" file. Then I use the tool ps2eps, which generates a better bounding box. The call is


ps2eps -f -B -l -R + data.ps

-f: forces overwrite of existing eps files, -B recalculates bounding box, -l adds a bit to it, so it does not terminate on the labels, -R + sometimes rotation is required. No output file is required.

Then, the .eps file is opened in preview and saved to PDF. If using "convert" again PDF will have a too large white space margin, probably there are some options to adjust this, havent found them yet.

Another option (Credits: Janus)
http://www.gnuplot.info/scripts/files/fixbb

Mittwoch, 2. November 2011

Latex 001: Making a table cover the page width

The below Latex element defines a table which extends over the whole page width. Notice the 'table*' environment, which lets the table extend over two columns.

\begin{table*}[htbp]
\begin{tabular*}{\textwidth}{l@{\extracolsep\fill}lrrrr}
\\\hline
1B2V & 32 & -4.06 & 4.23 & 4.72 & 7.30\\
1DUK & 64 & -0.35 & 3.94 & 4.45 & 4.80\\
1DEK & 137 & 1.88 & 4.87 & 5.19 & 5.80\\
\end{tabular*}
\caption{Some values.}
\label{tab:values}
\end{table*}

Dienstag, 1. November 2011

CGI 001: Combining Javascript and CGI

I wrote a minimal example involving Javascript and CGI. Javascript only
<html>
<script type="text/javascript">
    function helloworld()
    {
        document.write("Hello World.");
    }
</script>
<body>
    <input type="button" value="Hello World." onClick="helloworld()">
</body>
</html>
</pre>
Including CGI:
<html>
<script type="text/javascript">
    function helloworld()
    {
        return true;
    }
</script>
<body>
    <form action="./hello.cgi" onSubmit="return helloworld()">
        <input type="submit" value="Hello World.">
    </form>
</body>
</html>
The CGI part in Python
#!/usr/bin/python
print "Content-type: text/plain\n\n"
print "Hello World."
The Javascript function is nothing but a pseudo-function. It does nothing, but control of flow does go through it, otherwise the form is not submitted to the CGI.
Important to note is that the CGI script access the element name property, not the ID.