[pypy-commit] extradoc extradoc: add pieces needed to compile

fijal noreply at buildbot.pypy.org
Mon Mar 5 23:18:58 CET 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: extradoc
Changeset: r4120:7ccc9ce397fd
Date: 2012-03-05 14:18 -0800
http://bitbucket.org/pypy/extradoc/changeset/7ccc9ce397fd/

Log:	add pieces needed to compile

diff --git a/talk/pycon2012/tutorial/Makefile b/talk/pycon2012/tutorial/Makefile
new file mode 100644
--- /dev/null
+++ b/talk/pycon2012/tutorial/Makefile
@@ -0,0 +1,10 @@
+
+
+slides.pdf: slides.rst author.latex title.latex stylesheet.latex
+	rst2beamer.py --input-encoding=utf-8 --output-encoding=utf-8 --stylesheet=stylesheet.latex --documentoptions=14pt --theme=Warsaw slides.rst slides.latex || exit
+	sed 's/\\date{}/\\input{author.latex}/' -i slides.latex || exit
+	sed 's/\\maketitle/\\input{title.latex}/' -i slides.latex || exit
+	pdflatex slides.latex  || exit
+
+view: slides.pdf
+	evince slides.pdf &
diff --git a/talk/pycon2012/tutorial/author.latex b/talk/pycon2012/tutorial/author.latex
new file mode 100644
--- /dev/null
+++ b/talk/pycon2012/tutorial/author.latex
@@ -0,0 +1,7 @@
+\definecolor{rrblitbackground}{rgb}{0.0, 0.0, 0.0}
+
+\title[PyPy]{How to get most out of your PyPy?}
+\author[fijal]{Maciej Fija&#322;kowski, Alex Gaynor, Armin Rigo}
+
+\institute{PyCon 2012}
+\date{7 March 2012}
diff --git a/talk/pycon2012/tutorial/beamerdefs.txt b/talk/pycon2012/tutorial/beamerdefs.txt
new file mode 100644
--- /dev/null
+++ b/talk/pycon2012/tutorial/beamerdefs.txt
@@ -0,0 +1,108 @@
+.. colors
+.. ===========================
+
+.. role:: green
+.. role:: red
+
+
+.. general useful commands
+.. ===========================
+
+.. |pause| raw:: latex
+
+   \pause
+
+.. |small| raw:: latex
+
+   {\small
+
+.. |end_small| raw:: latex
+
+   }
+
+.. |scriptsize| raw:: latex
+
+   {\scriptsize
+
+.. |end_scriptsize| raw:: latex
+
+   }
+
+.. |strike<| raw:: latex
+
+   \sout{
+
+.. closed bracket
+.. ===========================
+
+.. |>| raw:: latex
+
+   }
+
+
+.. example block
+.. ===========================
+
+.. |example<| raw:: latex
+
+   \begin{exampleblock}{
+
+
+.. |end_example| raw:: latex
+
+   \end{exampleblock}
+
+
+
+.. alert block
+.. ===========================
+
+.. |alert<| raw:: latex
+
+   \begin{alertblock}{
+
+
+.. |end_alert| raw:: latex
+
+   \end{alertblock}
+
+
+
+.. columns
+.. ===========================
+
+.. |column1| raw:: latex
+
+   \begin{columns}
+      \begin{column}{0.45\textwidth}
+
+.. |column2| raw:: latex
+
+      \end{column}
+      \begin{column}{0.45\textwidth}
+
+
+.. |end_columns| raw:: latex
+
+      \end{column}
+   \end{columns}
+
+
+
+.. |snake| image:: ../../img/py-web-new.png
+           :scale: 15%
+           
+
+
+.. nested blocks
+.. ===========================
+
+.. |nested| raw:: latex
+
+   \begin{columns}
+      \begin{column}{0.85\textwidth}
+
+.. |end_nested| raw:: latex
+
+      \end{column}
+   \end{columns}
diff --git a/talk/pycon2012/tutorial/examples/07_itertools.py b/talk/pycon2012/tutorial/examples/07_itertools.py
new file mode 100644
--- /dev/null
+++ b/talk/pycon2012/tutorial/examples/07_itertools.py
@@ -0,0 +1,23 @@
+
+from itertools import imap, izip
+import operator
+import timeit
+
+vector1 = [i for i in range(10000)]
+vector2 = [i for i in range(10000)]
+
+def one(vector1, vector2):
+    return sum(imap(operator.add, vector1, vector2))
+
+def two(vector1, vector2):
+    return sum(x + y for x, y in izip(vector1, vector2))
+
+def three(vector1, vector2):
+    s = 0
+    for i in range(len(vector1)):
+        s += vector1[i] + vector2[i]
+
+print "one", timeit.timeit(lambda : one(vector1, vector2), number=1000)
+print "two", timeit.timeit(lambda : two(vector1, vector2), number=1000)
+print "three", timeit.timeit(lambda : three(vector1, vector2), number=1000)
+
diff --git a/talk/pycon2012/tutorial/slides.rst b/talk/pycon2012/tutorial/slides.rst
--- a/talk/pycon2012/tutorial/slides.rst
+++ b/talk/pycon2012/tutorial/slides.rst
@@ -1,27 +1,33 @@
+.. include:: beamerdefs.txt
+
+=================================
+How to get most out of your PyPy?
+=================================
+
 First rule of optimization?
 ===========================
 
 |pause|
 
-If it's not correct, it doesn't matter.
+* if it's not correct, it doesn't matter
 
 Second rule of optimization?
 ============================
 
 |pause|
 
-If it's not faster, you're wasting time.
+* if it's not faster, you're wasting time
 
 |pause|
 
-But if you iterate fast, you can afford wasting time
+* but if you iterate fast, you can afford wasting time
 
 Third rule of optimization?
 ===========================
 
 |pause|
 
-Measure twice, cut once.
+* measure twice, cut once
 
 (C)Python performance tricks
 ============================
@@ -34,18 +40,18 @@
 
 * ``append = my_list.append``, grab bound methods outside loop
 
-* Avoiding function calls
+* avoiding function calls
 
-* Don't write Python
+* don't write Python
 
 Forget these
 ============
 
 * PyPy has totally different performance characterists
 
-* Which we're going to learn about now
+* which we're going to learn about now
 
-* You cannot speak about operations in isolation (more later)
+* you cannot speak about operations in isolation (more later)
 
 Why PyPy?
 =========
@@ -138,16 +144,16 @@
 
 * JIT complete by design, as long as the interpreter is correct
 
-* Only **one** language description, in a high level language
+* only **one** language description, in a high level language
 
-* Decent tools for inspecting the generated code
+* decent tools for inspecting the generated code
 
 Performance characteristics - runtime
 =====================================
 
-* Runtime the same or a bit slower as CPython
+* runtime the same or a bit slower as CPython
 
-* Examples of runtime:
+* examples of runtime:
 
   * ``list.sort``
 
@@ -162,32 +168,32 @@
 Performance characteristics - JIT
 =================================
 
-* Important notion - don't consider operations in separation
+* important notion - don't consider operations in separation
 
-* Always working as a loop or as a function
+* always working as a loop or as a function
 
-* Heuristics to what we believe is common python
+* heuristics to what we believe is common python
 
-* Often much faster than CPython once warm
+* often much faster than CPython once warm
 
 Heuristics
 ==========
 
-* What to specialize on (assuming stuff is constant)
+* what to specialize on (assuming stuff is constant)
 
-* Data structures
+* data structures
 
-* Relative cost of operations
+* relative cost of operations
 
 Heuristic example - dicts vs objects
 ====================================
 
-* Dicts - an unknown set of keys, potentially large
+* dicts - an unknown set of keys, potentially large
 
-* Objects - a relatively stable, constant set of keys
+* objects - a relatively stable, constant set of keys
   (but not enforced)
 
-* Performance example
+* performance example
 
 Specialized lists
 =================
@@ -213,13 +219,13 @@
 Obscure stuff
 =============
 
-* Frame access is slow
+* frame access is slow
 
-* List comprehension vs generator expression
+* list comprehension vs generator expression
 
-* Profiling & tracing hooks
+* profiling & tracing hooks
 
-* A bit in the state of flux
+* a bit in the state of flux
 
 JitViewer
 =========
@@ -233,15 +239,15 @@
 The overview
 ============
 
-* Usually three pieces per loop
+* usually three pieces per loop
 
-* Prologue and two loop iterations (loop invariants in the first bit)
+* prologue and two loop iterations (loop invariants in the first bit)
 
-* They contain guards
+* they contain guards
 
-* Guards can be compiled to more code (bridges) that jump back to the loop
+* guards can be compiled to more code (bridges) that jump back to the loop
   or somewhere else
 
-* Functions are inlined
+* functions are inlined
 
-* Sometimes completely twisted flow
+* sometimes completely twisted flow
diff --git a/talk/pycon2012/tutorial/stylesheet.latex b/talk/pycon2012/tutorial/stylesheet.latex
new file mode 100644
--- /dev/null
+++ b/talk/pycon2012/tutorial/stylesheet.latex
@@ -0,0 +1,10 @@
+\usetheme{Warsaw}
+\setbeamercovered{transparent}
+\setbeamertemplate{navigation symbols}{}
+
+\definecolor{darkgreen}{rgb}{0, 0.5, 0.0}
+\newcommand{\docutilsrolegreen}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\docutilsrolered}[1]{\color{red}#1\normalcolor}
+
+\newcommand{\green}[1]{\color{darkgreen}#1\normalcolor}
+\newcommand{\red}[1]{\color{red}#1\normalcolor}
diff --git a/talk/pycon2012/tutorial/title.latex b/talk/pycon2012/tutorial/title.latex
new file mode 100644
--- /dev/null
+++ b/talk/pycon2012/tutorial/title.latex
@@ -0,0 +1,5 @@
+\begin{titlepage}
+\begin{figure}[h]
+\scalebox{0.8}{\includegraphics[width=80px]{../../img/py-web-new.png}}
+\end{figure}
+\end{titlepage}


More information about the pypy-commit mailing list